[ 
https://issues.apache.org/jira/browse/CASSANDRA-4383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Evans reopened CASSANDRA-4383:
-----------------------------------


I'm seeing these:

{noformat}
java.lang.NullPointerException
        at org.apache.cassandra.utils.UUIDGen.decompose(UUIDGen.java:120)
        at 
org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpointInternal(HintedHandOffManager.java:304)
        at 
org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:250)
        at 
org.apache.cassandra.db.HintedHandOffManager.access$400(HintedHandOffManager.java:87)
        at 
org.apache.cassandra.db.HintedHandOffManager$4.runMayThrow(HintedHandOffManager.java:433)
        at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
        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)
{noformat}

... and some of these:

{noformat}
java.lang.NullPointerException
        at 
org.apache.cassandra.service.StorageService.getApplicationStateValue(StorageService.java:1117)
        at 
org.apache.cassandra.service.StorageService.getTokensFor(StorageService.java:1125)
        at 
org.apache.cassandra.service.StorageService.handleStateNormal(StorageService.java:1196)
        at 
org.apache.cassandra.service.StorageService.onChange(StorageService.java:1103)
        at org.apache.cassandra.gms.Gossiper.doNotifications(Gossiper.java:915)
        at org.apache.cassandra.gms.Gossiper.applyNewStates(Gossiper.java:906)
        at 
org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:868)
        at 
org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:43)
        at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:55)
        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)
{noformat}

In both cases it looks like an event is firing before HOST_ID or TOKENS 
respectively are being set.

To reproduce I use ccm to run a 3 node cluster, replication factor 2.  I load 
about 70k rows at CL = ONE, read them back at CL = ALL, and then restart all of 
the nodes.
                
> Binary encoding of vnode tokens
> -------------------------------
>
>                 Key: CASSANDRA-4383
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4383
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: Brandon Williams
>            Assignee: Brandon Williams
>             Fix For: 1.2.0 beta 1
>
>         Attachments: 
> 0001-Add-HOST_ID-and-TOKENS-app-states-binary-serialization.txt, 
> 0002-Fix-tests.txt
>
>
> Since after CASSANDRA-4317 we can know which version a remote node is using 
> (that is, whether it is vnode-aware or not) this a good opportunity to change 
> the token encoding to binary, since with a default of 256 tokens per node 
> even a fixed-length 16 byte encoding per token provides a great deal of 
> savings in gossip traffic over a text representation.

--
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