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