Venkata Satya Teja Siram created HTTPASYNC-112:
--------------------------------------------------

             Summary: Intermittent ConnectionClosedException/Connection reset 
by peer with httpasynclient version 4.1.2
                 Key: HTTPASYNC-112
                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-112
             Project: HttpComponents HttpAsyncClient
          Issue Type: Bug
    Affects Versions: 4.1.2
            Reporter: Venkata Satya Teja Siram


Hi Team,

We have three applications A,B and C deployed on same tomcat server.There is an 
HTTP call that happens between application A to B(REST CALL) and another http 
call from B to C(REST CALL)

we were using synchronous HTTP call initially,recently we changed our code to 
Asynchronous call using  httpasynclient version 4.1.2.

We have used HttpAsyncClients forREST calls (Application A to call Application 
B) and for (Application B to call Application C)..

We have faced three different Exceptions.All the three Exceptions are 
intermittent.

 CloseableHttpAsyncClient  client = HttpAsyncClients.custom()
                        .setMaxConnPerRoute(100)
                        .setMaxConnTotal(150).build();


and for Every request we gave timeout of 
 

    final RequestConfig params = 
RequestConfig.custom().setConnectTimeout(300000) // 5min
                        
.setSocketTimeout(300000).setConnectionRequestTimeout(300000).build();


Port range config on the machines where exception came are :
net.ipv4.ip_local_port_range = 32768 61000

Please find the below stack trace:

Stack Trace1:   Connection Reset by peer

java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_60]
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) 
~[na:1.8.0_60]
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
~[na:1.8.0_60]
        at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.8.0_60]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
~[na:1.8.0_60]
        at 
org.apache.http.impl.nio.reactor.SessionInputBufferImpl.fill(SessionInputBufferImpl.java:204)
 ~[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.codecs.AbstractMessageParser.fillBuffer(AbstractMessageParser.java:136)
 ~[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:241)
 ~[httpcore-nio-4.4.5.jar:na]
        at 
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) 
[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) 
[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]


Stack Trace2:   org.apache.http.ConnectionClosedException: Connection closed


org.apache.http.ConnectionClosedException: Connection closed
        at 
org.apache.http.impl.nio.client.AbstractClientExchangeHandler.connectionAllocated(AbstractClientExchangeHandler.java:320)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.AbstractClientExchangeHandler.access$000(AbstractClientExchangeHandler.java:62)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.AbstractClientExchangeHandler$1.completed(AbstractClientExchangeHandler.java:373)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.AbstractClientExchangeHandler$1.completed(AbstractClientExchangeHandler.java:369)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119) 
[httpcore-4.4.4.jar:na]
        at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalPoolEntryCallback.completed(PoolingNHttpClientConnectionManager.java:494)
 [httpasyncclient-4.1.2.jar:4.1.2]
        at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalPoolEntryCallback.completed(PoolingNHttpClientConnectionManager.java:477)
 [httpasyncclient-4.1.2.jar:4.1.2]
        at 
org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119) 
[httpcore-4.4.4.jar:na]
        at 
org.apache.http.nio.pool.AbstractNIOConnPool.fireCallbacks(AbstractNIOConnPool.java:456)
 [httpcore-nio-4.4.5.jar:na]
        at 
org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:286)
 [httpcore-nio-4.4.5.jar:na]
        at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:266)
 [httpasyncclient-4.1.2.jar:4.1.2]
        at 
org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:363)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:125)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)
 [httpasyncclient-4.1.2.jar:na]


Stack Trace3:   org.apache.http.ConnectionClosedException: Connection closed

org.apache.http.ConnectionClosedException: Connection closed
        at 
org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:344)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261)
 [httpcore-nio-4.4.5.jar:na]
        at 
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)
 [httpasyncclient-4.1.2.jar:na]
        at 
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) 
[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) 
[httpcore-nio-4.4.5.jar:4.4.5]
        at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
 [httpcore-nio-4.4.5.jar:4.4.5]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]


Team it would be really helpful if you let us know is there any problem related 
or configuration of 

1.Http async client configuration
2.Tcp ports
3.problem with specific version of Http async library on the server.
4.Race Condition(High load on server)

And all the above exceptions are intermittently happening.
Request to update if there are any issues related to configuration.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to