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
Loading
Please sign in to comment