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

Jaakko Laine commented on CASSANDRA-634:
----------------------------------------

Oops, sorry. I need a bigger font :-(

(but still "volatile" is not needed there :-)

OK, could it be like this: There are nodes A and B in the cluster, with 
replication factor 2. Node B goes down and node C is introduced as a new node 
after this. Now A knows there are A, B and C in the cluster, but C only knows 
about A. Suppose at this time client sends a write request to A, which falls 
into A's range (and replica to B's range). B is offline, so instead a hinted 
write will go to C. Problem is, C will try to deliver this hint later to B, but 
its Gossiper has never heard of B, so endpointstate will be null.

If this is the cause, then a simple fix

if (epState == null)
    return false;

before line 146 should do the trick.


> Hinted Handoff Exception
> ------------------------
>
>                 Key: CASSANDRA-634
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-634
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.5
>            Reporter: Chris Goffinet
>             Fix For: 0.5
>
>
> Updated to the latest codebase from cassandra-0.5 branch. All nodes booted up 
> fine and then I start noticing this error:
> ERROR [HINTED-HANDOFF-POOL:1] 2009-12-14 22:05:34,191 CassandraDaemon.java 
> (line 71) Fatal exception in thread Thread[HINTED-HANDOFF-POOL:1,5,main]
> java.lang.RuntimeException: java.lang.NullPointerException
>         at 
> org.apache.cassandra.db.HintedHandOffManager$1.run(HintedHandOffManager.java:253)
>         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)
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.cassandra.gms.FailureDetector.isAlive(FailureDetector.java:146)
>         at 
> org.apache.cassandra.db.HintedHandOffManager.sendMessage(HintedHandOffManager.java:106)
>         at 
> org.apache.cassandra.db.HintedHandOffManager.deliverAllHints(HintedHandOffManager.java:177)
>         at 
> org.apache.cassandra.db.HintedHandOffManager.access$000(HintedHandOffManager.java:75)
>         at 
> org.apache.cassandra.db.HintedHandOffManager$1.run(HintedHandOffManager.java:249)
>         ... 3 more

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

Reply via email to