cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jaakko Laine (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-572) handle old gossip properly
Date Wed, 02 Dec 2009 08:28:20 GMT


Jaakko Laine commented on CASSANDRA-572:

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

View raw message