Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread ste...@eissing.org



> Am 26.08.2021 um 16:44 schrieb Joe Orton :
> 
> On Thu, Aug 26, 2021 at 01:11:16PM +0200, ste...@eissing.org wrote:
>> Joe: with r1892615 I fixed a bug in waiting for the server to become
>> unresponsive after a stop. This *should* make timed waits unnecessary
>> in the http2 test suite.
> 
> Great stuff, thanks for all your work Stefan.  
> 
> It worked locally and once in Travis, merged to trunk in r1892620.

\o/ Now, when I break things, everyone will see it...wait!


Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread Joe Orton
On Thu, Aug 26, 2021 at 01:11:16PM +0200, ste...@eissing.org wrote:
> Joe: with r1892615 I fixed a bug in waiting for the server to become
> unresponsive after a stop. This *should* make timed waits unnecessary
> in the http2 test suite.

Great stuff, thanks for all your work Stefan.  

It worked locally and once in Travis, merged to trunk in r1892620.

Regards, Joe



Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread ste...@eissing.org
Joe: with r1892615 I fixed a bug in waiting for the server to become
unresponsive after a stop. This *should* make timed waits unnecessary
in the http2 test suite.

- Stefan

> Am 26.08.2021 um 10:43 schrieb ste...@eissing.org:
> 
> 
> 
>> Am 26.08.2021 um 10:27 schrieb Ruediger Pluem :
>> 
>> 
>> 
>> On 8/26/21 10:21 AM, ste...@eissing.org wrote:
>>> 
>>> 
 Am 26.08.2021 um 10:16 schrieb Joe Orton :
 
 On Thu, Aug 26, 2021 at 09:51:07AM +0200, ste...@eissing.org wrote:
