summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-12-03 08:07:32 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-12-03 12:11:18 -0500
commit6c045c0b4c49c88a1d3b9360c05efa5084796d2d (patch)
tree36a56c391196936984ae6170920a99d4e07c2c32
parente7176abbe818c75c6acd90227a7a84c3e05fee31 (diff)
journal: fail silently in sd_j_sendv() if journal is unavailable
"syslog(3) and sd_journal_print() may largely be used interchangeably functionality-wise" according to sd_journal_print(3). This socket should be always available except in rare circumstatances, and we don't random applications to fail on logging, so let's do what syslog did. The alternative of forcing all callers to do error handling for this rare case doesn't really have any benefits, since if they can't log there isn't much they can do anyway. https://bugzilla.redhat.com/show_bug.cgi?id=1023041
Notes
Backport: bugfix
-rw-r--r--src/journal/journal-send.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index 931c1e733..281e154d8 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
@@ -300,6 +300,10 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
if (k >= 0)
return 0;
+ /* Fail silently if the journal is not available */
+ if (errno == ENOENT)
+ return 0;
+
if (errno != EMSGSIZE && errno != ENOBUFS)
return -errno;