From: Brian Pane Date: Fri, 11 Jan 2002 08:01:11 +0000 (+0000) Subject: Fix for a segfault in the worker MPM during graceful shutdown: X-Git-Tag: 2.0.31~221 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e2d9d723622b10cd1e776ae68848d36dec98a225;p=apache Fix for a segfault in the worker MPM during graceful shutdown: The per-transaction pools in the worker MPM can't be children of the listener thread's pool, because that pool may go out of scope while some workers are still procesing requests using the transaction pools. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92821 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index a2e9956a9e..411b538b83 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ Changes with Apache 2.0.31-dev + *) Fixed a segfault that happened during graceful shutdown (or when + the httpd ran out of file descriptors) with the worker MPM [Brian Pane] + *) Split all Win32 modules [excluding the core components mod_core, mod_so, mod_win32 and the winnt mpm] into individual loadable modules, so the administrator may individually disable the former diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index 4d01e91942..d255290867 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -701,7 +701,7 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) got_fd: if (!workers_may_exit) { /* create a new transaction pool for each accepted socket */ - apr_pool_create_ex(&ptrans, tpool, NULL, APR_POOL_FNEW_ALLOCATOR); + apr_pool_create_ex(&ptrans, NULL, NULL, APR_POOL_FNEW_ALLOCATOR); apr_pool_tag(ptrans, "transaction"); rv = lr->accept_func(&csd, lr, ptrans);