[ https://issues.apache.org/jira/browse/HTTPCORE-755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Kalnichevski resolved HTTPCORE-755. ---------------------------------------- Resolution: Won't Fix HttpCore NIO 4.x is now officially EOL. Oleg > Connection gets closed prematurely before Decoder gets completed > ---------------------------------------------------------------- > > Key: HTTPCORE-755 > URL: https://issues.apache.org/jira/browse/HTTPCORE-755 > Project: HttpComponents HttpCore > Issue Type: Bug > Components: HttpCore NIO > Affects Versions: 4.4.16 > Reporter: Arunan Sugunakumar > Priority: Major > Attachments: Jmeter_script_1.jmx, NHttpReverseProxy.zip, > chunk-backend.zip > > > Hi, > In httpcore-nio 4.4.16, sometimes the closed event (in > NHttpClientEventHandler) gets triggered before the ContentDecoder gets > completed. This is observed when the backend sends Chunk decoded messages and > immediately closes the connection. Also to reproduce the issue, we had to do > a load test with 20 threads and host the server and client on two different > virtual machines. > When we added debug logs, we found that the SSLIOsession goes into CLOSING > state[1] while there are remaining data available in the inPlain buffer. As a > result, the closeOutbound is called on the SSLEngine[2]. This sometimes makes > the HandshakeStatus into NEED_UNWRAP which makes the session go into CLOSED > state[3]. As a result, the session gets closed before consuming the data in > the inPlain buffer. > I reproduced this scenario with the NHttpReverseProxy sample with the > attached backend and invoked the ReverseProxy with a Jmeter script. I placed > the backend jar in another server and the Proxy sample in another and invoked > the Jmeter client from the local machine. > > The issue does not occur in httpcore-nio 4.4.9 but only from 4.4.10. This is > occurring because we are making the session go into CLOSING state for > endOfStream with this commit[4]. > [1] - > [https://github.com/apache/httpcomponents-core/blob/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java#L387] > [2] - > [https://github.com/apache/httpcomponents-core/blob/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java#L390] > [3] - > [https://github.com/apache/httpcomponents-core/blob/4.4.x/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java#L401] > [4] - > [https://github.com/apache/httpcomponents-core/commit/08d9c3c30d57def4963d0807bce5f3023f5fcb35] > > Regards, > Arunan -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org