imapd's hang when maxchild count is reached

Igor Brezac igor at ipass.net
Wed Feb 5 18:26:02 EST 2003


On Wed, 5 Feb 2003, Jeremy Rumpf wrote:

>
> > Hmmm... what does Sendmail do?  It's got lots of children, but still
> > manages to refuse connections when it gets busy (RefuseLA)...  I kinda
> > like that behavior.  I definitely like it better than keeping more and
> > more sockets open.
> >
> > --
> > Stephen L. Ulmer                              ulmer at nersp.nerdc.ufl.edu
> > Senior Systems Programmer                         http://www.ulmer.org/
> > Northeast Regional Data Center                      VOX: (352) 392-2061
> > University of Florida                               FAX: (352) 392-9440
>
> It may not prefork it's processes. The master process could accept the
> connection, fork, closes the socket (the child is now servicing it), and go
> back into a listen state. Therefore the master process can choose to reject
> connections without any coordination from the children. Children then have a
> service life of one connection and that's it.
>
> They could also use a technique where a master process can pass file (socket)
> descriptors down to a child via a unix domain socket using sendmsg() or
> recvmsg(). In this case the master accepts the connection, passes the
> descriptor to a child via sendmsg(), closes the socket (the child should now
> be servicing it), and goes back to listening.
>

This is not very portable.  ;(

> Either way, in the above, the master process is the only process that actually
> accepts the connections.
>
> I'm not sure how sendmail actually does it though, the above is purely
> speculation...
>
> Jeremy
>

-- 
Igor





More information about the Info-cyrus mailing list