Assaf Zvigoren created HTTPCLIENT-2230:
------------------------------------------
Summary: IOReactorShutdownException: I/O reactor has been shut
down, using apache httpclient5
Key: HTTPCLIENT-2230
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2230
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient (async)
Affects Versions: 5.0
Reporter: Assaf Zvigoren
Fix For: 5.0
we recently upgraded our httpclient version from 4.x to 5.0.3.
The main reason for the upgrade is to get rid of the
{code:java}
java.lang.IllegalStateException: Request cannot be executed; I/O reactor
status: STOPPED{code}
exception that accures on version 4.x.
After the upgrade, for some unknown reason we are experiencing this error now:
{code:java}
22:35:04,160 (pool-9-thread-1] ERROR http.async.HttpAsyncSender - Unable to
send request, cause-I/O reactor has been shut down
org.apache.ha.cores.reactor. IOReactorShutdownException: I/O reactor has been
shut down at
org.apache.ho.cores.reactor.AbstractIOReactorBase.connect(AbstractIOReactorBase.java:50)-thespoores-5.0.2.341/15.0.21
at
org.apache.ha.clients.http.impl.nio.Maltihome105essionRequesterfi.executellext
(Multihome10Sessionequester.java:105) -[httpolients-5.0.3.3art/25.0.31 37021 at
org.apache.he.clients.http.impl.nic.MultihomeI0SessionRequester$1.run
(Multihome105essionRequester.java:153) -(httpclients-5.0.3.jar/15.0.3)
at org.apache.hc.clients.http.impl.nio.Multihome10SessionRequester.connect
(Multihome 10dessionequester-java:157)-[httpclient5-5.0.3.Jaz1/15.0.31 at
org.apache.he.clients.http.impl.nio.DefaultAsyncClientConnectionOperator.connect
(DefaultAsyncClientConnectionOperator.java:30) -[httpclients-5.0.3.jar!/15.0.3)
at
org.apache.ho.clients.http.impl.nio.PoolingAsyncClientConnectionManager.connect
(FoolingAsyncClientConnectionManager.java:369) -[httpclients-5.0.3.jar!/15.0.3)
at
org.apache.he.clients.http.impl.wayng.InternalfetpAsyncExecRuntime.connectEndpoint
(InternalttpAsynckxeckuntime.JAVA:210)-[httpclients-5.0.3-3art/15.0.31 at
org.apache.ho.clients.http.impl.async.AsyncConnectExec.proceedTolfextop
(AsyncConnectExec.java:195) -httpeltent5-5.0.3.jar/5.0.31
at org.apache.ba.clients.http.impl.async.AsyncConnectExec.access2000
(AsyncConnectExec.java:79)-[httpclients-5.0.3.jar/15.0.3) at
org.apache.ho.clients.http.impl-axyng.AsyncConnectExec.completed
(AsyncConnectExec.java:146) -Thespelients-5.0.3.jar!/15.0.3)
at org.apache.bo.clients.http-impl-async.AsyncConnectExecli.completed
(AsyncConnectExec.java:135) -(httpelients-5.0.3.jar!/15.0.3)
at
org.apache.hc.clients.http.impl.axyng.InternalttpAsyncExecRuntimesi.completed
(InternalNetpayncExecRuntime.java:114) -[httpclients-3.0.3.3art/15.0.3) at
org.apache.bo.clients.http.impl.async.InternalfetpAryncExecRuntime1.completed
[InternalttpAsyncExecRuntime.java:105) -(httpaliest5-5.0.3.jar!/15.0.31
at org.apache.bc.cores.concurrent.Basicfuture.completed (Basicfuture.java:123)
(httpoores-5.0.2.jar!/15.0.21 at
org.apache.hc.cores.concurrent.ComplexFuture.completed (Complexfuture.179)
(httpceres-5.0.2.jart/:5.0.21
at peg.apache.he.clients.http.impl.nio.PoolingAsyncClientConnectionManager$1.
leaseCompleted (PoolingAsyncClientConnectionManager.java:240)
-[httpclients-5.0.3.3art/15.0.31
at
org.apache.ho.clients.http.impl.nio.PoolingAsyncClientConnectionManager$1.completed/FoolingAayneClientConnectionManager.JATA1275)-[httpclients-3.0.3.3az1/15.0.31
at
org.apache.ho.clients.http.impl.nio.PoolingAsyncClientConnectionManager$1.completed(PoolingAsyncClientConnectionManager.java:224)
-[httpclients-8.0.3.jar!/15.0.31
at org.apache.bs.cores.concurrent.Basicfuture.completed(BasicFuture.java:123)
-[httpeores-5.0.2.3art/15.0.23
at org.apache.hc.cores.pool.strictConnPool.fireCallbacks
(StrictConnPool.java:383) -(httpcore5-5.0.2.jar!/15.0.23 at
org.apache.hc-cores.pool.strictcoonPool.Inase (Strict
ConnPool.java:199)-[httpcores-5.0.2.jar!/15.0.21
TRAR at
org.apache.bo.clients.http.impl.nio.PoolingAsyncClientConnectionManager.lease
(Foolinghayn ClientConnectionManager.java:225) (httpclients-5.0.3.3421/15.0.3)
at
org.apache.ho.clients.http.impl.anng.InternallttpyncExecRuntime.squireEndpoint
(Internal:twyncExecuntime.java:100)-[httpclients-3.0.1.jart/25.0.31 at
org.apache.he.clients.http.impl.async-AsyncConnectExec.execute(AsyncConnectExec.java:134)-[httpclients-5.0.2.jar/15.0.
{code}
We have no idea why this error accures or what is causing it.
The only major diffference between our version was that in the previus version
with httpclient 4.x, we consumed the response:
httpclient 4.x code:
{code:java}
@override
public void completed(HttpResponse response) {
// some code ...
EntityUtils.consume(response.getEntity());
}{code}
but now we use `SimpleHttpResponse` instead of `HttpResponse` and `getEntity()`
is not a function of `SimpleHttpResponse`, so we removed this code.
So my question is, why the error above hppends? can it be related to the fact
that we do not consume the response? and if so - why is it related? when do you
need to use `consume()`?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]