DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21645>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21645

Child processes die after each request ( after connection is closed) on OpenBSD





------- Additional Comments From [EMAIL PROTECTED]  2003-07-16 15:58 -------
I tried to track down this problem a bit further:

When the problem occurs, child_main() (prefork.c) always exits after serving 
the first request. More 
specifically, die_now is set to 1 after ap_mpm_pod_check() in line 704, every 
time.

I am not familiar with the Apache source code. However, as far as I can tell, 
this means that the 
parent found too many idle children during perform_idle_server_maintenance() 
and killed one by 
sending something through the "pipe-of-death".

We are still not entirely sure how to reproduce this problem. Last time, we 
could reproduce it by 
making lots of request so that many childs are spawned, then waiting until 
Apache starts to kill 
some of the idle ones. Suddenly, the server *always* killed each and every 
child after the first 
request.

I am also not sure if I understand the way the parent kills an idle child 
(prefork.c, 
perform_idle_server_maintenance, line 889). The line simply says this:

ap_mpm_pod_signal(pod);

Does this mean that there is only a single pipe shared between the parent and 
all children? For 
example, could it happen that the data sent through the pipe gets "stuck" and 
returned to each 
child on a read? (I'm asking because this seems to be a platform-specific 
problem on OpenBSD - 
perhaps OpenBSD behaves differently or is simply bugged?)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to