You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Marcus Eriksson (JIRA)" <ji...@apache.org> on 2014/06/25 08:56:25 UTC

[jira] [Reopened] (CASSANDRA-7356) Add a more ops friendly replace_address flag

     [ https://issues.apache.org/jira/browse/CASSANDRA-7356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marcus Eriksson reopened CASSANDRA-7356:
----------------------------------------


This broke replacing a node with the 'old' syntax - we call DD.isReplacing() in a couple of places after we have successfully bootstrapped (SS.handleStateNormal() for example)

{code}
java.lang.RuntimeException: Cannot replace address with a node that is already bootstrapped
	at org.apache.cassandra.config.DatabaseDescriptor.isReplacing(DatabaseDescriptor.java:727)
	at org.apache.cassandra.service.StorageService.handleStateNormal(StorageService.java:1564)
	at org.apache.cassandra.service.StorageService.onChange(StorageService.java:1382)
	at org.apache.cassandra.gms.Gossiper.doOnChangeNotifications(Gossiper.java:1049)
	at org.apache.cassandra.gms.Gossiper.addLocalApplicationState(Gossiper.java:1272)
	at org.apache.cassandra.service.StorageService.setTokens(StorageService.java:211)
	at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:883)
	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:614)
	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:504)
	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:378)
	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496)
	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)
{code}

attaching patch which removes the check that throws if we have already bootstrapped

> Add a more ops friendly replace_address flag
> --------------------------------------------
>
>                 Key: CASSANDRA-7356
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7356
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Richard Low
>            Assignee: Brandon Williams
>             Fix For: 1.2.17, 2.0.9, 2.1 rc2
>
>         Attachments: 7356.txt, 7356_fix.patch
>
>
> Doing a host replacement with cassandra.replace_address works well, but it is operationally difficult because the flag needs clearing once the replace is successful. Most people will launch through some scripts so remembering to clear the flag is a pain. Forgetting means the node won't come up on a restart.
> We should have a flag like cassandra.replace_address_first_boot that works the same as auto_bootstrap/initial_token: it is totally ignored if the node has successfully bootstrapped but on starting from a clean disk it will work as the existing cassandra.replace_address.



--
This message was sent by Atlassian JIRA
(v6.2#6252)