Blob Blame History Raw
From 9a184bf7fc9d24786ec2715c8897cb52e00086ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 3 Dec 2013 08:07:32 -0500
Subject: [PATCH] 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
---
 src/journal/journal-send.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index 14c437da78..72dbd291ff 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
@@ -306,6 +306,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;