From: Ryan Bloom Date: Sun, 28 Jan 2001 03:00:03 +0000 (+0000) Subject: The prefork MPM wasn't killing child processes correctly if a restart X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ea8210012b0c36120077f6dcd0625c1f9d338e0;p=apache The prefork MPM wasn't killing child processes correctly if a restart signal was received while the process was serving a request. The child process would become the equivalent of a second parent process. If we break out of the accept loop, then we need to do die after cleaning up after ourselves. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87882 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 6466e2aca2..f4520673af 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,11 @@ Changes with Apache 2.0b1 + *) The prefork MPM wasn't killing child processes correctly if a restart + signal was received while the process was serving a request. The child + process would become the equivalent of a second parent process. If + we break out of the accept loop, then we need to do die after cleaning + up after ourselves. [Ryan Bloom] + *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful restarts. [Ryan Bloom] diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 112f73d3f0..d7efe67ed1 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -1052,6 +1052,7 @@ static void child_main(int child_num_arg) ap_process_connection(current_conn); ap_lingering_close(current_conn); } + clean_child_exit(0); }