From a3b076f641fab2989745ee057e3576f970e0eff6 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 2 May 2023 09:16:16 +0200 Subject: [PATCH] tree-wide: Handle EADDRNOTAVAIL as journal corruption Journal corruption is not only indicated by EBADMSG but also by EADDRNOTAVAIL so treat that as corruption in a few more cases. --- src/journal-remote/journal-remote-parse.c | 2 +- src/libsystemd/sd-journal/journal-file.c | 4 ++-- src/shared/logs-show.c | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c index 27ab5e5ac6..26e2009e14 100644 --- a/src/journal-remote/journal-remote-parse.c +++ b/src/journal-remote/journal-remote-parse.c @@ -73,7 +73,7 @@ int process_source(RemoteSource *source, JournalFileFlags file_flags) { &source->importer.ts, &source->importer.boot_id, file_flags); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_warning_errno(r, "Entry is invalid, ignoring."); r = 0; } else if (r < 0) diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c index fe2610be96..501e7276b6 100644 --- a/src/libsystemd/sd-journal/journal-file.c +++ b/src/libsystemd/sd-journal/journal-file.c @@ -2865,7 +2865,7 @@ static int generic_array_bisect( r = -EBADMSG; else r = test_object(f, p, needle); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Encountered invalid entry while bisecting, cutting algorithm short. (1)"); n = i; continue; @@ -2948,7 +2948,7 @@ static int generic_array_bisect( r = -EBADMSG; else r = test_object(f, p, needle); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Encountered invalid entry while bisecting, cutting algorithm short. (2)"); right = n = i; continue; diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index d372e096c4..539d3963de 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -509,7 +509,7 @@ static int output_short( if (r < 0) return r; } - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Skipping message we can't read: %m"); return 0; } @@ -868,7 +868,7 @@ static int output_export( fputc('\n', f); } - if (r == -EBADMSG) { + if (IN_SET(r, -EADDRNOTAVAIL, -EBADMSG)) { log_debug_errno(r, "Skipping message we can't read: %m"); return 0; } @@ -1116,7 +1116,7 @@ static int output_json( size_t size; r = sd_journal_enumerate_data(j, &data, &size); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Skipping message we can't read: %m"); r = 0; goto finish; @@ -1204,7 +1204,7 @@ static int output_cat_field( get_log_colors(prio, &color_on, &color_off, &highlight_on); r = sd_journal_get_data(j, field, &data, &l); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Skipping message we can't read: %m"); return 0; } @@ -1276,7 +1276,7 @@ static int output_cat( /* Determine priority of this entry, so that we can color it nicely */ r = sd_journal_get_data(j, "PRIORITY", &data, &l); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Skipping message we can't read: %m"); return 0; } @@ -1420,7 +1420,7 @@ int show_journal_entry( n_columns = columns(); r = get_display_timestamp(j, &display_ts, &boot_id); - if (r == -EBADMSG) { + if (IN_SET(r, -EBADMSG, -EADDRNOTAVAIL)) { log_debug_errno(r, "Skipping message we can't read: %m"); return 0; }