logd: worst uid record watermark part three

Regression that cause records to be preserved for more than a day.

Bug: 23681639
Bug: 23685592
Change-Id: I5e4393c8e3ed935790994c77ec51dc6512a6daa6
This commit is contained in:
Mark Salyzyn 2015-08-24 13:43:27 -07:00
parent 1498261fc5
commit ccfe8446a1
1 changed files with 11 additions and 12 deletions

View File

@ -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;