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.
---