From: Jeff Trawick Date: Fri, 6 May 2011 13:35:49 +0000 (+0000) Subject: Grab r1090634 from trunk: X-Git-Tag: 2.2.18~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fb980e3cce2a8f1fec66093daa9f5ee29cddbd1f;p=thirdparty%2Fapache%2Fhttpd.git Grab r1090634 from trunk: don't try to shut down child if it wasn't created (or, fix warning about reference to uninitialized variable child_exit_event) Reviewed by: wrowe, covener git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1100211 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/STATUS b/STATUS index 96f5470abf0..648bb08ccfb 100644 --- a/STATUS +++ b/STATUS @@ -103,11 +103,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: http://people.apache.org/~trawick/mingw_patch_warnings.txt +1: trawick, wrowe, covener - * WinNT MPM: don't try to shut down child if it wasn't created - Trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1090634 - 2.2.x patch: Trunk patch applies with offset - +1: trawick, wrowe, covener - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c index f0dfc8fb493..797c023275a 100644 --- a/server/mpm/winnt/mpm_winnt.c +++ b/server/mpm/winnt/mpm_winnt.c @@ -854,13 +854,14 @@ static int create_process(apr_pool_t *p, HANDLE *child_proc, HANDLE *child_exit_ static int master_main(server_rec *s, HANDLE shutdown_event, HANDLE restart_event) { int rv, cld; + int child_created; int restart_pending; int shutdown_pending; HANDLE child_exit_event; HANDLE event_handles[NUM_WAIT_HANDLES]; DWORD child_pid; - restart_pending = shutdown_pending = 0; + child_created = restart_pending = shutdown_pending = 0; event_handles[SHUTDOWN_HANDLE] = shutdown_event; event_handles[RESTART_HANDLE] = restart_event; @@ -875,6 +876,9 @@ static int master_main(server_rec *s, HANDLE shutdown_event, HANDLE restart_even shutdown_pending = 1; goto die_now; } + + child_created = 1; + if (!strcasecmp(signal_arg, "runservice")) { mpm_service_started(); } @@ -969,6 +973,10 @@ die_now: int timeout = 30000; /* Timeout is milliseconds */ winnt_mpm_state = AP_MPMQ_STOPPING; + if (!child_created) { + return 0; /* Tell the caller we do not want to restart */ + } + /* This shutdown is only marginally graceful. We will give the * child a bit of time to exit gracefully. If the time expires, * the child will be wacked.