[ 
https://issues.apache.org/jira/browse/CASSANDRA-5127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13547052#comment-13547052
 ] 

Sylvain Lebresne commented on CASSANDRA-5127:
---------------------------------------------

Agreed on the analysis, but I'd rather hide this directly in getTokenFor (i.e. 
replace the '{{if vnodes then getTokensFor else 
TokenFactory.fromString(pieces[1])}}' by '{{getTokenFor(endpoing, pieces[1])}}' 
and handle the backward compatibility inside getTokenFor.

In particular, and though that's a nit, I'm not of fan of have a usesVnodes 
method because if I'm not mistaken any upgraded would have this method return 
true even if only one token is used, right? If so, I'm afraid the method would 
be misleading. 
                
> unsafeAssassinateEndpoint throws NullPointerException and fails to remove 
> node from gossip
> ------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5127
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5127
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>         Environment: Ubuntu 12.04
>            Reporter: Michael Kjellman
>            Assignee: Brandon Williams
>             Fix For: 1.2.1
>
>         Attachments: 5127.txt
>
>
> unsafeAssassinateEndpoint() throws NullPointerException and the node still 
> seems to be in gossip. 
> gossip info for node in question:
> {code}
> /10.8.30.15
>   HOST_ID:d84a5632-d6d5-4b06-8e1b-ae39ab185ca1
>   RPC_ADDRESS:0.0.0.0
>   RACK:RAC1
>   DC:DC1
>   REMOVAL_COORDINATOR:REMOVER,b63fe173-5d13-4905-a59f-a78790f4f980
>   RELEASE_VERSION:1.2.0
>   NET_VERSION:6
>   LOAD:2.64185473948E11
>   STATUS:removed,d84a5632-d6d5-4b06-8e1b-ae39ab185ca1,1357874470406
>   SCHEMA:5cd8420d-ce3c-3625-8293-67558a24816b
> {code}
> {code}
> ERROR 19:26:20,078 Exception in thread Thread[GossipStage:1,5,main]
> java.lang.NullPointerException
>       at 
> org.apache.cassandra.service.StorageService.getApplicationStateValue(StorageService.java:1192)
>       at 
> org.apache.cassandra.service.StorageService.getTokensFor(StorageService.java:1200)
>       at 
> org.apache.cassandra.service.StorageService.handleStateLeft(StorageService.java:1452)
>       at 
> org.apache.cassandra.service.StorageService.onChange(StorageService.java:1163)
>       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:856)
>       at 
> org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:57)
>       at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>       at java.lang.Thread.run(Thread.java:722)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to