From: Graham Leggett Date: Fri, 23 Nov 2018 15:25:35 +0000 (+0000) Subject: *) event MPM: Don't log "at MaxRequestWorkers" when there are still idle threads, X-Git-Tag: 2.4.38~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02ea08f9608cb2b5a795527b5624207b4d073a27;p=thirdparty%2Fapache%2Fhttpd.git *) event MPM: Don't log "at MaxRequestWorkers" when there are still idle threads, just like worker. +1: covener, jim, minfrin git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1847286 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index b6a7e785195..4f166a88efd 100644 --- a/CHANGES +++ b/CHANGES @@ -37,6 +37,11 @@ Changes with Apache 2.4.36 *) mod_proxy_scgi, mod_proxy_uwsgi: improve error handling when sending the body of the response. [Jim Jagielski] + *) mpm_event: Stop issuing AH00484 "server reached MaxRequestWorkers..." when + there are still idle threads available. When there are less idle threads than + MinSpareThreads, issue new one-time message AH10159. Matches worker MPM. + [Eric Covener] + *) mod_http2: adding defensive code for stream EOS handling, in case the request handler missed to signal it the normal way (eos buckets). Addresses github issues https://github.com/icing/mod_h2/issues/164, https://github.com/icing/mod_h2/issues/167 diff --git a/STATUS b/STATUS index fd061a0581b..8b511d7f076 100644 --- a/STATUS +++ b/STATUS @@ -126,12 +126,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) event MPM: Don't log "at MaxRequestWorkers" when there are still idle threads, - just like worker. - trunk: //svn.apache.org/r1843513 - 2.4.x patch: http://people.apache.org/~covener/patches/2.4.x-event-maxclients.diff - +1: covener, jim, minfrin - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c index ffe8a23cbdf..4cfb09c5b28 100644 --- a/server/mpm/event/event.c +++ b/server/mpm/event/event.c @@ -372,6 +372,7 @@ typedef struct event_retained_data { int first_thread_limit; int sick_child_detected; int maxclients_reported; + int near_maxclients_reported; /* * The max child slot ever assigned, preserved across restarts. Necessary * to deal with MaxRequestWorkers changes across AP_SIG_GRACEFUL restarts. @@ -2833,13 +2834,23 @@ static void perform_idle_server_maintenance(int child_bucket, int num_buckets) } else if (idle_thread_count < min_spare_threads / num_buckets) { if (active_thread_count >= max_workers) { - if (!retained->maxclients_reported) { - /* only report this condition once */ - ap_log_error(APLOG_MARK, APLOG_ERR, 0, ap_server_conf, APLOGNO(00484) - "server reached MaxRequestWorkers setting, " - "consider raising the MaxRequestWorkers " - "setting"); - retained->maxclients_reported = 1; + if (0 == idle_thread_count) { + if (!retained->maxclients_reported) { + ap_log_error(APLOG_MARK, APLOG_ERR, 0, ap_server_conf, APLOGNO(00484) + "server reached MaxRequestWorkers setting, " + "consider raising the MaxRequestWorkers " + "setting"); + retained->maxclients_reported = 1; + } + } + else { + if (!retained->near_maxclients_reported) { + ap_log_error(APLOG_MARK, APLOG_ERR, 0, ap_server_conf, APLOGNO(10159) + "server is within MinSpareThreads of " + "MaxRequestWorkers, consider raising the " + "MaxRequestWorkers setting"); + retained->near_maxclients_reported = 1; + } } retained->idle_spawn_rate[child_bucket] = 1; }