Fixed: apache/httpd#2055 (trunk - 959dabf)
Build Update for apache/httpd - Build: #2055 Status: Fixed Duration: 8 mins and 5 secs Commit: 959dabf (trunk) Author: Stefan Eissing Message: * test/modules/http2: marking 3 test cases for skip as they fail on travis and need further analysis. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894200 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/9b432e0ce070...959dabfd836c View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239761583?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Still Failing: apache/httpd#2054 (trunk - 9b432e0)
Build Update for apache/httpd - Build: #2054 Status: Still Failing Duration: 6 mins and 32 secs Commit: 9b432e0 (trunk) Author: Yann Ylavic Message: mod_info: Output AP_MPMQ_MAX_DAEMONS instead of AP_MPMQ_MAX_DAEMON_USED. The latter is maintained in the parent process only (for maintenance) and is meaningless in the child process (by design). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894195 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/01650d529447...9b432e0ce070 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239748110?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Re: [Bug 65626] New: MPM Event doesn't shutdown idle children after working under high load
On 10/13/21 3:38 PM, Yann Ylavic wrote: > On Tue, Oct 12, 2021 at 6:05 PM Ruediger Pluem wrote: >> >> On 10/12/21 4:58 PM, Yann Ylavic wrote: >>> >>> Shouldn't we also compute a busy_thread_count and kill children >>> if/when later things settle down and thus busy_thread_count < >>> max_spare_threads (like in the attached patch)? >> >> Hm. Wouldn't it be better instead to ensure that idle_thread_count is "far" >> larger than the min_spare_threads something like. >> idle_thread_count > active_daemons_limit/2/num_buckets*ThreadsPerChild + >> min_spare_threads > > Right, better. Given that max_workers = active_daemons_limit * > ThreadsPerChild, let's rewrite this as: > idle_thread_count > (max_workers/2 + min_spare_threads) / num_buckets > I don't get the +min_spare_threads though, if "min_spare_threads >= > max_workers/2" this would be above max_workers thus never trigger? You are correct, probably bad. I just wanted to ensure that we have enough distance to min_spare_threads, but max_workers/2 should do. > > When about to kill children we already know that "idle_thread_count > > max_spare_threads/num_buckets" (the block we are in), so above > max_spare_threads is not necessarily far larger than min_spare_threads > but far enough? I guess this was the key point here, that max_spare_threads and min_spare_threads are too close together (probably only one or two processes) and that a process we shutdown does not die fast enough to make room in the scoreboard once we go below min_spare_threads. This is no problem at at all if we still have plenty of room until reaching server_limit, but if not we could end up with scoreboard full situation. > > Given also that "active_daemons_limit <= server_limit" here (per I guess the point is that active_daemons_limit could be == server_limit if MaxRequestWworker / Threadsperchild == ServerLimit. The idea was that we don't kill any process if we are at ServerLimit. The new approach would be to allow that if the idle threads are far larger than min_spare_threads and hence the danger that we need to replace the dying process "soon" with a new one as we go below min_spare_threads and can't because of a full scoreboard does not happen. > event_check_config), how about we simply test for: > if (retained->total_daemons <= active_daemons_limit As explained above I would keep the current condition. In a "sensible" configured server where MaxRequestWworker / Threadsperchild < ServerLimit the condition would not be needed as you state. > || idle_thread_count > max_workers/{2,3,4} / num_buckets) { > /* kill one child */ > } > else { > /* still busy enough, don't kill */ > } > ? > >> >> (2 is arbitrary choice could be also larger to start earlier reducing >> daemons) > > 4 would be fine by me, opinions? 4 is fine for me as well. I would choose a power of two as this should provide a fast integer division by just shifting bits. > >> >> This would prevent the situation that we have a dying daemon and a rise of >> requests would cause the start of a new daemon "soon". > > By killing one child we'll "retained->total_daemons <= > active_daemons_limit" again and come back to normal logic: kill while > "idle_thread_count > max_spare_threads/num_buckets" and no new child > started until "idle_thread_count < min_spare_threads / num_buckets" > (and since idle_spawn_rate was reset to 1 there will be no storm > when/if the latter happens). > So we should be good? Yes. Regards Rüdiger
Re: [Bug 65626] New: MPM Event doesn't shutdown idle children after working under high load
On Tue, Oct 12, 2021 at 6:05 PM Ruediger Pluem wrote: > > On 10/12/21 4:58 PM, Yann Ylavic wrote: > > > > Shouldn't we also compute a busy_thread_count and kill children > > if/when later things settle down and thus busy_thread_count < > > max_spare_threads (like in the attached patch)? > > Hm. Wouldn't it be better instead to ensure that idle_thread_count is "far" > larger than the min_spare_threads something like. > idle_thread_count > active_daemons_limit/2/num_buckets*ThreadsPerChild + > min_spare_threads Right, better. Given that max_workers = active_daemons_limit * ThreadsPerChild, let's rewrite this as: idle_thread_count > (max_workers/2 + min_spare_threads) / num_buckets I don't get the +min_spare_threads though, if "min_spare_threads >= max_workers/2" this would be above max_workers thus never trigger? When about to kill children we already know that "idle_thread_count > max_spare_threads/num_buckets" (the block we are in), so above max_spare_threads is not necessarily far larger than min_spare_threads but far enough? Given also that "active_daemons_limit <= server_limit" here (per event_check_config), how about we simply test for: if (retained->total_daemons <= active_daemons_limit || idle_thread_count > max_workers/{2,3,4} / num_buckets) { /* kill one child */ } else { /* still busy enough, don't kill */ } ? > > (2 is arbitrary choice could be also larger to start earlier reducing daemons) 4 would be fine by me, opinions? > > This would prevent the situation that we have a dying daemon and a rise of > requests would cause the start of a new daemon "soon". By killing one child we'll "retained->total_daemons <= active_daemons_limit" again and come back to normal logic: kill while "idle_thread_count > max_spare_threads/num_buckets" and no new child started until "idle_thread_count < min_spare_threads / num_buckets" (and since idle_spawn_rate was reset to 1 there will be no storm when/if the latter happens). So we should be good? Regards; Yann.
Still Failing: apache/httpd#2053 (trunk - 01650d5)
Build Update for apache/httpd - Build: #2053 Status: Still Failing Duration: 7 mins and 34 secs Commit: 01650d5 (trunk) Author: Stefan Eissing Message: * mod_http2: I regret my decision to have removed nghttp2 feature checks... git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894192 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/0935f7ec7753...01650d529447 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239742361?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Still Failing: apache/httpd#2052 (trunk - 0935f7e)
Build Update for apache/httpd - Build: #2052 Status: Still Failing Duration: 18 mins and 18 secs Commit: 0935f7e (trunk) Author: Stefan Eissing Message: * mod_http2: resurrecting check for nghttp function nghttp2_session_callbacks_set_on_invalid_header_callback adding test for proxy server header behaviour making test fixture package scoped for better performance git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894190 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/672e736a1070...0935f7ec7753 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239736985?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Still Failing: apache/httpd#2051 (trunk - 672e736)
Build Update for apache/httpd - Build: #2051 Status: Still Failing Duration: 6 mins and 55 secs Commit: 672e736 (trunk) Author: Stefan Eissing Message: * mod_http2: checking for nghttp2 function 'set_no_closed_streams' on configure. adapting test result expectations for new nghttp2 1.45 change in checking pseudo header fields for invalid characters. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894189 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/d4ec4a3c72e6...672e736a1070 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239728547?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Failed: apache/httpd#2050 (trunk - d4ec4a3)
Build Update for apache/httpd - Build: #2050 Status: Failed Duration: 19 mins and 39 secs Commit: d4ec4a3 (trunk) Author: Stefan Eissing Message: * mod_http2: avoid the term "pushing" in documentation for H2StreamTimeout as this has nothing to do with the HTTP/2 PUSH feature. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894187 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/93d3eca86d08...d4ec4a3c72e6 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239716011?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Failed: apache/httpd#2049 (trunk - 93d3eca)
Build Update for apache/httpd - Build: #2049 Status: Failed Duration: 8 mins and 40 secs Commit: 93d3eca (trunk) Author: Stefan Eissing Message: *) mod_http2: resurrecting the check for older nghttp2 versions. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894184 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/1c5c030a70dc...93d3eca86d08 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239715150?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
Re: svn commit: r1894163 [1/8] - in /httpd/httpd/trunk: ./ changes-entries/ modules/http2/ test/modules/http2/
> Am 13.10.2021 um 10:14 schrieb Ruediger Pluem : > > > > On 10/12/21 3:34 PM, ic...@apache.org wrote: >> Author: icing >> Date: Tue Oct 12 13:34:01 2021 >> New Revision: 1894163 >> >> URL: http://svn.apache.org/viewvc?rev=1894163=rev >> Log: >> *) mod_http2: >> - Fixed an issue since 1.15.24 that "Server" headers in proxied requests >> were overwritten instead of preserved. [PR by @daum3ns] >> - Added directove 'H2StreamTimeout' to configure a separate value for >> HTTP/2 >> streams, overriding server's 'Timeout' configuration. [rpluem] >> - HTTP/2 connections now use pollsets to monitor the status of the >> ongoing streams and their main connection when host OS allows this. >> - Removed work-arounds for older versions of libnghttp2 and checking >> during configure that at least version 1.15.0 is present. > > I guess this means that we need to remove mod_http2 from our Xenial Travis > builds since it only ships with 1.7.1. > Or should we remove the one remaining Xenial build at all? > At least it has the benefit that it tells us that things break if we move > forward with dependencies :-) Yeah, saw that. I am bringing back the checks for earlier nghttp2 libs right now. Praise to the Travis hamsters! > > Regards > > Rüdiger
Re: svn commit: r1894163 [1/8] - in /httpd/httpd/trunk: ./ changes-entries/ modules/http2/ test/modules/http2/
On 10/12/21 3:34 PM, ic...@apache.org wrote: > Author: icing > Date: Tue Oct 12 13:34:01 2021 > New Revision: 1894163 > > URL: http://svn.apache.org/viewvc?rev=1894163=rev > Log: > *) mod_http2: > - Fixed an issue since 1.15.24 that "Server" headers in proxied requests >were overwritten instead of preserved. [PR by @daum3ns] > - Added directove 'H2StreamTimeout' to configure a separate value for > HTTP/2 >streams, overriding server's 'Timeout' configuration. [rpluem] > - HTTP/2 connections now use pollsets to monitor the status of the >ongoing streams and their main connection when host OS allows this. > - Removed work-arounds for older versions of libnghttp2 and checking >during configure that at least version 1.15.0 is present. I guess this means that we need to remove mod_http2 from our Xenial Travis builds since it only ships with 1.7.1. Or should we remove the one remaining Xenial build at all? At least it has the benefit that it tells us that things break if we move forward with dependencies :-) Regards Rüdiger
Errored: apache/httpd#2048 (trunk - 174b3ab)
Build Update for apache/httpd - Build: #2048 Status: Errored Duration: 11 mins and 44 secs Commit: 174b3ab (trunk) Author: Ruediger Pluem Message: * Fix compiler warning about unused variable git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894181 13f79535-47bb-0310-9956-ffa450edef68 View the changeset: https://github.com/apache/httpd/compare/6221624da6e6...174b3abcc390 View the full build log and details: https://app.travis-ci.com/github/apache/httpd/builds/239711123?utm_medium=notification_source=email -- You can unsubscribe from build emails from the apache/httpd repository going to https://app.travis-ci.com/account/preferences/unsubscribe?repository=16806660_medium=notification_source=email. Or unsubscribe from *all* email updating your settings at https://app.travis-ci.com/account/preferences/unsubscribe?utm_medium=notification_source=email. Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.