I can currently reproduce the following problem with 2.2.15 event MPM
under high load:
When an httpd child process gets closed due to the max spare threads
rule and it holds established client connections for which it has fully
received a keep alive request, but not yet send any part of the
response, it will simply close that connection.
Is that expected behaviour? It doesn't seem reproducible for the worker
MPM. The behaviour has been observed using extreme spare rules in order
to make processes shut down often, but it still seems not right.
Details:
Platform Solaris 10 Sparc. Client "ab". Primary observation "Length
Error". Added loggin to ab and saw that the connection returned EOF when
trying to read response. Logged connection port for ab and Apache and
saw, that it happens while the connection is still in KeepAlive but the
PID shuts down. Did packet dumps and saw request coming in, server ACKs
request and 0.5 seconds later sends FIN. That's the point in time the
child process that holds the respective connection shuts down.
NB: I'm not talking about (graceful) shutdown via apachectl, nor about
MaxRequestsPerChild.
Any ideas welcome. If there are none, I'll inspect more deeply.
Regards,
Rainer