Author: jim Date: Mon Oct 8 05:44:08 2007 New Revision: 582804 URL: http://svn.apache.org/viewvc?rev=582804&view=rev Log: Approved and backported Modified: httpd/httpd/branches/2.2.x/STATUS httpd/httpd/branches/2.2.x/server/log.c Modified: httpd/httpd/branches/2.2.x/STATUS URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=582804&r1=582803&r2=582804&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/STATUS (original) +++ httpd/httpd/branches/2.2.x/STATUS Mon Oct 8 05:44:08 2007 @@ -79,14 +79,6 @@ 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 Modified: httpd/httpd/branches/2.2.x/server/log.c URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/server/log.c?rev=582804&r1=582803&r2=582804&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/server/log.c (original) +++ httpd/httpd/branches/2.2.x/server/log.c Mon Oct 8 05:44:08 2007 @@ -421,6 +421,16 @@ 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