hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1655) HttpClient 4.4.1 sends RST instead of proper FIN ACK sequence when using non-persistant connections
Date Thu, 04 Jun 2015 07:49:38 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14572325#comment-14572325

Oleg Kalnichevski commented on HTTPCLIENT-1655:

Most likely this is happening because {{HttpConnection#shutdown}} is called somewhere instead
of {{HttpConnection#close}}. Could you please run the NoKeepAliveTest with context logging
turned on and attach the log to this issue?


> HttpClient 4.4.1 sends RST instead of proper FIN ACK sequence when using non-persistant
> ---------------------------------------------------------------------------------------------------
>                 Key: HTTPCLIENT-1655
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1655
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.4.1
>            Reporter: Alan Silva
>         Attachments: KeepAliveTest.java, NoKeepAliveTest.java, POC_WITHOUT_keep_alive_WITHOUT_class.pcap,
POC_keep_alive_WITHOUT_class.pcap, old_code_mss.pcap
> I'm seeing an interesting behavior with HttpClient 4.4.1 GA (latest release as of the
writing of this issue) when trying to make http requests with no keep-alive.
> First, let me post my code for the case in which I try to request using keep-alive.
> [Java code for keepalive test with httpclient 4.4.1 GA | ^KeepAliveTest.java]
> With the code above, everything works great. All my requests are done one the same connection
and we get a nice graceful close with a couple FIN ACKs at the end. The capture is here:
> [Capture of keepalive test with httpclient 4.4.1 GA | ^POC_keep_alive_WITHOUT_class.pcap]
> However, when I try to do the same thing without using keepalive (I set "Connection:
close" in the httpclient and make sure I call close on the httpclient as well at the end of
each request), I see I the client send a reset (RST) signal to the server at the end of the
> The code for the non keepalive test is here:
> [Java code for no keepalive test with httpclient 4.4.1 GA | ^NoKeepAliveTest.java]
> And its capture is here:
> [Capture of no keepalive test with httpclient 4.4.1 GA  |^POC_WITHOUT_keep_alive_WITHOUT_class.pcap]
> I don't understand why the test with non persistent connections isn't gracefully closing
the connection as it does with the persistent use case by sending a FIN,ACK to the server.
It instead chooses to send a RST. Am I doing something wrong?
> I tried the same test for no keep-alive with our legacy code using the now deprecated
"commons-httpclient-3.1.jar" library. I see a proper connection close there.
> [Capture of no keepalive test with commons-httpclient-3.1  |^old_code_mss.pcap]
> I've attached as much info as I can think of but if the wire logs or any other info is
needed, I'd be more than happy to append it. 

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message