From ae26b4d948844ff3a86b6c369836a6658a87ca0d Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Mon, 24 Aug 2015 13:43:27 -0700 Subject: [PATCH] logd: worst uid record watermark part three (cherry pick from commit ccfe8446a19c1c0c9e55133fde84dedb2b9f5d4f) Regression that cause records to be preserved for more than a day. Bug: 23681639 Bug: 23685592 Change-Id: I5e4393c8e3ed935790994c77ec51dc6512a6daa6 --- logd/LogBuffer.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp index e732b8ebf..9605ef84d 100644 --- a/logd/LogBuffer.cpp +++ b/logd/LogBuffer.cpp @@ -413,6 +413,12 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) { it = f->second; } } + static const timespec too_old = { + EXPIRE_HOUR_THRESHOLD * 60 * 60, 0 + }; + LogBufferElementCollection::iterator lastt; + lastt = mLogElements.end(); + --lastt; LogBufferElementLast last; while (it != mLogElements.end()) { LogBufferElement *e = *it; @@ -464,6 +470,11 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) { continue; } + if ((e->getRealTime() < ((*lastt)->getRealTime() - too_old)) + || (e->getRealTime() > (*lastt)->getRealTime())) { + break; + } + // unmerged drop message if (dropped) { last.add(e); @@ -477,18 +488,6 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) { } if (e->getUid() != worst) { - if (leading) { - static const timespec too_old = { - EXPIRE_HOUR_THRESHOLD * 60 * 60, 0 - }; - LogBufferElementCollection::iterator last; - last = mLogElements.end(); - --last; - if ((e->getRealTime() < ((*last)->getRealTime() - too_old)) - || (e->getRealTime() > (*last)->getRealTime())) { - break; - } - } leading = false; last.clear(e); ++it;