]> git.ipfire.org Git - thirdparty/systemd.git/commit
journal: implicitly flush to var on recovery (#4028)
authorVito Caputo <vcaputo@gnugeneration.com>
Thu, 25 Aug 2016 15:37:57 +0000 (08:37 -0700)
committerLennart Poettering <lennart@poettering.net>
Thu, 25 Aug 2016 15:37:57 +0000 (17:37 +0200)
commit929eeb5498e8ae87e05ae683c6d3014d4b59056d
tree57a8594ebd639289555e079416988f4b8a1adf31
parent1ef72b55ba6d38f879d7ac9f0237cf8a2b53f0e6
journal: implicitly flush to var on recovery (#4028)

When the system journal becomes re-opened post-flush with the runtime
journal open, it implies we've recovered from something like an ENOSPC
situation where the system journal rotate had failed, leaving the system
journal closed, causing the runtime journal to be opened post-flush.

For the duration of the unavailable system journal, we log to the
runtime journal.  But when the system journal gets opened (space made
available, for example), we need to close the runtime journal before new
journal writes will go to the system journal.  Calling
server_flush_to_var() after opening the system journal with a runtime
journal present, post-flush, achieves this while preserving the runtime
journal's contents in the system journal.

The combination of the present flushed flag file and the runtime journal
being open is a state where we should be logging to the system journal,
so it's appropriate to resume doing so once we've successfully opened
the system journal.
src/journal/journald-server.c