cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Williams (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-1934) Update token metadata for NORMAL state
Date Thu, 20 Jan 2011 20:36:44 GMT


Brandon Williams commented on CASSANDRA-1934:

currentNode (which failed decom and then restarted) does have the correct view of itself (normal)
        else if (endpoint.equals(currentNode))
            // nothing to do

Prevents the other nodes from updating the state from 'Leaving' back to 'normal'.

We almost update the state here:
        else if (Gossiper.instance.compareEndpointStartup(endpoint, currentNode) > 0)
  "Nodes %s and %s have the same token %s.  %s is the
new owner",
                                       endpoint, currentNode, token, endpoint));
            tokenMetadata_.updateNormalToken(token, endpoint);
            if (!isClientMode)
                SystemTable.updateToken(endpoint, token);
But don't because the generations will always be equal (in other words, this code only handles
a *different* node updated the state, not the same node returning)

> Update token metadata for NORMAL state
> --------------------------------------
>                 Key: CASSANDRA-1934
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.0 rc 3
>            Reporter: Nick Bailey
>            Assignee: Brandon Williams
>            Priority: Minor
>             Fix For: 0.7.1
>         Attachments: 1934.txt
>   Original Estimate: 4h
>  Remaining Estimate: 4h
> The handleStateNormal() method in doesn't update the tokenmetadata.
This means if you try to decommission a node but for some reason it fails, and then you bring
the node back up, all other nodes will see it in a 'Leaving' state. When the state jumps back
to normal they should update the token metadata to reflect that.
> This also means you won't be able to call 'removetoken' on that node, unless you restart
another node in the cluster in order to put it back in a 'normal' state.

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

View raw message