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

Hudson commented on ZOOKEEPER-1702:
-----------------------------------

Integrated in ZooKeeper-trunk #1978 (See 
[https://builds.apache.org/job/ZooKeeper-trunk/1978/])
    ZOOKEEPER-1702. ZooKeeper client may write operation packets before 
receiving successful response to connection request, can cause TCP RST (Chris 
Nauroth via phunt) (Revision 1498732)

     Result = SUCCESS
phunt : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1498732
Files : 
* /zookeeper/trunk/CHANGES.txt
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxnSocketNIO.java

                
> 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
>            Assignee: Chris Nauroth
>             Fix For: 3.5.0, 3.4.6
>
>         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