Re: sendmail "getrequests: accept:" error messages

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sun, 25 Jan 1998 21:38:22 +0000 (GMT)


> Apparently, the accept() in sendmail daemon loop can return ETIMEDOUT
> and cause sendmail to sleep for 5 seconds during which time no new
> connections will be accepted. An error is reported to syslog:
>
> Jun 9 17:14:12 hostname sendmail[207]: NOQUEUE: SYSERR(root):
> getrequests: accept: Connection timed out
>
> "Connection timed out" is not documented as a valid return from
> accept(2) and this is believed to be a bug in the Linux kernel.

Its another good reason to run exim, qmail or zmailer ;). When we get a failed
connection we report it back to user space (see RFC1122 hosts requirements
which requires errors can get reported back). POSIX 1003.1g draft 6.4 (this
is the first attempt at a socket API standard) contradicts RFC 1122. 2.0
we follow the RFC. Given the POSIX standard is newer (but currently badly
broken in numerous interesting ways) and most other hosts fail to follow
RFC1122 on this issue 2.2 will probably give BSDlike results.

So no.. its not a bug, its an intentional standards document compliance which
was perhaps a bad idea viewed with that wonderous hindsight stuff.

Removing the rather bogus "randomly sleep 5 seconds" behaviour from sendmail
is also sensible.

Alan