httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject Re: [PATCH] PR 26467 child process can hang when piped logger goes away
Date Mon, 16 May 2005 00:51:44 GMT
On 5/15/05, Jeff Trawick <trawick@gmail.com> wrote:
> Apache keeps the read handle to the pipe open in the child process.
> Thus, if the piped logger goes away and a new piped logger doesn't
> inherit the same handles, a child process can hang writing to the
> logger since the child process itself is keeping the read side of the
> pipe open.
> 
> The scenario where this leads to a hang is during graceful restart.
> The child process is busy writing to the logging pipe (enough to cause
> them to block due to kernel pipe flow control).  Then the parent
> process whacks the piped logger and closes its handles to that pipe as
> part of restart processing.  The child process is stuck forever trying
> to write to the pipe.

I stuck a patch for 1.3 at http://people.apache.org/~trawick/pr26467_13.txt

I need to test a little more and convince myself that it is okay to
represent pipe handles with int (e.g., because other platforms don't
use that code??).  I guess the new code needs to be conditional based
on platform.  Anybody want to play with it?

Mime
View raw message