You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Oleg Anastasyev (JIRA)" <ji...@apache.org> on 2014/10/18 10:23:33 UTC

[jira] [Created] (CASSANDRA-8138) replace_address cannot find node to be replaced node after seed node restart

Oleg Anastasyev created CASSANDRA-8138:
------------------------------------------

             Summary: replace_address cannot find node to be replaced node after seed node restart
                 Key: CASSANDRA-8138
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8138
             Project: Cassandra
          Issue Type: Bug
            Reporter: Oleg Anastasyev
         Attachments: ReplaceAfterSeedRestart.txt

If a node failed and a cluster (or one of seeds) was restarted, replace_address fails with
{code}
Caused by: java.lang.RuntimeException: Cannot replace_address /172.19.56.97 because it doesn't exist in gossip
jvm 1    | 	at org.apache.cassandra.service.StorageService.prepareReplacementInfo(StorageService.java:472)
jvm 1    | 	at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:724)
jvm 1    | 	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:686)
jvm 1    | 	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:562)
{code}

Although neccessary information is saved in system tables on seed nodes, it is not loaded to gossip on seed node, so a replacement node cannot get this info.

Attached patch loads all information from system tables to gossip with generation 0 and fixes some bugs around this info on shadow gossip round.



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