From: Bill Stoddard Date: Wed, 25 Aug 2004 14:47:18 +0000 (+0000) Subject: Win32: Fix stranded piped loggers on apache -k start,restart,config,install X-Git-Tag: STRIKER_2_1_0_RC1~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45aeb8354357690d90d142bf24187345f53ce547;p=thirdparty%2Fapache%2Fhttpd.git Win32: Fix stranded piped loggers on apache -k start,restart,config,install git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@104799 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 5c8e62d5d72..ec747f223b4 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) Win32: apache -k start|restart|install|config can leave stranded + piped logger processes (eg, rotatelogs.exe) due to improper + server shutdown on these code paths. + [Bill Stoddard] *) Restructured mod_auth_ldap to fit the new authentication model. The module is now called authnz_ldap and has been moved out of diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c index 7dd58c444e0..6fcd7810e95 100644 --- a/server/mpm/winnt/mpm_winnt.c +++ b/server/mpm/winnt/mpm_winnt.c @@ -1409,10 +1409,14 @@ static int winnt_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pt if (!strcasecmp(signal_arg, "install")) { rv = mpm_service_install(ptemp, inst_argc, inst_argv, 0); + apr_pool_destroy(s->process->pool); + apr_terminate(); exit (rv); } if (!strcasecmp(signal_arg, "config")) { rv = mpm_service_install(ptemp, inst_argc, inst_argv, 1); + apr_pool_destroy(s->process->pool); + apr_terminate(); exit (rv); } @@ -1425,11 +1429,15 @@ static int winnt_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pt lr->active = 0; } rv = mpm_service_start(ptemp, inst_argc, inst_argv); + apr_pool_destroy(s->process->pool); + apr_terminate(); exit (rv); } if (!strcasecmp(signal_arg, "restart")) { mpm_signal_service(ptemp, 1); + apr_pool_destroy(s->process->pool); + apr_terminate(); exit (rv); }