Graceful restarts can be really slow in 2.0 with prefork... the parent is making a dummy connection on the pod MaxClients times, rather than a connection for as many children as it has had; is that really necessary?
you're right, of course
At least one of the connections will get the 3 second timeout without
the below change in my testing, which accounts for the delay. Anecdotally we've seen it take up to a minute or more on idle-ish
servers during testing, and had user reports of the same.
I've seen this too on Linux 2.4 kernel.
Index: prefork.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/prefork/prefork.c,v
retrieving revision 1.279
diff -u -r1.279 prefork.c
--- prefork.c 27 Aug 2003 22:33:11 -0000 1.279
+++ prefork.c 16 Oct 2003 18:57:15 -0000
@@ -1123,7 +1123,7 @@
"Graceful restart requested, doing restart");
/* kill off the idle ones */
- ap_mpm_pod_killpg(pod, ap_daemons_limit);
+ ap_mpm_pod_killpg(pod, ap_max_daemons_limit);
as Greg mentioned, there are aspects of this mechanism that leave a lot to be desired... but this should be an improvement
+1 from me for 2.1-dev and 2.0.49-dev
