httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Bloom <>
Subject Re: nasty segfault doing sighup with worker MPM
Date Tue, 18 Dec 2001 21:02:10 GMT
On Tuesday 18 December 2001 12:52 pm, Jeff Trawick wrote:
> Jeff Trawick <> writes:
> > It looks like listen_recs aren't allocated from the right pool with
> > worker?  (at least I couldn't reproduce this with prefork) 
> And the answer is...
> *Most* of the listen_recs are allocated from the right pool.  The one
> that isn't is the pipe of death listen_rec allocated by worker MPM and
> placed into the ap_listeners list.
> Stuff in ap_listeners list needs to be allocated from the process
> pool so that it survives a restart.
> The pipe of death listen_rec is allocated in the pconf pool.
> Maybe the pipe of death shouldn't even be in the ap_listeners list.  I
> think it would be better if worker.c has its own listeners list.  The
> first thing in it is the pipe of death.  We set the next pointer in
> that listen_rec to ap_listeners.  Thus, we leave the list manipulated
> by listen.c alone but we still have our list to use so we serve fairly
> all the sockets we're polling on.

The point of the accept abstraction is to allow people to poll on things other
than regular sockets.  The pipe-of-death is just one such example.  An SSL
socket is another, as is a UDP socket, or a hundred other examples.  We 
should just move the pipe-of-death to the correct pool.

Long-term, for threaded MPMs, I want the pipe-of-death to be completely
separate from the listen_recs, but that is next week's job on my list.


Ryan Bloom
Covalent Technologies

View raw message