Chris Nauroth created ZOOKEEPER-1702:
----------------------------------------

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


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