Ivan Kelly created BOOKKEEPER-671:
-------------------------------------

             Summary: PerChannelBookieClient#channelDisconnected can error out 
other channel's requests
                 Key: BOOKKEEPER-671
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-671
             Project: Bookkeeper
          Issue Type: Bug
    Affects Versions: 4.2.1
            Reporter: Ivan Kelly
             Fix For: 4.3.0


Consider the following.

# Client calls connect() [state=CONNECTING]
# Client calls disconnect() before connect finishes [state=DISCONNECTED]
# Client calls connect() [state=CONNECTING]
# Connect completes, client writes request [state=CONNECTED]
# channelDisconnected() from previous disconnect() called

The #channelDisconnected() call will then error out the write request. This is 
due to the fact that the outstanding request map belongs to the 
PerChannelBookieClient, rather than to the channel, even though they should 
belong to the socket on which they were sent out on.

The solution would be to move the completions into the ChannelHandlerContext. 
At the same time, we can get rid of the separate read and add lists. This 
information can be in the keys. Perhaps this fix can be done as part of the 
transaction id changes.


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