cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-12485) Always require replace_address to replace existing token
Date Wed, 09 Nov 2016 14:42:59 GMT

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

Paulo Motta commented on CASSANDRA-12485:
-----------------------------------------

[~cmlicata] overall the approach looks good, but it should only be done when the node is already
bootstrapped ({{!shouldBootstrap()}}), and in this case you can get the nodes tokens from
{{SystemKeyspace.getSavedTokens()}}.

Could you also add a dtest? You can try to reproduce this scenario:
{noformat}
replace a node with another node with a different IP, and after some time you restart the
original node by mistake. The original node will then take over the tokens of the replaced
node (since it has a newer gossip generation).
{noformat}

Next time set the jira ticket to "Patch Available" when you have a patch otherwise it may
never get picked up for review. 

> Always require replace_address to replace existing token
> --------------------------------------------------------
>
>                 Key: CASSANDRA-12485
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12485
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Distributed Metadata
>            Reporter: Paulo Motta
>            Priority: Minor
>              Labels: lhf
>
> CASSANDRA-10134 prevented replace an existing node unless {{\-Dcassandra.replace_address}}
or {{\-Dcassandra.allow_unsafe_replace=true}} is specified.
> We should extend this behavior to tokens, preventing a node from joining the ring if
another node with the same token already existing in the ring, unless {{\-Dcassandra.replace_address}}
or {{\-Dcassandra.allow_unsafe_replace=true}} is specified in order to avoid catastrophic
scenarios.
> One scenario where this can easily happen is if you replace a node with another node
with a different IP, and after some time you restart the original node by mistake. The original
node will then take over the tokens of the replaced node (since it has a newer gossip generation).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message