[
https://issues.apache.org/jira/browse/BOOKKEEPER-620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13690507#comment-13690507
]
Ivan Kelly commented on BOOKKEEPER-620:
---------------------------------------
{quote}that's not true. new requests would be failed directly since the channel
is closed, writing a request to a closed request would error out the request
directly. error outing a request would trigger replacing a new bookie. that is
not a big deal.{quote}
I this, is true, I hadn't thought of that.
{quote}
but if you set the channel to DISCONNECTED first, you would error out outgoing
requests. that is my concern.
{quote}
Do you mean requests which were made after state was set to DISCONNECTED but
before I error out the keys? This cannot happen, as I only error out the keys
which are in the completions sets when set the state to DISCONNECTED. Anything
added afterwards, once the synchronize block is exited, is fine. This also
relates to the comment. Since I'm selecting the keys in the synchronization
block before erroring them out outside the block, it's not possible to do it
using a foreach style loop, which is what the comment is warning against.
> PerChannelBookieClient race during channel disconnect
> -----------------------------------------------------
>
> Key: BOOKKEEPER-620
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-620
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-client
> Reporter: Sijie Guo
> Assignee: Ivan Kelly
> Fix For: 4.2.2, 4.3.0
>
> Attachments:
> 0001-BOOKKEEPER-620-PerChannelBookieClient-race-during-ch.patch,
> 0001-BOOKKEEPER-620-PerChannelBookieClient-race-during-ch.patch,
> 0001-BOOKKEEPER-620-PerChannelBookieClient-race-during-ch.patch,
> 0002-BOOKKEEPER-620-PerChannelBookieClient-race-during-ch.patch,
> BOOKKEEPER-620.diff
>
>
> channel & state are not synchronized in PerChannelBookieClient#closeInternal.
> so it might cause state is set to CONNECTED but the netty channel is closed
> by mistake in closeInternal.
--
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