[ 
https://issues.apache.org/jira/browse/CASSANDRA-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784704#action_12784704
 ] 

Jaakko Laine edited comment on CASSANDRA-572 at 12/2/09 8:39 AM:
-----------------------------------------------------------------

I don't think this is related to move coordination, but a separate issue. This 
will happen for every new node that enters the cluster (bootstrapping or not) 
after a node has already moved. Problem is, handling STATE_LEAVING and 
STATE_LEFT will cause errors for a node that is not in token metadata, and a 
node will not end up being there before STATE_NORMAL has been seen for it. 
Since states are handled in the order they were added, STATE_LEAVING and 
STATE_LEFT will be handled before BOOTSTRAPPING and NORMAL. LEAVING and LEFT in 
this case have no meaning as they refer to the old already-gone token, but 
since application state can only grow, these states will remain part of gossip 
and new nodes must handle them properly.

Edit: This can wait, as there is no point to add now. Let's check the situation 
after gossiping analysis is done

      was (Author: jaakko):
    I don't think this is related to move coordination, but a separate issue. 
This will happen for every new node that enters the cluster (bootstrapping or 
not) after a node has already moved. Problem is, handling STATE_LEAVING and 
STATE_LEFT will cause errors for a node that is not in token metadata, and a 
node will not end up being there before STATE_NORMAL has been seen for it. 
Since states are handled in the order they were added, STATE_LEAVING and 
STATE_LEFT will be handled before BOOTSTRAPPING and NORMAL. LEAVING and LEFT in 
this case have no meaning as they refer to the old already-gone token, but 
since application state can only grow, these states will remain part of gossip 
and new nodes must handle them properly.

  
> handle old gossip properly
> --------------------------
>
>                 Key: CASSANDRA-572
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-572
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.5
>            Reporter: Jaakko Laine
>             Fix For: 0.5
>
>         Attachments: 572-handle-old-gossip.patch
>
>
> (1) If a node has been moving in the ring, further bootstraps by other nodes 
> will cause errors as they are handling STATE_LEAVING gossip without having 
> such member in token metadata.
> (2) When a node bootstraps, it handles all ep states in the order they happen 
> to arrive. If the first one to arrive has moved in the past (that is, it has 
> STATE_LEAVING in its ep state), getNaturalEndpoint will throw 
> ArrayIndexOutOfBounds exception as sortedTokens.size() == 0.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to