Skip to content

Commit

Permalink
journal: Stop trying to open runtime journal once flushed
Browse files Browse the repository at this point in the history
Once we've flushed the runtime journal to /var, stop trying to open
it since that will just fail with ENOENT all the time.
  • Loading branch information
DaanDeMeyer authored and bluca committed Sep 26, 2023
1 parent 90461ef commit 418a498
Showing 1 changed file with 19 additions and 20 deletions.
39 changes: 19 additions & 20 deletions src/journal/journald-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -384,8 +384,26 @@ static int server_system_journal_open(

fn = strjoina(s->runtime_storage.path, "/system.journal");

if (s->system_journal && !relinquish_requested) {
if (!s->system_journal || relinquish_requested) {

/* OK, we really need the runtime journal, so create it if necessary. */

(void) mkdir_parents(s->runtime_storage.path, 0755);
(void) mkdir(s->runtime_storage.path, 0750);

r = server_open_journal(
s,
/* reliably= */ true,
fn,
O_RDWR|O_CREAT,
/* seal= */ false,
&s->runtime_storage.metrics,
&s->runtime_journal);
if (r < 0)
return log_ratelimit_warning_errno(r, JOURNAL_LOG_RATELIMIT,
"Failed to open runtime journal: %m");

} else if (!server_flushed_flag_is_set(s)) {
/* Try to open the runtime journal, but only if it already exists, so that we can
* flush it into the system journal */

Expand All @@ -404,25 +422,6 @@ static int server_system_journal_open(

r = 0;
}

} else {

/* OK, we really need the runtime journal, so create it if necessary. */

(void) mkdir_parents(s->runtime_storage.path, 0755);
(void) mkdir(s->runtime_storage.path, 0750);

r = server_open_journal(
s,
/* reliably= */ true,
fn,
O_RDWR|O_CREAT,
/* seal= */ false,
&s->runtime_storage.metrics,
&s->runtime_journal);
if (r < 0)
return log_ratelimit_warning_errno(r, JOURNAL_LOG_RATELIMIT,
"Failed to open runtime journal: %m");
}

if (s->runtime_journal) {
Expand Down

0 comments on commit 418a498

Please sign in to comment.