From: Lennart Poettering Date: Thu, 12 Jan 2012 04:09:24 +0000 (+0100) Subject: journal: if the syslog forwarder socket is full, then don't block X-Git-Tag: v39~68 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=7c8bbccd071a9a12efdd8a7770b53d7786eb3a9c;hp=4cfa2c999dea269ddc646bfeba6c7f1021a73843;ds=sidebyside journal: if the syslog forwarder socket is full, then don't block --- diff --git a/src/journal/journald.c b/src/journal/journald.c index 56cd31317..f924c9353 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -752,6 +752,11 @@ static void forward_syslog_iovec(Server *s, const struct iovec *iovec, unsigned if (sendmsg(s->syslog_fd, &msghdr, MSG_NOSIGNAL) >= 0) return; + /* The socket is full? I guess the syslog implementation is + * too slow, and we shouldn't wait for that... */ + if (errno == EAGAIN) + return; + if (ucred && errno == ESRCH) { struct ucred u; @@ -765,6 +770,9 @@ static void forward_syslog_iovec(Server *s, const struct iovec *iovec, unsigned if (sendmsg(s->syslog_fd, &msghdr, MSG_NOSIGNAL) >= 0) return; + + if (errno == EAGAIN) + return; } log_debug("Failed to forward syslog message: %m");