Bug 1256607 - [GSS] [6.4.z] mod_cluster undersizes the connection pool
Summary: [GSS] [6.4.z] mod_cluster undersizes the connection pool
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: mod_cluster
Version: 6.4.0
Hardware: All
OS: All
unspecified
unspecified
Target Milestone: DR2
: EAP 6.4.9
Assignee: Jean-frederic Clere
QA Contact: Michal Karm Babacek
URL:
Whiteboard:
Depends On:
Blocks: 1256608 1337386 1338642
TreeView+ depends on / blocked
 
Reported: 2015-08-25 06:14 UTC by Masafumi Miura
Modified: 2019-09-12 08:48 UTC (History)
14 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1256608 1338642 (view as bug list)
Environment:
Last Closed: 2017-01-17 14:47:17 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker MODCLUSTER-466 0 Major Resolved mod_cluster undersizes the connection pool on httpd 2.2 2019-01-07 07:46:10 UTC
Red Hat Knowledge Base (Solution) 1586743 0 None None None 2016-05-18 01:30:34 UTC

Description Masafumi Miura 2015-08-25 06:14:32 UTC
### Description of problem:

If all threads in a httpd child worker process are saturated with long requests, then all connections in the pool are exhausted, likely leaving none available for additional pings, which then fail with errors like:

    [error] (70007)The timeout specified has expired: proxy: ajp: failed to acquire connection for ...


### Steps to Reproduce:

1. Deploy a web application on EAP 6, which just do Thread.sleep() for a while
   (for example, 10-15 seconds. just longer than lbstatus_recalc_time, 5 seconds)

    ~~~
    <%
        long ms = 15000L;
        System.out.println("going to sleep... : " + ms + " ms");
        Thread.sleep(ms);
        System.out.println("done!");
    %>
    ~~~

2. Repeat sending concurrent requests to the web app via mod_cluster by apache bench
   (just exactly same concurrent number to MaxClients setting, or more than MaxClients)

   When you set MaxClients to 30, then execute the following:

    ~~~
    ab -c 30 -n 300 http://localhost/example/sleep.jsp
    ~~~


### Actual results:

You will see the "failed to acquire connection for ..." error message when status update is executed in background.


### Expected results:

No error message.


### Additional info:

https://issues.jboss.org/browse/MODCLUSTER-466

Comment 4 Jean-frederic Clere 2015-08-31 08:40:18 UTC
I have merged the pull requests.

Comment 7 Petr Sakař 2015-09-08 13:03:39 UTC
Package: mod_cluster-native
NVR: mod_cluster-native-1.2.11-3.Final.win6
Tag: jb-ep-6-win-candidate
Status: complete
Built by: psakar
ID: 455551
logs: https://brewweb.devel.redhat.com//getfile?taskID=9809712&name=build.log
Task Info: https://brewweb.devel.redhat.com//taskinfo?taskID=9809711
Build Info: https://brewweb.devel.redhat.com//buildinfo?buildID=455551

mod_cluster-native-1.2.11-3.Final.win6 successfully tagged into jb-ep-6-win-candidate by psakar

Comment 9 Petr Sakař 2015-09-11 10:54:27 UTC
waiting for rhel natives before promotion to candidates

Comment 10 Petr Sakař 2015-09-11 10:55:59 UTC
cp stream does not ship natives, oneoff patch required

Comment 21 JBoss JIRA Server 2016-05-24 18:00:21 UTC
Radoslav Husar <rhusar@redhat.com> updated the status of jira MODCLUSTER-466 to Reopened

Comment 22 JBoss JIRA Server 2016-06-01 15:09:21 UTC
Michal Karm Babacek <mbabacek@redhat.com> updated the status of jira MODCLUSTER-466 to Resolved

Comment 23 Petr Penicka 2017-01-17 14:47:17 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.


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