You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jaakko Laine (JIRA)" <ji...@apache.org> on 2009/11/12 14:10:39 UTC

[jira] Created: (CASSANDRA-543) a decommissioned node (ip) joining ring again

a decommissioned node (ip) joining ring again
---------------------------------------------

                 Key: CASSANDRA-543
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-543
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.5
            Reporter: Jaakko Laine
             Fix For: 0.5


Don't know the exact cause yet (will continue to test tomorrow), but seems there's something wrong with maintaining tokenMetadata under certain circumnstances:

(1) 8-node cluster all nodes have some data
(2) decommission one of them
(3) stop the decommissioned node, clear its data, restart node

When the 3rd step is repeated, I usually get the following exception on the second or third restart on other nodes in the cluster

java.lang.IllegalArgumentException: value already present: /192.168.0.108
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:116)
	at com.google.common.collect.StandardBiMap.putInBothMaps(StandardBiMap.java:106)
	at com.google.common.collect.StandardBiMap.put(StandardBiMap.java:91)
	at com.google.common.collect.HashBiMap.put(HashBiMap.java:82)
	at org.apache.cassandra.locator.TokenMetadata.update(TokenMetadata.java:91)
	at org.apache.cassandra.service.StorageService.updateForeignToken(StorageService.java:188)
	at org.apache.cassandra.service.StorageService.onChange(StorageService.java:444)
	at org.apache.cassandra.service.StorageService.onJoin(StorageService.java:536)
	at org.apache.cassandra.gms.Gossiper.handleNewJoin(Gossiper.java:558)
	at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:591)
	at org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(Gossiper.java:972)
	at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
	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:619)

The exact sequence leading to this exception might not have anything to do with decommission and/or restarts, but no time to test more today.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CASSANDRA-543) a decommissioned node (ip) joining ring again

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-543.
--------------------------------------

    Resolution: Duplicate

yeah, this is the same as the bug in CASSANDRA-541

> a decommissioned node (ip) joining ring again
> ---------------------------------------------
>
>                 Key: CASSANDRA-543
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-543
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.5
>            Reporter: Jaakko Laine
>             Fix For: 0.5
>
>
> Don't know the exact cause yet (will continue to test tomorrow), but seems there's something wrong with maintaining tokenMetadata under certain circumnstances:
> (1) 8-node cluster all nodes have some data
> (2) decommission one of them
> (3) stop the decommissioned node, clear its data, restart node
> When the 3rd step is repeated, I usually get the following exception on the second or third restart on other nodes in the cluster
> java.lang.IllegalArgumentException: value already present: /192.168.0.108
> 	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:116)
> 	at com.google.common.collect.StandardBiMap.putInBothMaps(StandardBiMap.java:106)
> 	at com.google.common.collect.StandardBiMap.put(StandardBiMap.java:91)
> 	at com.google.common.collect.HashBiMap.put(HashBiMap.java:82)
> 	at org.apache.cassandra.locator.TokenMetadata.update(TokenMetadata.java:91)
> 	at org.apache.cassandra.service.StorageService.updateForeignToken(StorageService.java:188)
> 	at org.apache.cassandra.service.StorageService.onChange(StorageService.java:444)
> 	at org.apache.cassandra.service.StorageService.onJoin(StorageService.java:536)
> 	at org.apache.cassandra.gms.Gossiper.handleNewJoin(Gossiper.java:558)
> 	at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:591)
> 	at org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(Gossiper.java:972)
> 	at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
> 	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:619)
> The exact sequence leading to this exception might not have anything to do with decommission and/or restarts, but no time to test more today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.