[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Will Franco updated HTTPCLIENT-814:
-----------------------------------

    Description: 
During our Load Testing we encountered that the 
MultiThreadedHttpConnectionManager deadlocks when reusing socket connections.   
These socket connections remain in the pool in a CLOSE_WAIT state, and the pool 
is unable to reuse them or create new ones because the maximum number of 
connection has already been reached, thus deadlocking.

Let me explain briefly how this library is being used and the temporary work 
around that we are using.  However, the correct solution would be to use the 
connection pool.

Usage:
1) The HttPClient is being used to handle connections to another server from 
our Web Application.  So far, for every request our Web App processes we have 
to make at least one request to another server using the HttpClient.
2) Our load tester, loads our web app with thousands of requests within the 
first 30 seconds, and maintains such high volume of requests for at least 24 
hours

Work Around:
The current work around we implemented is to have different HttpClient 
instances per request, and we shutdown the Connection Manager once we complete 
the transaction with the other server.

The next work around we will be trying is to call the closeIdleConnections, 
this solution will remove the connections that can potentially deadlock the 
connection manager allowing it to allocate new ones.

Please email me to [email protected] if you need any further information 
regarding this issue.


  was:
During our Load Testing we encountered that the 
MultiThreadedHttpConnectionManager deadlocks when reusing socket connections.   
These socket connections remain in the pool in a CLOSE_WAIT state, and the pool 
is unable to reuse them or create new ones because the maximum number of 
connection has already been reached, thus deadlocking.

Let me explain briefly how this library is being used and the temporary work 
around that we are using.  However, the correct solution would be to use the 
connection pool.

Usage:
1) The HttPClient is being used to handle connections to another server from 
our Web Application.  So far, for every request our Web Apps processes we have 
to make at least one request to another server using the HttpClient.
2) Our load tester, loads our web app with thousands of requests within the 
first 30 seconds, and maintains such high volume of requests for at least 24 
hours

Work Around:
The current work around we implemented is to have different HttpClient 
instances per request, and we shutdown the Connection Manager once we complete 
the transaction with the other server.

The next work around we will be trying is to call the closeIdleConnections, 
this solution will remove the connections that can potentially deadlock the 
connection manager allowing it to allocate new ones.

Please email me to [email protected] if you need any further information 
regarding this issue.



> MultiThreadedHttpConnectionManager deadlocks when reusing socket connections
> ----------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-814
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-814
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 3.1 Final
>         Environment: Tomcat 6.18 running on a Windows 2003 server
>            Reporter: Will Franco
>             Fix For: Future
>
>
> During our Load Testing we encountered that the 
> MultiThreadedHttpConnectionManager deadlocks when reusing socket connections. 
>   These socket connections remain in the pool in a CLOSE_WAIT state, and the 
> pool is unable to reuse them or create new ones because the maximum number of 
> connection has already been reached, thus deadlocking.
> Let me explain briefly how this library is being used and the temporary work 
> around that we are using.  However, the correct solution would be to use the 
> connection pool.
> Usage:
> 1) The HttPClient is being used to handle connections to another server from 
> our Web Application.  So far, for every request our Web App processes we have 
> to make at least one request to another server using the HttpClient.
> 2) Our load tester, loads our web app with thousands of requests within the 
> first 30 seconds, and maintains such high volume of requests for at least 24 
> hours
> Work Around:
> The current work around we implemented is to have different HttpClient 
> instances per request, and we shutdown the Connection Manager once we 
> complete the transaction with the other server.
> The next work around we will be trying is to call the closeIdleConnections, 
> this solution will remove the connections that can potentially deadlock the 
> connection manager allowing it to allocate new ones.
> Please email me to [email protected] if you need any further information 
> regarding this issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to