httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 55952] New: ab: SSL keep-alive fails with apr_pollset_poll: The timeout specified has expired (70007)
Date Sun, 05 Jan 2014 02:03:07 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=55952

            Bug ID: 55952
           Summary: ab: SSL keep-alive fails with apr_pollset_poll: The
                    timeout specified has expired (70007)
           Product: Apache httpd-2
           Version: 2.5-HEAD
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: support
          Assignee: bugs@httpd.apache.org
          Reporter: kevin@kevinlocke.name

Created attachment 31169
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=31169&action=edit
Example Node.js server which can be used to demonstrate the issue

Running ab (from SVN r1555436) against a node.js HTTPS server running on
localhost using keep-alive results in the following behavior:

$ ./ab -k -n 1 https://127.0.0.1:3443/test.txt
This is ApacheBench, Version 2.3 <$Revision: 1543020 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...apr_pollset_poll: The timeout specified
has expired (70007)

After some investigation, I believe the issue is that for large responses
openssl may buffer some data and in the case that the server does not close the
connection after sending the data (due to keep-alive) apr_pollset_poll has
nothing to read and times out.  To test this hypothesis, I printed the value
returned by SSL_pending before apr_pollset_poll which resulted in the following
output:

$ ./ab -k -n 1 https://127.0.0.1:3443/test.txt
This is ApacheBench, Version 2.3 <$Revision: 1543020 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...SSL_pending: 0
apr_pollset_poll complete
SSL_pending: 0
apr_pollset_poll complete
SSL_pending: 0
apr_pollset_poll complete
SSL_pending: 0
apr_pollset_poll complete
SSL_pending: 128
apr_pollset_poll: The timeout specified has expired (70007)

Which seems to support that hypothesis.  For completeness, I'll attach the
node.js server that I used for testing as well as the patch with the additional
debug information.

This issue may be related to Bug 22686, although that bug does not appear to be
specific to SSL connections with keep-alive.

Cheers,
Kevin

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message