You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (Jira)" <ji...@apache.org> on 2020/07/01 14:53:00 UTC
[jira] [Commented] (HTTPCORE-634) IllegalStateException: Entry []
has not been leased from this pool
[ https://issues.apache.org/jira/browse/HTTPCORE-634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17149491#comment-17149491 ]
Oleg Kalnichevski commented on HTTPCORE-634:
--------------------------------------------
[~djelinski] This one turned out to be quite nasty. It also makes me wonder how come it has gone undetected for so long.
At the moment I am quite tempted to remove the entire {{#purgePoolMap}} method as a quick and easy fix and urge the users to consider migrating to HC 5.x
Oleg
> IllegalStateException: Entry [] has not been leased from this pool
> ------------------------------------------------------------------
>
> Key: HTTPCORE-634
> URL: https://issues.apache.org/jira/browse/HTTPCORE-634
> Project: HttpComponents HttpCore
> Issue Type: Bug
> Components: HttpCore
> Affects Versions: 4.4.11
> Reporter: Daniel Jelinski
> Priority: Major
>
> We are sporadically observing the exception mentioned in summary; while searching the Internet, I found [this SO page |https://stackoverflow.com/questions/46188047/httpclient-4-5-x-multithread-request-error-has-not-been-leased-from-this-pool] providing a semi-reliable reproducer. Minified form follows:
> {code:java}
> public static void main(String[] args) {
> final PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
> cm.setDefaultMaxPerRoute(1);
> class HttpClientThead implements Runnable {
> final String reqString;
> final CloseableHttpClient httpclient1 = HttpClients.custom()
> .setConnectionManager(cm)
> .build();
> HttpClientThead(String reqString) {
> this.reqString = reqString;
> }
> public void run() {
> for (int i = 1; i <= 10; i++) {
> HttpClientContext context = HttpClientContext.create();
> try {
> HttpGet httpget = new HttpGet(reqString);
> CloseableHttpResponse response = httpclient1.execute(httpget, context);
> response.close();
> } catch (Throwable e) {
> e.printStackTrace();
> System.exit(1);
> } finally {
> cm.closeExpiredConnections();
> }
> }
> }
> }
> HttpClientThead t1 = new HttpClientThead("https://issues.apache.org/");
> Thread thread1 = new Thread(t1);
> thread1.start();
> t1.run();
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org