> https://app.travis-ci.com/github/apache/httpd
> 
>>assert env.apache_restart() == 0
> 3026E   assert 1 == 0
> 3027E+  where 1 =  >()
> 3028E+where  > =  at 0x7ffb03366a60>.apache_restart
> 3029
> 3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
> 3031 Captured stderr setup 
> -
> 3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: 
> AH00072: make_sock: could not bind to address [::]:40001
> 3033(98)Address already in use: AH00072: make_sock: could not bind to 
> address 0.0.0.0:40001
> 3034AH03272: no listening sockets available, shutting down
> 3035
> 
> Looks like the stop/start cycle instead of reload is not timing safe. 
> If httpd is no longer responding, it does not mean that the ports are 
> available again for the new process. Reloads are just better here, as 
> wait loops can be avoided. Hmmthinking...
 
 Yeah :( Next build I've pushed has r1892598 reverted and a sleep(2) 
 after running apachectl, that was sufficient for me when I was testing 
 locally before.
>>> 
>>> Can we add a configuration directive for this server behaviour? Like
>>> 
>>> AcceptOnGraceful on|off
>>> 
>>> So that people who do not want the server to accept new connections
>>> during graceful reloads can influence this?
>> 
>> What about a graceful stop first and a start afterwards?
> 
> Just tested: "graceful-stop" seems to make it worse. Connections are 
> being served using the old configuration.
> 
>> 
>> Regards
>> 
>> Rüdiger



Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread ste...@eissing.org



> Am 26.08.2021 um 10:27 schrieb Ruediger Pluem :
> 
> 
> 
> On 8/26/21 10:21 AM, ste...@eissing.org wrote:
>> 
>> 
>>> Am 26.08.2021 um 10:16 schrieb Joe Orton :
>>> 
>>> On Thu, Aug 26, 2021 at 09:51:07AM +0200, ste...@eissing.org wrote:
 https://app.travis-ci.com/github/apache/httpd
 
> assert env.apache_restart() == 0
 3026E   assert 1 == 0
 3027E+  where 1 = >>> >()
 3028E+where >>> > = >>> 0x7ffb03366a60>.apache_restart
 3029
 3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
 3031 Captured stderr setup 
 -
 3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: 
 AH00072: make_sock: could not bind to address [::]:40001
 3033(98)Address already in use: AH00072: make_sock: could not bind to 
 address 0.0.0.0:40001
 3034AH03272: no listening sockets available, shutting down
 3035
 
 Looks like the stop/start cycle instead of reload is not timing safe. 
 If httpd is no longer responding, it does not mean that the ports are 
 available again for the new process. Reloads are just better here, as 
 wait loops can be avoided. Hmmthinking...
>>> 
>>> Yeah :( Next build I've pushed has r1892598 reverted and a sleep(2) 
>>> after running apachectl, that was sufficient for me when I was testing 
>>> locally before.
>> 
>> Can we add a configuration directive for this server behaviour? Like
>> 
>> AcceptOnGraceful on|off
>> 
>> So that people who do not want the server to accept new connections
>> during graceful reloads can influence this?
> 
> What about a graceful stop first and a start afterwards?

Just tested: "graceful-stop" seems to make it worse. Connections are 
being served using the old configuration.

> 
> Regards
> 
> Rüdiger
> 



Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread Ruediger Pluem



On 8/26/21 10:21 AM, ste...@eissing.org wrote:
> 
> 
>> Am 26.08.2021 um 10:16 schrieb Joe Orton :
>>
>> On Thu, Aug 26, 2021 at 09:51:07AM +0200, ste...@eissing.org wrote:
>>> https://app.travis-ci.com/github/apache/httpd
>>>
  assert env.apache_restart() == 0
>>> 3026E   assert 1 == 0
>>> 3027E+  where 1 = >> >()
>>> 3028E+where >> > = >> 0x7ffb03366a60>.apache_restart
>>> 3029
>>> 3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
>>> 3031 Captured stderr setup 
>>> -
>>> 3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: AH00072: 
>>> make_sock: could not bind to address [::]:40001
>>> 3033(98)Address already in use: AH00072: make_sock: could not bind to 
>>> address 0.0.0.0:40001
>>> 3034AH03272: no listening sockets available, shutting down
>>> 3035
>>>
>>> Looks like the stop/start cycle instead of reload is not timing safe. 
>>> If httpd is no longer responding, it does not mean that the ports are 
>>> available again for the new process. Reloads are just better here, as 
>>> wait loops can be avoided. Hmmthinking...
>>
>> Yeah :( Next build I've pushed has r1892598 reverted and a sleep(2) 
>> after running apachectl, that was sufficient for me when I was testing 
>> locally before.
> 
> Can we add a configuration directive for this server behaviour? Like
> 
> AcceptOnGraceful on|off
> 
> So that people who do not want the server to accept new connections
> during graceful reloads can influence this?

What about a graceful stop first and a start afterwards?

Regards

Rüdiger



Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread ste...@eissing.org



> Am 26.08.2021 um 10:16 schrieb Joe Orton :
> 
> On Thu, Aug 26, 2021 at 09:51:07AM +0200, ste...@eissing.org wrote:
>> https://app.travis-ci.com/github/apache/httpd
>> 
>>>  assert env.apache_restart() == 0
>> 3026E   assert 1 == 0
>> 3027E+  where 1 = > >()
>> 3028E+where > > = > 0x7ffb03366a60>.apache_restart
>> 3029
>> 3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
>> 3031 Captured stderr setup 
>> -
>> 3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: AH00072: 
>> make_sock: could not bind to address [::]:40001
>> 3033(98)Address already in use: AH00072: make_sock: could not bind to 
>> address 0.0.0.0:40001
>> 3034AH03272: no listening sockets available, shutting down
>> 3035
>> 
>> Looks like the stop/start cycle instead of reload is not timing safe. 
>> If httpd is no longer responding, it does not mean that the ports are 
>> available again for the new process. Reloads are just better here, as 
>> wait loops can be avoided. Hmmthinking...
> 
> Yeah :( Next build I've pushed has r1892598 reverted and a sleep(2) 
> after running apachectl, that was sufficient for me when I was testing 
> locally before.

Can we add a configuration directive for this server behaviour? Like

AcceptOnGraceful on|off

So that people who do not want the server to accept new connections
during graceful reloads can influence this?

- Stefan

Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread Joe Orton
On Thu, Aug 26, 2021 at 09:51:07AM +0200, ste...@eissing.org wrote:
> https://app.travis-ci.com/github/apache/httpd
> 
> >   assert env.apache_restart() == 0
> 3026E   assert 1 == 0
> 3027E+  where 1 =  >()
> 3028E+where  > =  0x7ffb03366a60>.apache_restart
> 3029
> 3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
> 3031 Captured stderr setup 
> -
> 3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: AH00072: 
> make_sock: could not bind to address [::]:40001
> 3033(98)Address already in use: AH00072: make_sock: could not bind to address 
> 0.0.0.0:40001
> 3034AH03272: no listening sockets available, shutting down
> 3035
> 
> Looks like the stop/start cycle instead of reload is not timing safe. 
> If httpd is no longer responding, it does not mean that the ports are 
> available again for the new process. Reloads are just better here, as 
> wait loops can be avoided. Hmmthinking...

Yeah :( Next build I've pushed has r1892598 reverted and a sleep(2) 
after running apachectl, that was sufficient for me when I was testing 
locally before.

Regards, Joe



Re: Broken: apache/httpd#1831 (trunk - 243c5fa)

2021-08-26 Thread ste...@eissing.org



> Am 25.08.2021 um 17:34 schrieb Joe Orton :
> 
> On Wed, Aug 25, 2021 at 05:08:06PM +0200, ste...@eissing.org wrote:
>> 
>> 
>>> Am 25.08.2021 um 17:06 schrieb Yann Ylavic :
>>> 
>>> Thanks, looks good, it probably needs a backport to 2.4.x since the
>>> first travis failure was there (Build #1819).
>>> Let's see how it works after several runs before maybe.
>> 
>> +1
>> 
>> Let's see what Joe and Travis can do to wreck it.
> 
> Well I could accidentally cancel your builds, how's that for starters?
> 
> (I restarted the most recent one, was trying to cancel the older PR 
> build, but hit the wrong button on the wrong page, sorry!)
> 
> Nice job getting this one fixed.
> 
> Regards, Joe
> 
> p.s. did you forget the APLOGNO()?
> p.p.s just kidding
> 

https://app.travis-ci.com/github/apache/httpd

>   assert env.apache_restart() == 0
3026E   assert 1 == 0
3027E+  where 1 = >()
3028E+where > = .apache_restart
3029
3030test/modules/http2/test_002_curl_basics.py:11: AssertionError
3031 Captured stderr setup 
-
3032WARNING: exit 1, stdout: , stderr: (98)Address already in use: AH00072: 
make_sock: could not bind to address [::]:40001
3033(98)Address already in use: AH00072: make_sock: could not bind to address 
0.0.0.0:40001
3034AH03272: no listening sockets available, shutting down
3035

Looks like the stop/start cycle instead of reload is not timing safe. If httpd 
is no longer responding, it does not mean that the ports are available again 
for the new process. Reloads are just better here, as wait loops can be 
avoided. Hmmthinking...