GitHub user jdpgrailsdev opened a pull request:

    https://github.com/apache/thrift/pull/1212

    Release managed HTTP connection back to the underlying pool

    There is a connection leak in the `THttpClient` when using the Apache 
`HttpClient` with the `PoolingClientConnectionManager`.  Without calling 
`releaseConnection` on the `HttpPost` object, the connections are never 
returned to the pool.  Under heavy load, this can lead to both failures for 
subsequent calls to be able to get a connection from the pool and connections 
being held by the underlying OS, eventually resulting in the inability to grab 
another client port for outgoing connections.  Per the Apache HttpClient 
examples/documentation:
    
    > In order to ensure correct deallocation of system resources 
    > the user MUST either fully consume the response content  or abort request 
    > execution by calling HttpGet#releaseConnection().
    
    This might have not been an issue when using the 3.x version of the 
HttpClient, but it's definitely an issue in the 4.x line.  See 
https://hc.apache.org/httpcomponents-client-4.2.x/quickstart.html for more 
details. 


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jdpgrailsdev/thrift fix-http-connection-leak

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1212.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1212
    
----
commit ca172da92e275809859f9dbfdea831c5dbade119
Author: Jonathan Pearlin <[email protected]>
Date:   2017-03-11T17:46:03Z

    Release connection back to managed pool.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to