hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Beckett (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPASYNC-104) IlligalStateException when using the same client for mutiple requests.
Date Thu, 29 Jun 2017 15:48:00 GMT

    [ https://issues.apache.org/jira/browse/HTTPASYNC-104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16068502#comment-16068502
] 

James Beckett commented on HTTPASYNC-104:
-----------------------------------------

I've seen this very recently *on Linux* with HttpAsyncClient 4.1, and it _appears_ to be due
to an hours-earlier OOM error (heap exhaustion) unrelated to HttpComponents; several other
components failed relatively gracefully, where HttpAsyncClient went into this sticky failure
state. To be fair, that might be the most graceful thing it can do, but perhaps the documentation
could reflect a way of detecting the state and recovering, if it can't be made to recover
automatically. Would the {{isRunning()}} and {{start()}} methods be appropriate for this (on
CloseableHttpAsyncClient)?

Additionally, should the case be reported via the {{FutureCallback<>}}'s {{failed(Exception
ex)}} instead of being thrown by {{execute()}}, which might allow for less intrusive handling?

(In my case, the AsyncClient is being used via a third party class ([Elasticsearch RESTClient|https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html])
which would likely require them to make any such changes)

{code}
2017-06-23 20:41:35.765 ERROR 20131 ... OOM somewhere between here and
2017-06-23 21:35:58.412 ERROR 20131 ... here

2017-06-24 00:59:39.016 ERROR 20131 --- [-8080-exec-2877] (...) due to exception [Request
cannot be executed; I/O reactor status: STOPPED]
java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED
        at org.apache.http.util.Asserts.check(Asserts.java:46) ~[httpcore-4.4.6.jar:4.4.6]
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90)
~[httpasyncclient-4.1.jar:4.1]
        at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123)
~[httpasyncclient-4.1.jar:4.1]
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:67)
~[httpasyncclient-4.1.jar:4.1]
        at org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:300) ~[rest-5.2.0.jar:5.2.0]
        at org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:290) ~[rest-5.2.0.jar:5.2.0]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:211) ~[rest-5.2.0.jar:5.2.0]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:184) ~[rest-5.2.0.jar:5.2.0]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:163) ~[rest-5.2.0.jar:5.2.0]
        at (...).getConfig(...:222) ~[...]
{code}

> IlligalStateException when using the same client for mutiple requests.
> ----------------------------------------------------------------------
>
>                 Key: HTTPASYNC-104
>                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-104
>             Project: HttpComponents HttpAsyncClient
>          Issue Type: Bug
>    Affects Versions: 4.1.1
>         Environment: JDK 1.6
>            Reporter: maria deepak marneni
>         Attachments: eclipseOutput-1, eclipseOutput.txt, HttpAsyncResponseHandler.java,
HttpRequestPublisherTester.java
>
>
> In a multi thread environment where all requests use the same client. CloseableHttpAsyncClient
throws illegalStateException when execute method is called.
> Exception in thread "Thread-91" java.lang.IllegalStateException: Request cannot be executed;
I/O reactor status: STOPPED
> 	at org.apache.http.util.Asserts.check(Asserts.java:46)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90)
> 	at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:74)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:107)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:91)
> 	at domain.hardware.http.HttpRequestPublisher1.execute(HttpRequestPublisherTester.java:282)
> 	at domain.hardware.http.HttpHandler1.makeAsyncHttpGetRequest(HttpRequestPublisherTester.java:179)
> 	at domain.hardware.http.HttpRequestPublisherTester.run(HttpRequestPublisherTester.java:48)
> 	at java.lang.Thread.run(Thread.java:662)
> Exception in thread "Thread-46" java.lang.IllegalStateException: Request cannot be executed;
I/O reactor status: STOPPED
> 	at org.apache.http.util.Asserts.check(Asserts.java:46)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90)
> 	at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:74)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:107)
> 	at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:91)
> 	at domain.hardware.http.HttpRequestPublisher1.execute(HttpRequestPublisherTester.java:282)
> 	at domain.hardware.http.HttpHandler1.makeAsyncHttpGetRequest(HttpRequestPublisherTester.java:179)
> 	at domain.hardware.http.HttpRequestPublisherTester.run(HttpRequestPublisherTester.java:48)
> 	at java.lang.Thread.run(Thread.java:662)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message