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

Yuki Morishita commented on CASSANDRA-11065:
--------------------------------------------

[~pauloricardomg] Checking whether the schema (ks/table) exists is something we 
need to do whenever we encounter {{Keyspace.open...}} through out the project. 
And I think what we do when we find schema is missing is vary.
I prefer fixing {{RepairVerbHandler}} only in this case.

Now, your patch throws {{KeyspaceNotDefinedException}} which is 
RuntimeException, so it can hang repair process. And for the first case, we can 
fail when accessing pair of Strings got from {{Pair<String, String> kscf = 
Schema.instance.getCF(cfId);}}, not from {{Keyspace.open}}.

For each cases, we should log error and send back message that indicates 
"failure".

- PREPARE_* and SNAPSHOT: send back INTERNAL_RESPONSE with failure flag on (as 
done in SNAPSHOT)
- VALIDATION_REQUEST: send back ValidationResponse with empty tree (see 
Validator)



> null pointer exception in CassandraDaemon.java:195
> --------------------------------------------------
>
>                 Key: CASSANDRA-11065
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11065
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Vassil Lunchev
>            Assignee: Paulo Motta
>            Priority: Minor
>
> Running Cassandra 3.0.1 installed from apt-get on debian.
> I had a keyspace called 'tests'. I dropped it. Then I checked some nodes and 
> one of them still had that keyspace 'tests'. On a node that still has the 
> dropped keyspace I ran:
> nodetools repair tests;
> In the system logs of another node that did not have keyspace 'tests' I am 
> seeing a null pointer exception:
> {code:java}
> ERROR [AntiEntropyStage:2] 2016-01-25 15:02:46,323 
> RepairMessageVerbHandler.java:161 - Got error, removing parent repair session
> ERROR [AntiEntropyStage:2] 2016-01-25 15:02:46,324 CassandraDaemon.java:195 - 
> Exception in thread Thread[AntiEntropyStage:2,5,main]
> java.lang.RuntimeException: java.lang.NullPointerException
>       at 
> org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:164)
>  ~[apache-cassandra-3.0.1.jar:3.0.1]
>       at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:67) 
> ~[apache-cassandra-3.0.1.jar:3.0.1]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_66-internal]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_66-internal]
>       at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66-internal]
> Caused by: java.lang.NullPointerException: null
>       at 
> org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:69)
>  ~[apache-cassandra-3.0.1.jar:3.0.1]
>       ... 4 common frames omitted
> {code}
> The error appears every time I run:
> nodetools repair tests;
> I can see it in the logs of all nodes, including the node on which I run the 
> repair.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to