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

Chris Nauroth commented on ZOOKEEPER-1702:
------------------------------------------

{quote}
-1 tests included. The patch doesn't appear to include any new or modified 
tests.
Please justify why no new tests are needed for this patch.
Also please list what manual steps were performed to verify this patch.
{quote}

See earlier comment.  I couldn't come up with a functional test that could 
repro the problem, and some of the internal classes involved can't be mocked.  
This patch does get some failing tests in Hadoop Common to pass consistently.

                
> ZooKeeper client may write operation packets before receiving successful 
> response to connection request, can cause TCP RST
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1702
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1702
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.2
>            Reporter: Chris Nauroth
>         Attachments: ZOOKEEPER-1702.1.patch
>
>
> The problem occurs when a connection attempt is pending and there are 
> multiple outbound packets in the queue for other operations.  In 
> {{ClientCnxnSocketNIO#doIO}}, it is possible to receive notification that the 
> socket is writable for the next operation packet before receiving 
> notification that the socket is readable for the connection response from the 
> server.  If the server decides that the session is expired, then it responds 
> by immediately closing the socket on its side.  If the client has written 
> packets after the server has closed its end of the socket, then the TCP stack 
> may choose to abort the connection with an RST.  When this happens, the 
> client doesn't receive an orderly shutdown, and ultimately it fails to 
> deliver a session expired event to the application.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to