Bug 1200283 - NIO2: Creating concurrent requests with keep-alive header to HTTPS results to timeout of second requests from the same client
Summary: NIO2: Creating concurrent requests with keep-alive header to HTTPS results to...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Web
Version: 6.4.0
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: ---
Assignee: Rémy Maucherat
QA Contact: Radim Hatlapatka
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-03-10 08:22 UTC by Radim Hatlapatka
Modified: 2015-03-30 13:28 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-03-30 13:28:16 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Web app with static content (1.18 KB, application/zip)
2015-03-10 08:22 UTC, Radim Hatlapatka
no flags Details
server key (2.19 KB, application/octet-stream)
2015-03-10 08:25 UTC, Radim Hatlapatka
no flags Details
Server certificate (749 bytes, text/x-vhdl)
2015-03-10 08:25 UTC, Radim Hatlapatka
no flags Details
Server config file (16.76 KB, application/xml)
2015-03-10 08:26 UTC, Radim Hatlapatka
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1200276 0 unspecified CLOSED NIO2: Creating concurrent requests (non keep alive) to HTTPS results in Exceptions shown in debug log 2021-02-22 00:41:40 UTC

Internal Links: 1200276

Description Radim Hatlapatka 2015-03-10 08:22:08 UTC
Created attachment 999764 [details]
Web app with static content

Description of problem:
When using keep-alive connection to https endpoint using NIO2 connector, according to access log there is received only one request per client, the other requests are not processed resulting in ApacheBench client failing with "apr_pollset_poll: The
timeout specified has expired (70007)"

Version-Release number of selected component (if applicable): EAP 6.4.0.ER3


How reproducible: always


Steps to Reproduce:
1. Unzip EAP distro
2. Deploy attached test.war
3. Load certificate and keystore to $JBOSS_HOME/standalone
4. Configure https and set protocol to NIO2 ([1] or see attached config)
5. Enable access logging
6. Do concurrent requests with enabled keep-alive via ApacheBench (ab -k -n 3 -c 2 -Z
    DHE-RSA-AES256-SHA -v 3  https://127.0.0.1:8443/test/f256) - two concurrent clients sending in total 3 requests

Actual results:
 ApacheBench client fails with "apr_pollset_poll: The timeout specified has expired (70007)" and in access log there are shown only two processed requests as there are two concurrent clients, the third request is not there.


Expected results:
All requests are correctly processed and logged in access-log


Additional info:
No message is shown in logs explaining what happened. With JIO connector it works as expected.

[1]
<connector name="https" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" socket-binding="https" enabled="true">
                 <ssl name="http-perf" key-alias="jboss" password="jbossas" certificate-key-file="${jboss.server.base.dir}/server.keystore" cipher-suite="ALL" protocol="TLSv1" verify-client="none" certificate-file="${jboss.server.base.dir}/server.crt"/>
</connector>

Comment 1 Radim Hatlapatka 2015-03-10 08:25:27 UTC
Created attachment 999769 [details]
server key

Comment 2 Radim Hatlapatka 2015-03-10 08:25:44 UTC
Created attachment 999770 [details]
Server certificate

Comment 3 Radim Hatlapatka 2015-03-10 08:26:30 UTC
Created attachment 999771 [details]
Server config file


Note You need to log in before you can comment on or make changes to this bug.