On 5/15/05, Jeff Trawick <[EMAIL PROTECTED]> 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?
