chiark / gitweb /
journal: fail silently in sd_j_sendv() if journal is unavailable
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 3 Dec 2013 13:07:32 +0000 (08:07 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 3 Dec 2013 17:11:18 +0000 (12:11 -0500)
"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

src/journal/journal-send.c

index 931c1e73306501714ffe1fc0b8aac3cebce196a2..281e154d8e2d4d11f7a50b05415a0bd3b13b4dd4 100644 (file)
@@ -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;