[lkml]   [1998]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Sendmail 8.9.0 claims a Linux kernel bug
On 25 Jun 1998, Andi Kleen wrote:

> Ben Gertzfield <> writes:
> > From the Sendmail 8.9.0 Known Bugs List:
> >
> > * accept() problem on Linux.
> >
> > 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.
> This is no kernel bug, but an intentional change from BSD/Solaris semantics.
> Linux accept() returns errors for failed connection attempts unlike BSD which drops
> them.
> It is a documentation bug if the manpage does not state that.
A previous version of sendmail sets up a timer and expects EINTR as its
normal "waiting for connection" error, which it properly ignores. Anything
else writes an error message then waits for 5 seconds before trying
again. I note that it closes its socket also, which is a design bug.
It is expensive to get a new socket. Accept should simply be called
until it succeeds (with no time-out). This is a daemon which should
sleep forever if there are no connection attempts.

This is sendmail-8.7.5. The code in daemon.c is, in my not too humble
opinion, rather juvenile.

Dick Johnson
Penguin : Linux version 2.1.105 on an i586 machine (66.15 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to

 \ /
  Last update: 2005-03-22 13:43    [W:0.101 / U:4.024 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site