Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
centos-6-x86_64, jdk1.6.0_30, cassandra1.2.0
4 nodes, 2 datacenter, 2 nodes for each datacenter
-
Normal
Description
I follow the guide "Initializing a multiple node cluster" in url:
http://www.datastax.com/docs/1.2/initialize/cluster_init
the exception occurs below when start the second node:
java.lang.RuntimeException: Host ID collision between active endpoint /192.168.0.193 and /192.168.0.194 (id=4ebdbeea-2712-475b-a3e3-64b6e6b099a9)
at org.apache.cassandra.locator.TokenMetadata.updateHostId(TokenMetadata.java:227)
at org.apache.cassandra.service.StorageService.handleStateNormal(StorageService.java:1296)
at org.apache.cassandra.service.StorageService.onChange(StorageService.java:1157)
at org.apache.cassandra.service.StorageService.onJoin(StorageService.java:1895)
at org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:805)
at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:883)
at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:43)
at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
I track the source code. the function "getHostId" in class org.apache.cassandra.gms.Gossiper, diff endpoint it returns the same value,like:
/192.168.0.194 4ebdbeea-2712-475b-a3e3-64b6e6b099a9
/192.168.0.88 c375010a-c464-40c9-a7db-61de319a4cba
/192.168.3.21 4ebdbeea-2712-475b-a3e3-64b6e6b099a9
/192.168.0.193 4ebdbeea-2712-475b-a3e3-64b6e6b099a9
so, the exception occurs.
Is it a bug or is my Configuration wrong?