From: Jeff Trawick Date: Fri, 27 Jul 2012 19:51:57 +0000 (+0000) Subject: Merge r1363183 from trunk: X-Git-Tag: 2.2.23~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d402caa318fbd8651a472952419fa638e144554;p=thirdparty%2Fapache%2Fhttpd.git Merge r1363183 from trunk: mpm_prefork: Reduce spawn rate after a child process exits due to unexpected poll or accept failure. Submitted by: trawick Reviewed by: jorton, rjung git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1366515 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index b46a9e995ba..c6928d8492a 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,9 @@ Changes with Apache 2.2.23 envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the current working directory to be searched for DSOs. [Stefan Fritsch] + *) mpm_prefork: Reduce spawn rate after a child process exits due to + unexpected poll or accept failure. [Jeff Trawick] + *) core: Adjust ap_scan_script_header_err*() to prevent mod_cgi and mod_cgid from logging bogus data in case of errors. [Stefan Fritsch] diff --git a/STATUS b/STATUS index e094ae5fcb5..33ec368edf2 100644 --- a/STATUS +++ b/STATUS @@ -103,12 +103,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: sf notes: The docs should get a compatibility note once it is clear in which 2.2.x version it gets introduced. - * mpm_prefork: Reduce spawn rate after a child process exits due to - unexpected poll or accept failure. - trunk patch: http://svn.apache.org/viewvc?rev=1363183&view=rev - 2.2.x patch: trunk patch works - +1: trawick, jorton, rjung - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 108f961ae29..9f800069e8b 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -614,7 +614,7 @@ static void child_main(int child_num_arg) ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf, "apr_pollset_poll: (listen)"); SAFE_ACCEPT(accept_mutex_off()); - clean_child_exit(1); + clean_child_exit(APEXIT_CHILDSICK); } /* We can always use pdesc[0], but sockets at position N @@ -651,7 +651,7 @@ static void child_main(int child_num_arg) if (status == APR_EGENERAL) { /* resource shortage or should-not-occur occured */ - clean_child_exit(1); + clean_child_exit(APEXIT_CHILDSICK); } else if (status != APR_SUCCESS) { continue;