Bug 43857

Summary: exiting prefork child doesn't clear request pool
Product: Apache httpd-2 Reporter: Tom Donovan <Tom.Donovan>
Component: mpm_preforkAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: RESOLVED FIXED    
Severity: normal CC: mkent
Priority: P2 Keywords: PatchAvailable
Version: 2.5-HEAD   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Bug Depends on:    
Bug Blocks: 62813    
Attachments: prefork patch

Description Tom Donovan 2007-11-14 10:16:01 UTC
When a prefork child exits (either graceful, or chosen as an idle child to die)
- the last request's pool is not cleared.

Server pool cleanups can depend on request pool cleanups having been run.  An
example is APR reslist.  If the last request acquired a resource, relist cleanup
will fail an assertion:

  httpd: misc/apr_reslist.c:157: reslist_cleanup: Assertion `rl->ntotal == 0'
failed.
  [Wed Nov 14 10:44:02 2007] [notice] child pid 7491 exit signal Aborted (6)
Comment 1 Tom Donovan 2007-11-14 10:16:31 UTC
Created attachment 21125 [details]
prefork patch
Comment 2 Matthew Kent 2010-04-30 18:19:30 UTC
Believe I'm seeing this on 2.2.15 during idle cleanup

httpd: misc/apr_reslist.c:159: reslist_cleanup: Assertion `rl->ntotal == 0' failed.                                                                                                
[Fri Apr 30 15:10:16 2010] [notice] child pid 14271 exit signal Aborted (6)
Comment 3 Jeff Trawick 2010-05-10 16:54:02 UTC
fix committed to trunk in r942897; I'll propose for merging back to the 2.2.x branch shortly