From a86167f39d83d9ca915de1be8c89a4d691b43cd4 Mon Sep 17 00:00:00 2001 From: Greg Ames Date: Tue, 22 Nov 2011 15:34:47 +0000 Subject: [PATCH] garbage C's in server-status and extra processes with async lingering close. backport r1203708 from trunk. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1205039 13f79535-47bb-0310-9956-ffa450edef68 --- server/connection.c | 4 +++- server/mpm/event/event.c | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/server/connection.c b/server/connection.c index 13ba951b0c..6e4495f838 100644 --- a/server/connection.c +++ b/server/connection.c @@ -102,7 +102,9 @@ AP_DECLARE(int) ap_start_lingering_close(conn_rec *c) return 1; } - ap_update_child_status(c->sbh, SERVER_CLOSING, NULL); + if (c->sbh) { + ap_update_child_status(c->sbh, SERVER_CLOSING, NULL); + } #ifdef NO_LINGCLOSE ap_flush_conn(c); /* just close it */ diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c index 62560a1d7e..665d65833c 100644 --- a/server/mpm/event/event.c +++ b/server/mpm/event/event.c @@ -746,6 +746,11 @@ static void set_signals(void) static int start_lingering_close(event_conn_state_t *cs) { apr_status_t rv; + + cs->c->sbh = NULL; /* prevent scoreboard updates from the listener + * worker will loop around and set SERVER_READY soon + */ + if (ap_start_lingering_close(cs->c)) { apr_pool_clear(cs->p); ap_push_pool(worker_queue_info, cs->p); -- 2.50.1