summaryrefslogtreecommitdiff
path: root/src/shared/logs-show.c
diff options
context:
space:
mode:
authorArmin Widegreen <armin.widegreen@stoneridge.com>2018-01-11 12:42:56 +0100
committerLennart Poettering <lennart@poettering.net>2018-01-22 18:08:52 +0100
commit4f5e1723410513da418fbbae03c23b1b2cc4db82 (patch)
treef177fea8c1fe9526ebf59dc45952b2c3cda81640 /src/shared/logs-show.c
parent204d140c4def364c47d36226e4514a7e077fa196 (diff)
downloadsystemd-4f5e1723410513da418fbbae03c23b1b2cc4db82.tar.gz
systemd-4f5e1723410513da418fbbae03c23b1b2cc4db82.tar.bz2
systemd-4f5e1723410513da418fbbae03c23b1b2cc4db82.zip
journal: Fix journal dumping for json, cat and export output
Incorporating the fix from d00f1d57 into other output formats of journalctl. If journal files are corrupted, e.g. not cleanly closed, some journal entries can not be read by output options other than 'short' (default). If such entries has been identified, they will now just be skipped.
Diffstat (limited to 'src/shared/logs-show.c')
-rw-r--r--src/shared/logs-show.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index a861be7b32..8a1b26629a 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -661,6 +661,10 @@ static int output_export(
fputc('\n', f);
}
+ if (r == -EBADMSG) {
+ log_debug_errno(r, "Skipping message we can't read: %m");
+ return 0;
+ }
if (r < 0)
return r;
@@ -824,6 +828,11 @@ static int output_json(
}
}
+ if (r == -EBADMSG) {
+ log_debug_errno(r, "Skipping message we can't read: %m");
+ return 0;
+ }
+
if (r < 0)
return r;
@@ -964,6 +973,10 @@ static int output_cat(
sd_journal_set_data_threshold(j, 0);
r = sd_journal_get_data(j, "MESSAGE", &data, &l);
+ if (r == -EBADMSG) {
+ log_debug_errno(r, "Skipping message we can't read: %m");
+ return 0;
+ }
if (r < 0) {
/* An entry without MESSAGE=? */
if (r == -ENOENT)