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

Sajinie Kavindya commented on HTTPCORE-718:
-------------------------------------------

[~olegk],

So, according to the above explanation, could you please justify the below 
observations as well?
 * I have written a simple backend to send a chunked response along with the 
*Connection: keep-alive* header. Just after sending the response, it closes the 
connection.
 * I have modified the NHttpClient class to send *two* consecutive requests to 
the backend. Also, updated the pool properties as below and the connection 
timeout to 30s. Also, removed the _ioReactor.shutdown();_ method at the end.
 ** pool.setDefaultMaxPerRoute(1);
pool.setMaxTotal(1);

 * I have tried this in this latest 4.x.x branch (4.4.16-SNAPSHOT). 
[^HttpNIOTestClient_new.zip]

I can see the below two behaviors.
 # The second request fails with the ConnectionClosedException.

{code:java}
Backend server started!
server chunk size: 1412
server chunk size: 0
Closed the backend!
https://localhost:7005-> completed
https://localhost:7005->org.apache.http.ConnectionClosedException: Connection 
is closed
{code}
 # Sometimes, the second request fails with the SocketTimeoutException

{code:java}
Backend server started!
server chunk size: 1412
server chunk size: 0
Closed the backend!
https://localhost:7005-> completed
https://localhost:7005->java.net.SocketTimeoutException: 30,000 milliseconds 
timeout on connection 127.0.0.1:52583<->127.0.0.1:7005
{code}
Please{*}{{*}} _*do not*_ consider this query as I'm reporting a bug 
(regression). This is me trying to understand how the HttpCore works 
internally. Kindly explain to me if I have done anything wrong here. Highly 
appreciate your time!

Thanks,
Sajinie

> Getting org.apache.http.ConnectionClosedException after httpcore-nio version 
> upgrade
> ------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-718
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-718
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.4.15
>         Environment: Java version: 11.0.15.1
> OS: macOS Monterey (Version 12.12.1) 
>            Reporter: Sajinie Kavindya
>            Priority: Major
>         Attachments: HttpNIOTestClient-1.zip, HttpNIOTestClient.zip, 
> HttpNIOTestClient_new.zip
>
>
> We recently migrated to httpcore-nio 4.4.15 and we have been encountering 
> some issues when connecting to an HTTPS Backend that sends chunked responses. 
> The backend behaves in such a manner that when it sends the response, it 
> immediately closes the connection after completion. 
> We have attached a reproducer to this ticket and the behavior is as below.
> When httpcore-nio 4.4.15 is used, the client gets the error:
> {code:java}
> org.apache.http.ConnectionClosedException: Connection closed 
> unexpectedly{code}
> But, when httpcore-nio 4.4.5 is used, the client receives the complete 
> response, which was sent from the backend.
> We further checked on the following versions and the observations are as 
> below. 
>  * httpcore-nio 4.4.10 - receives the complete response
>  * httpcore-nio 4.4.11 - receives org.apache.http.ConnectionClosedException
> In order to replicate the issue, we did a few changes to the 
> consumeContent(final ContentDecoder decoder) method inside the 
> SimpleInputBuffer class. You may find the changes in the attached source code.
> In order to test the behavior, please run the Main class: 
> “{*}TestChunkedBackend{*}”.
> Tested environment:
>  * Java version: 11.0.15.1
>  * OS: macOS Monterey (Version 12.12.1) 
> A similar issue can be found here 
> [https://issues.apache.org/jira/browse/HTTPCORE-706|http://example.com]
> Thanks & Regards,
> Sajinie
>  



--
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

Reply via email to