Pranav Arora created HTTPCORE-587:
-------------------------------------

             Summary: Connection must be created by connection manager issue
                 Key: HTTPCORE-587
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-587
             Project: HttpComponents HttpCore
          Issue Type: Bug
          Components: HttpCore, HttpCore NIO
    Affects Versions: 4.4.11
            Reporter: Pranav Arora


This is the same issue that is discussed in HTTPCORE-370 and HTTPCORE-574. I am 
facing the following exception:

 

 
{code:java}
[ERROR] [] 2019-07-29 09:33:10.639 [pool-2-thread-1] InternalHttpAsyncClient - 
I/O reactor terminated abnormally
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated 
abnormally
at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)
at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
Caused by: java.lang.IllegalStateException: Connection must be created by 
connection manager
at 
org.apache.http.impl.nio.client.InternalIODispatch.createConnection(InternalIODispatch.java:56)
at 
org.apache.http.impl.nio.client.InternalIODispatch.createConnection(InternalIODispatch.java:39)
at 
org.apache.http.impl.nio.reactor.AbstractIODispatch.connected(AbstractIODispatch.java:70)
at 
org.apache.http.impl.nio.reactor.BaseIOReactor.sessionCreated(BaseIOReactor.java:248)
at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:427)
at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:287)
at 
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
... 1 more{code}
 

This occurs randomly during production and I have not been able to reproduce it 
locally. What I instead tried was pass a custom exception handler. 

 

 
{code:java}
public class CustomExceptionHandler implements IOReactorExceptionHandler {
 @Override
 public boolean handle(IOException ex) {
  log.error("I/O Reactor IO exception", ex);
  return false;
 }

 @Override
 public boolean handle(RuntimeException ex) {
  log.error("I/O Reactor Runtime Exception", ex);
  if (ex instanceof IllegalStateException) {
   throw new CancelledKeyException();
  }
  return false;
 }
}
{code}
 

 

It helped for the above exception as it did not lead to immediate shutdown of 
I/O Reactor but now I am facing a different issue.

 

 
{code:java}
[ERROR] [] 2019-07-30 18:22:37.684 [pool-2-thread-1] InternalHttpAsyncClient - 
I/O reactor terminated abnormally
java.lang.NullPointerException: null
at 
<packageNameTruncated>.DefaultConnectingIOReactorTemp.processEvent(DefaultConnectingIOReactorTemp.java:158)
at 
<packageNameTruncated>.DefaultConnectingIOReactorTemp.processEvents(DefaultConnectingIOReactorTemp.java:136)
at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:351)
at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)
at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
at java.lang.Thread.run(Thread.java:748)
{code}
 

 

DefaultConnectingIOReactorTemp is exactly the same as 
DefaultConnectingIOReactor with the added code that was intended to fix 
HTTPCORE-370. The corresponding line in DefaultConnectingIOReactor is 167 
(final SessionRequestImpl sessionRequest = requestHandle.getSessionRequest()). 

 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to