From: Garrett Rooney Date: Mon, 13 Feb 2006 02:25:53 +0000 (+0000) Subject: Make the worker and event MPMs support GracefulShutdownTimeout just like X-Git-Tag: 2.3.0~2550 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b458b88d158acc1bdce71e6cc58287bb530775da;p=thirdparty%2Fapache%2Fhttpd.git Make the worker and event MPMs support GracefulShutdownTimeout just like the prefork MPM does. Submitted by: Chris Darroch Ported to event MPM by: rooneg Issue number: 38621 * server/mpm/worker/worker.c (ap_mpm_run): Make the graceful shutdown log message refer to the right signal, and respect the graceful shutdown timeout if there is one. * server/mpm/experimental/event/event.c (ap_mpm_run): Ditto. * CHANGES: Note change. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@377291 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 1052c63163d..86780ab1c33 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) Respect GracefulShutdownTimeout in the worker and event MPMs. + [Chris Darroch , Garrett Rooney] + *) mod_proxy_balancer: Do not overwrite the status of initialized workers and respect the configured status of uninitilized workers when creating a new child process. [Ruediger Pluem] diff --git a/server/mpm/experimental/event/event.c b/server/mpm/experimental/event/event.c index 38f187d1f8f..e0c9aa43ea7 100644 --- a/server/mpm/experimental/event/event.c +++ b/server/mpm/experimental/event/event.c @@ -2037,8 +2037,14 @@ int ap_mpm_run(apr_pool_t * _pconf, apr_pool_t * plog, server_rec * s) "removed PID file %s (pid=%ld)", pidfile, (long)getpid()); - ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, - ap_server_conf, "caught SIGTERM, shutting down"); + ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf, + "caught " AP_SIG_GRACEFUL_STOP_STRING + ", shutting down gracefully"); + } + + if (ap_graceful_shutdown_timeout) { + cutoff = apr_time_now() + + apr_time_from_sec(ap_graceful_shutdown_timeout); } /* Don't really exit until each child has finished */ diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index 87b910fd10d..faf9747e2e8 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -1768,8 +1768,14 @@ int ap_mpm_run(apr_pool_t *_pconf, apr_pool_t *plog, server_rec *s) "removed PID file %s (pid=%" APR_PID_T_FMT ")", pidfile, getpid()); - ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, - ap_server_conf, "caught SIGTERM, shutting down"); + ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf, + "caught " AP_SIG_GRACEFUL_STOP_STRING + ", shutting down gracefully"); + } + + if (ap_graceful_shutdown_timeout) { + cutoff = apr_time_now() + + apr_time_from_sec(ap_graceful_shutdown_timeout); } /* Don't really exit until each child has finished */