From: Jeff Trawick Date: Wed, 16 May 2001 19:19:56 +0000 (+0000) Subject: don't destroy the pcgi pool when the other-child registration X-Git-Tag: 2.0.18~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfa372f602593e6d398e4ace61f9c8df085612c4;p=thirdparty%2Fapache%2Fhttpd.git don't destroy the pcgi pool when the other-child registration of the cgi daemon goes away... it goes away *because* the pcgi pool is being destroyed git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89130 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/STATUS b/STATUS index 5511eb057b6..3d7187938d0 100644 --- a/STATUS +++ b/STATUS @@ -1,5 +1,5 @@ APACHE 2.0 STATUS: -*-text-*- -Last modified at [$Date: 2001/05/12 03:48:29 $] +Last modified at [$Date: 2001/05/16 19:19:47 $] Release: @@ -95,19 +95,6 @@ RELEASE SHOWSTOPPERS: WARNING: ALWAYS check srclib/apr/STATUS and srclib/apr-util/STATUS - * threaded + cgid: "apachectl graceful" followed by "apachectl - restart" results in all processes but cgid going away; parent - died referencing other-child registration structures - - a couple of solutions/work-arounds for this problem: - - 1) disable APR_HAS_OTHER_CHILD support - 2) teach APR to clean up other-child registrations when the - associated pool goes away (see - Message-Id: - <200104262241.SAA04468@adsl-77-241-65.rdu.bellsouth.net> for - a patch. - * There is a bug in how we sort some hooks, at least the pre-config hook. The first time we call the hooks, they are in the correct order, but the second time, we don't sort them correctly. Currently, diff --git a/modules/generators/mod_cgid.c b/modules/generators/mod_cgid.c index cbb09d35250..913ee08869a 100644 --- a/modules/generators/mod_cgid.c +++ b/modules/generators/mod_cgid.c @@ -242,7 +242,9 @@ static void cgid_maint(int reason, void *data, apr_wait_t status) apr_proc_other_child_unregister(data); break; case APR_OC_REASON_UNREGISTER: - apr_pool_destroy(pcgi); + /* we get here when pcgi is cleaned up; pcgi gets cleaned + * up when pconf gets cleaned up + */ kill(*sd, SIGHUP); break; }