You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Rakesh R (JIRA)" <ji...@apache.org> on 2014/01/01 17:50:51 UTC

[jira] [Updated] (BOOKKEEPER-671) PerChannelBookieClient#channelDisconnected can error out other channel's requests

     [ https://issues.apache.org/jira/browse/BOOKKEEPER-671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rakesh R updated BOOKKEEPER-671:
--------------------------------

    Component/s: bookkeeper-client

> 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
>          Components: bookkeeper-client
>    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 was sent by Atlassian JIRA
(v6.1.5#6160)