On heavily loaded systems, some which are probably receiving a lot of

syslog traffic through the network, there's a (not well researched)
problem with receiving messages on the syslog UDP port.  For some
reason recvfrom() results in EAGAIN.  See
http://bugs.debian.org/188194 and
http://www.ussg.iu.edu/hypermail/linux/kernel/0209.1/0218.html
This commit is contained in:
Joey Schulze 2003-09-27 23:29:02 +00:00
parent 5c817e1d38
commit 0f9873bed4

View File

@ -1141,13 +1141,13 @@ int main(argc, argv)
*/
printchopped(from, line, \
i + 2, finet);
} else if (i < 0 && errno != EINTR) {
} else if (i < 0 && errno != EINTR && errno != EAGAIN) {
dprintf("INET socket error: %d = %s.\n", \
errno, strerror(errno));
logerror("recvfrom inet");
/* should be harmless now that we set
* BSDCOMPAT on the socket */
sleep(10);
sleep(1);
}
}
#endif