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:
parent
5c817e1d38
commit
0f9873bed4
@ -1141,13 +1141,13 @@ int main(argc, argv)
|
|||||||
*/
|
*/
|
||||||
printchopped(from, line, \
|
printchopped(from, line, \
|
||||||
i + 2, finet);
|
i + 2, finet);
|
||||||
} else if (i < 0 && errno != EINTR) {
|
} else if (i < 0 && errno != EINTR && errno != EAGAIN) {
|
||||||
dprintf("INET socket error: %d = %s.\n", \
|
dprintf("INET socket error: %d = %s.\n", \
|
||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
logerror("recvfrom inet");
|
logerror("recvfrom inet");
|
||||||
/* should be harmless now that we set
|
/* should be harmless now that we set
|
||||||
* BSDCOMPAT on the socket */
|
* BSDCOMPAT on the socket */
|
||||||
sleep(10);
|
sleep(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user