On 08 Feb 2022, at 19:01, Yann Ylavic <ylavic....@gmail.com> wrote:

>> The most concurrent requests I can get out of MacOS appears to be roughly 
>> 2000 concurrent requests before “connection reset by peer” kills the test.
>> 
>> One small detail I have uncovered is that a small percentage of requests 
>> fail, caused by httpd gracefully shutting the connection down before 
>> returning a response. Stopping ab in a debugger confirms that openssl 
>> returns SSL_ERROR_ZERO_RETURN on read, which is what openssl does when the 
>> other side gracefully triggers close notify.
>> 
>> Is this something anyone has seen before while I go digging?
> 
> I tried with ab too and indeed there was some (dead-)locking issue at
> some point, could you please retry with the latest pushes I just made
> to the PR?

I tried with the latest patch, then I tried with no patch (vanilla trunk) and 
got the same results.

Working backwards looking for graceful attempts to shut down the SSL 
connection, I found this:

::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [info] [pid 8747] 
mod_ssl.c(681): [client ::1:56237] AH01964: Connection to child 29 established 
(server localhost:443)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_kernel.c(2402): [client ::1:56237] AH02043: SSL virtual host for 
servername localhost found
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_kernel.c(2262): [client ::1:56237] AH02041: Protocol: TLSv1.2, 
Cipher: ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_kernel.c(415): [client ::1:56237] AH02034: Initial (No.1) HTTPS 
request received for child 29 (server localhost:443)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
mod_authz_core.c(843): [client ::1:56237] AH01628: authorization result: 
granted (no directives)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_kernel.c(415): [client ::1:56237] AH02034: Subsequent (No.2) HTTPS 
request received for child 27 (server localhost:443)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
mod_authz_core.c(843): [client ::1:56237] AH01628: authorization result: 
granted (no directives)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_kernel.c(415): [client ::1:56237] AH02034: Subsequent (No.3) HTTPS 
request received for child 37 (server localhost:443)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
mod_authz_core.c(843): [client ::1:56237] AH01628: authorization result: 
granted (no directives)
::1:56237 ::1:56237 [Wed Feb 09 09:52:21 2022] [debug] [pid 8747] 
ssl_engine_io.c(1184): [client ::1:56237] AH02001: Connection closed to child 
29 with standard shutdown (server localhost:443)

It seems reasonably normal, except what looks like is happening is when 
"Connection closed to child 29 with standard shutdown” is run, this seems to 
happen before a response is sent to the client.

ab then goes “that’s weird, I was trying to read a response, but got a 
connection closed instead”, and marks that request as failed.

This is limited to keepalive requests, and happens after a number of keepalive 
requests have been correctly handled.

Regards,
Graham
—

Reply via email to