Bug 52828

Summary: Child process is not replaced in Windows, after a worker thread was killed
Product: Apache httpd-2 Reporter: mosheb
Component: CoreAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: RESOLVED LATER    
Severity: major Keywords: MassUpdate
Priority: P2    
Version: 2.2.21   
Target Milestone: ---   
Hardware: PC   
OS: Windows Server 2003   

Description mosheb 2012-03-05 07:52:47 UTC
When the child process needs to be replaced because MaxRequestsPerChild has been reached, there is an attempt to wait for the threads running in the older child to be over. If it takes longer than 5 minutes, the threads are killed. In case a thread is killed, the existing child (the newer child) is no longer replaced.

In the logs, it looks like this:

[Sun Feb 12 09:58:18 2012] [notice] Child 10508: Process exiting because it reached MaxRequestsPerChild. Signaling the parent to restart a new child process.
[Sun Feb 12 09:58:18 2012] [notice] Parent: Received restart signal -- Restarting the server.
[Sun Feb 12 09:58:18 2012] [notice] Digest: generating secret for digest authentication ...
[Sun Feb 12 09:58:18 2012] [notice] Digest: done
[Sun Feb 12 09:58:18 2012] [notice] Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/0.9.8r configured -- resuming normal operations
[Sun Feb 12 09:58:18 2012] [notice] Server built: Sep  9 2011 10:26:10
[Sun Feb 12 09:58:18 2012] [notice] Parent: Created child process 8816
[Sun Feb 12 09:58:19 2012] [notice] Digest: generating secret for digest authentication ...
[Sun Feb 12 09:58:19 2012] [notice] Digest: done
[Sun Feb 12 09:58:19 2012] [notice] Child 10508: Released the start mutex
[Sun Feb 12 09:58:19 2012] [notice] Child 8816: Child process is running
[Sun Feb 12 09:58:19 2012] [notice] Child 8816: Acquired the start mutex.
[Sun Feb 12 09:58:19 2012] [notice] Child 8816: Starting 500 worker threads.
[Sun Feb 12 09:58:19 2012] [notice] Child 8816: Starting thread to listen on port 443.
[Sun Feb 12 09:58:19 2012] [notice] Child 8816: Starting thread to listen on port 80.
[Sun Feb 12 09:58:52 2012] [notice] Child 10508: Waiting 270 more seconds for 2 worker threads to finish.
[Sun Feb 12 09:59:25 2012] [notice] Child 10508: Waiting 240 more seconds for 2 worker threads to finish.
[Sun Feb 12 09:59:58 2012] [notice] Child 10508: Waiting 210 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:00:31 2012] [notice] Child 10508: Waiting 180 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:01:04 2012] [notice] Child 10508: Waiting 150 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:01:36 2012] [notice] Child 10508: Waiting 120 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:02:09 2012] [notice] Child 10508: Waiting 90 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:02:42 2012] [notice] Child 10508: Waiting 60 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:03:15 2012] [notice] Child 10508: Waiting 30 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:03:48 2012] [notice] Child 10508: Waiting 0 more seconds for 2 worker threads to finish.
[Sun Feb 12 10:03:48 2012] [notice] Child 10508: Terminating 2 threads that failed to exit.
[Sun Feb 12 10:03:48 2012] [notice] Child 10508: All worker threads have exited.
[Sun Feb 12 10:03:48 2012] [notice] Child 10508: Child process is exiting

Our relevant configuration is:

ThreadLimit 500
ThreadsPerChild 500
MaxRequestsPerChild 500
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 60
Comment 1 William A. Rowe Jr. 2018-11-07 21:09:53 UTC
Please help us to refine our list of open and current defects; this is a mass update of old and inactive Bugzilla reports which reflect user error, already resolved defects, and still-existing defects in httpd.

As repeatedly announced, the Apache HTTP Server Project has discontinued all development and patch review of the 2.2.x series of releases. The final release 2.2.34 was published in July 2017, and no further evaluation of bug reports or security risks will be considered or published for 2.2.x releases. All reports older than 2.4.x have been updated to status RESOLVED/LATER; no further action is expected unless the report still applies to a current version of httpd.

If your report represented a question or confusion about how to use an httpd feature, an unexpected server behavior, problems building or installing httpd, or working with an external component (a third party module, browser etc.) we ask you to start by bringing your question to the User Support and Discussion mailing list, see [https://httpd.apache.org/lists.html#http-users] for details. Include a link to this Bugzilla report for completeness with your question.

If your report was clearly a defect in httpd or a feature request, we ask that you retest using a modern httpd release (2.4.33 or later) released in the past year. If it can be reproduced, please reopen this bug and change the Version field above to the httpd version you have reconfirmed with.

Your help in identifying defects or enhancements still applicable to the current httpd server software release is greatly appreciated.