Return-Path: X-Original-To: apmail-httpd-bugs-archive@www.apache.org Delivered-To: apmail-httpd-bugs-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 04057105E6 for ; Sun, 5 Jan 2014 02:03:32 +0000 (UTC) Received: (qmail 18084 invoked by uid 500); 5 Jan 2014 02:03:31 -0000 Delivered-To: apmail-httpd-bugs-archive@httpd.apache.org Received: (qmail 18018 invoked by uid 500); 5 Jan 2014 02:03:31 -0000 Mailing-List: contact bugs-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: Reply-To: "Apache HTTPD Bugs Notification List" List-Id: Delivered-To: mailing list bugs@httpd.apache.org Received: (qmail 18010 invoked by uid 99); 5 Jan 2014 02:03:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jan 2014 02:03:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,NORMAL_HTTP_TO_IP,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.115] (HELO eir.zones.apache.org) (140.211.11.115) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jan 2014 02:03:28 +0000 Received: by eir.zones.apache.org (Postfix, from userid 80) id 874371C560; Sun, 5 Jan 2014 02:03:07 +0000 (UTC) From: bugzilla@apache.org To: bugs@httpd.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 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Apache httpd-2 X-Bugzilla-Component: support X-Bugzilla-Version: 2.5-HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: kevin@kevinlocke.name X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: bugs@httpd.apache.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://issues.apache.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org 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