From: Zbigniew Jędrzejewski-Szmek Date: Sat, 14 Dec 2013 16:54:26 +0000 (-0500) Subject: logging: reduce send timeout to something more sensible X-Git-Tag: v209~773 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=4d89874af6a798744a32deb314001a13a28f0559 logging: reduce send timeout to something more sensible For a user, the timeout of 1 min per message seems equivalent to a hang. If journald cannot process a message from PID1 for 10 ms then something is significantly wrong. It's better to lose the message and continue. --- diff --git a/src/shared/log.c b/src/shared/log.c index b5b82f61c..268f0340a 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -126,7 +126,10 @@ static int create_log_socket(int type) { /* We need a blocking fd here since we'd otherwise lose messages way too early. However, let's not hang forever in the unlikely case of a deadlock. */ - timeval_store(&tv, 1*USEC_PER_MINUTE); + if (getpid() == 1) + timeval_store(&tv, 10 * USEC_PER_MSEC); + else + timeval_store(&tv, 10 * USEC_PER_SEC); setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); return fd; diff --git a/src/shared/time-util.c b/src/shared/time-util.c index 678fd588b..faa341881 100644 --- a/src/shared/time-util.c +++ b/src/shared/time-util.c @@ -142,12 +142,11 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) { if (u == (usec_t) -1) { tv->tv_sec = (time_t) -1; tv->tv_usec = (suseconds_t) -1; - return tv; + } else { + tv->tv_sec = (time_t) (u / USEC_PER_SEC); + tv->tv_usec = (suseconds_t) (u % USEC_PER_SEC); } - tv->tv_sec = (time_t) (u / USEC_PER_SEC); - tv->tv_usec = (suseconds_t) (u % USEC_PER_SEC); - return tv; }