Prateek Agarwal created CASSANDRA-12560:
-------------------------------------------
Summary: Cassandra Restart issues while restoring to a new cluster
Key: CASSANDRA-12560
URL: https://issues.apache.org/jira/browse/CASSANDRA-12560
Project: Cassandra
Issue Type: Bug
Components: Configuration
Environment: distro: Ubuntu 14.04 LTS
Reporter: Prateek Agarwal
I am restoring to a fresh new Cassandra 2.2.5 cluster consisting of 3 nodes.
Initial cluster health of the NEW cluster:
{code}
-- Address Load Tokens Owns Host ID
Rack
UN 10.40.1.1 259.31 KB 256 ?
d2b29b08-9eac-4733-9798-019275d66cfc uswest1adevc
UN 10.40.1.2 230.12 KB 256 ?
5484ab11-32b1-4d01-a5fe-c996a63108f1 uswest1adevc
UN 10.40.1.3 248.47 KB 256 ?
bad95fe2-70c5-4a2f-b517-d7fd7a32bc45 uswest1cdevc
{code}
As part of the [restore instructions in Datastax 2.2
docs|http://docs.datastax.com/en/cassandra/2.2/cassandra/operations/opsSnapshotRestoreNewCluster.html],
i do the following on the new cluster:
1) cassandra stop on all of the three nodes one by one.
2) Edit cassandra.yaml for all of the three nodes with the backup'ed token ring
information. [Step 2 from docs]
3) Remove the contents from /var/lib/cassandra/data/system/* [Step 4 from docs]
4) cassandra start on nodes 10.40.1.1, 10.40.1.2, 10.40.1.3 respectively.
Result: 10.40.1.1 restarts back successfully:
{code}
-- Address Load Tokens Owns Host ID
Rack
UN 10.40.1.1 259.31 KB 256 ?
2d23add3-9eac-4733-9798-019275d125d3 uswest1adevc
{code}
But the second and the third nodes fail to restart stating:
{code}
java.lang.RuntimeException: A node with address 10.40.1.2 already exists,
cancelling join. Use cassandra.replace_address if you want to replace this node.
at
org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:546)
~[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:766)
~[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.StorageService.initServer(StorageService.java:693)
~[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.StorageService.initServer(StorageService.java:585)
~[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300)
[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:516)
[apache-cassandra-2.2.5.jar:2.2.5]
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:625)
[apache-cassandra-2.2.5.jar:2.2.5]
INFO [StorageServiceShutdownHook] 2016-08-09 18:13:21,980 Gossiper.java:1449 -
Announcing shutdown
{code}
{code}
java.lang.RuntimeException: A node with address 10.40.1.3 already exists,
cancelling join. Use cassandra.replace_address if you want to replace this node.
...
{code}
Eventual cluster health:
{code}
-- Address Load Tokens Owns Host ID
Rack
UN 10.40.1.1 259.31 KB 256 ?
2d23add3-9eac-4733-9798-019275d125d3 uswest1adevc
DN 10.40.1.2 230.12 KB 256 ?
6w2321ad-32b1-4d01-a5fe-c996a63108f1 uswest1adevc
DN 10.40.1.3 248.47 KB 256 ?
9et4944d-70c5-4a2f-b517-d7fd7a32bc45 uswest1cdevc
{code}
I understand that the HostID of a node might change after system dirs are
removed.
I think the restore docs are incomplete and need to mention the 'replace IP'
part as well OR am i missing something in my steps?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)