From: Lennart Poettering Date: Tue, 3 Jul 2012 09:58:16 +0000 (+0200) Subject: journal: fix iteration through journal if one file is corrupt X-Git-Tag: v186~9 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=e590af2666d2a958d355f9957e77ec967bb16011;hp=d1970645411ea1cc083ea1668e0d446252dc1505 journal: fix iteration through journal if one file is corrupt --- diff --git a/TODO b/TODO index 56798a588..b8369c364 100644 --- a/TODO +++ b/TODO @@ -22,6 +22,8 @@ Bugfixes: Features: +* journald: _BOOT_ID triggers too many collisions. + * journald: we currently rotate only after MaxUse+MaxFilesize has been reached. * reexec journald across initrd transition diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 9c6cbaac5..75884594a 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -670,9 +670,10 @@ static int real_journal_next(sd_journal *j, direction_t direction) { bool found; r = next_beyond_location(j, f, direction, &o, &p); - if (r < 0) - return r; - else if (r == 0) + if (r < 0) { + log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); + continue; + } else if (r == 0) continue; if (!new_current)