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

Jon Meredith commented on CASSANDRA-15949:
------------------------------------------

I like the `allExisting()` approach and agree updating thresholds in doomed CFS 
is harmless as long as there aren't issues relating to them being shutdown (the 
table metadata being invalid). I'm not sure where the best point to actually 
iterate-over-metadata-of-all-loaded-CFS-without-loading-ever with the 
{{updateSpeculationThreshold function}} which is what we really want to do. 
It's also not the end of the world to miss it as a keyspace is loading as it 
will be updated next time (as long as this doesn't crash updating of course).

> NPE thrown while updating speculative execution time if table is removed 
> during task execution
> ----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15949
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15949
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Other
>            Reporter: Jon Meredith
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 4.0-beta
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> CASSANDRA-14338 fixed the scheduling the speculation retry threshold 
> calculation, but if the task happens to be scheduled while a table is being 
> dropped, it triggers an NPE. 
> ERROR 2020-07-14T11:34:55,762 [OptionalTasks:1] 
> org.apache.cassandra.service.CassandraDaemon:446 - Exception in thread 
> Thread[OptionalTasks:1,5,main]
> java.lang.NullPointerException: null
>        at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:444) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:346) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at org.apache.cassandra.db.Keyspace.open(Keyspace.java:139) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at org.apache.cassandra.db.Keyspace.open(Keyspace.java:116) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at org.apache.cassandra.db.Keyspace$1.apply(Keyspace.java:102) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at org.apache.cassandra.db.Keyspace$1.apply(Keyspace.java:99) 
> ~[cassandra-4.0.0.jar:4.0.0]
>        at 
> com.google.common.collect.Iterables$5.lambda$forEach$0(Iterables.java:704) 
> ~[guava-27.0-jre.jar:?]
>        at 
> com.google.common.collect.IndexedImmutableSet.forEach(IndexedImmutableSet.java:45)
>  ~[guava-27.0-jre.jar:?]
>        at com.google.common.collect.Iterables$5.forEach(Iterables.java:704) 
> ~[guava-27.0-jre.jar:?]
>        at 
> org.apache.cassandra.service.CassandraDaemon.lambda$setup$2(CassandraDaemon.java:412)
>  ~[cassandra-4.0.0.jar:4.0.0]
>        at 
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
>  [cassandra-4.0.0.jar:4.0.0]
>        at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) 
> [?:?]
>        at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
>  [?:?]
>        at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  [?:?]
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  [?:?]
>        at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  [netty-all-4.1.37.Final.jar:4.1.37.Final]
>        at java.lang.Thread.run(Thread.java:834) [?:?]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to