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