summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaan De Meyer <daan.j.demeyer@gmail.com>2023-05-02 09:16:16 +0200
committerLennart Poettering <lennart@poettering.net>2023-05-02 12:17:41 +0200
commita3b076f641fab2989745ee057e3576f970e0eff6 (patch)
tree61bbf2c643b48d9a71a306e91ac91eabdd66da8a
parentab13274a19ee310ed8569612a862b977d054ed6c (diff)
downloadsystemd-a3b076f641fab2989745ee057e3576f970e0eff6.tar.gz
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.
-rw-r--r--src/journal-remote/journal-remote-parse.c2
-rw-r--r--src/libsystemd/sd-journal/journal-file.c4
-rw-r--r--src/shared/logs-show.c12
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;
}