Bug 43857 - exiting prefork child doesn't clear request pool
Summary: exiting prefork child doesn't clear request pool
Alias: None
Product: Apache httpd-2
Classification: Unclassified
Component: mpm_prefork (show other bugs)
Version: 2.5-HEAD
Hardware: All Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
Keywords: PatchAvailable
Depends on:
Blocks: 62813
  Show dependency tree
Reported: 2007-11-14 10:16 UTC by Tom Donovan
Modified: 2018-10-10 15:07 UTC (History)
1 user (show)

prefork patch (327 bytes, patch)
2007-11-14 10:16 UTC, Tom Donovan
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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'
  [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