From: Jim Jagielski Date: Mon, 8 Oct 2007 12:44:08 +0000 (+0000) Subject: Approved and backported X-Git-Tag: 2.2.7~334 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=913dacdbbf8fd721a4af7d7220ec26ed62cc72e9;p=thirdparty%2Fapache%2Fhttpd.git Approved and backported git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@582804 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/STATUS b/STATUS index e81ac8b487b..30fcde1b390 100644 --- a/STATUS +++ b/STATUS @@ -79,14 +79,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * core log.c: Authored and Reviewed by both rplume and wrowe within - the same 10 minutes, share only a single apr_file_t/fd between the - stderr and server_main->error_log to prevent any lingering write - handles from hanging around in unexpected ways. - http://svn.apache.org/viewvc?view=rev&revision=580437 - PR 43491, solution validated by reporter - +1: wrowe, rpluem, jim - * mod_proxy_http: strip hop-by-hop response headers PR 43455 http://svn.apache.org/viewvc?view=rev&revision=580044 diff --git a/server/log.c b/server/log.c index 14b4fdc21f1..aa840abfd90 100644 --- a/server/log.c +++ b/server/log.c @@ -421,6 +421,16 @@ int ap_open_logs(apr_pool_t *pconf, apr_pool_t *p /* plog */, apr_pool_destroy(stderr_pool); stderr_pool = stderr_p; replace_stderr = 0; + /* + * Now that we have dup'ed s_main->error_log to stderr_log + * close it and set s_main->error_log to stderr_log. This avoids + * this fd being inherited by the next piped logger who would + * keep open the writing end of the pipe that this one uses + * as stdin. This in turn would prevent the piped logger from + * exiting. + */ + apr_file_close(s_main->error_log); + s_main->error_log = stderr_log; } } /* note that stderr may still need to be replaced with something