]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
mpm_event, mpm_worker: Remain active amidst prevalent child process
authorJeff Trawick <trawick@apache.org>
Thu, 19 Jul 2012 21:31:52 +0000 (21:31 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 19 Jul 2012 21:31:52 +0000 (21:31 +0000)
commit968d8f86f2aa48a9f15c85f08e3ecce39cb96ba5
treeb1b011a57954730fdd90b56b37506090f6cc8dc0
parent560d872d5aa0da661ba88899ded9d7f415a2e629
mpm_event, mpm_worker: Remain active amidst prevalent child process
resource shortages.

This is a somewhat different direction than r168182 ("transient thread
creation errors shouldn't take down the whole server").

r168182: If APEXIT_CHILDSICK is received and there aren't any
         active children at the time, exit.

Now:     If APEXIT_CHILDSICK is received and we never successfully
         initialized a child, exit.

The issue seen with the r168182 handling is that it is rather easy
to be left with no active child processes (which causes the server
to exit completely) during a resource shortage that lasts for some
measurable period of time, as contrasted with a resource shortage
that results in only a handful of allocation failures.

Now the server will remain active, though as long as the resource
shortage exists children may continually fail and the parent will
try once per second to create a replacement.  The existing logic
to reduce the spawn rate after such errors will prevent the
parent from trying to create children more rapidly.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1363557 13f79535-47bb-0310-9956-ffa450edef68
CHANGES
docs/log-message-tags/next-number
server/mpm/event/event.c
server/mpm/worker/worker.c