This was first noticed while using httpd 2.2.3 on Solaris SPARC, but the bug is still present in httpd 2.2.6 and could surface on any platform using prefork. The issue is that the signal handlers are installed before the restart_pending and shutdown_pending variables are initialized. If httpd receives SIGTERM while child processes are being spawned, it will be completely ignored. The following two commands, one immediately called after the other, can reproduce the situation: httpd -k start httpd -k stop
Created attachment 21040 [details] patch to prefork.c
fixed in trunk in r1151233
fixed in 2.4.1