Fixed: apache/httpd#2055 (trunk - 959dabf)

2021-10-13 Thread Travis CI
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)

2021-10-13 Thread Travis CI
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

2021-10-13 Thread Ruediger Pluem



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

2021-10-13 Thread Yann Ylavic
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)

2021-10-13 Thread Travis CI
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)

2021-10-13 Thread Travis CI
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)

2021-10-13 Thread Travis CI
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)

2021-10-13 Thread Travis CI
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)

2021-10-13 Thread Travis CI
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/

2021-10-13 Thread ste...@eissing.org



> 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/

2021-10-13 Thread 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 :-)

Regards

Rüdiger


Errored: apache/httpd#2048 (trunk - 174b3ab)

2021-10-13 Thread Travis CI
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.