[ 
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

Reply via email to