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

Benedict Elliott Smith commented on CASSANDRA-17928:
----------------------------------------------------

This is a weird test. It looks like the problem is that the 
{{CommitLogSegmentManager}} assigns its {{executor}} variable after 
{{InfiniteLoopExecutor}} starts its thread, which may therefore process the 
exception immediately (i.e. before the executor is made visible via 
{{executor}}). Since the custom JVMKiller kills the thread that is starting the 
commit log, and this causes abnormal termination of the thread, this can 
prevent the field from being assigned entirely.

Why is this thread being killed here, though? This is not semantically 
equivalent to any execution that is possible in a normal system.

Who authored the test, perhaps their insight can be sought as to what the 
intention was?

> Test Failure: 
> org.apache.cassandra.db.commitlog.CommitLogInitWithExceptionTest.testCommitLogInitWithException-compression
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17928
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17928
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Josh McKenzie
>            Assignee: Brandon Williams
>            Priority: Normal
>             Fix For: 4.1-rc
>
>
> [Link|https://ci-cassandra.apache.org/job/Cassandra-4.1/169/testReport/org.apache.cassandra.db.commitlog/CommitLogInitWithExceptionTest/testCommitLogInitWithException_compression/]
> Failed 1 times in the last 14 runs. Flakiness: 7%, Stability: 92%
> Stacktrace
> {code:java}
> java.lang.NullPointerException
>       at 
> org.apache.cassandra.db.commitlog.CommitLogInitWithExceptionTest.testCommitLogInitWithException(CommitLogInitWithExceptionTest.java:93)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> {code}
> {code:java}
> Standard Output
> INFO  [main] 2022-09-25 11:43:16,512 Reflections.java:219 - Reflections took 
> 1221 ms to scan 8 urls, producing 1756 keys and 6922 values
> INFO  [main] 2022-09-25 11:43:17,480 Reflections.java:219 - Reflections took 
> 907 ms to scan 8 urls, producing 1756 keys and 6922 values
> INFO  [main] 2022-09-25 11:43:17,573 YamlConfigurationLoader.java:104 - 
> Configuration location: 
> file:////home/cassandra/cassandra/build/test/cassandra.compressed.yaml
> DEBUG [main] 2022-09-25 11:43:17,574 YamlConfigurationLoader
> ...[truncated 35568 chars]...
> .apache.cassandra.db.commitlog.CommitLogInitWithExceptionTest$MockCommitLogSegmentMgr.createSegment(CommitLogInitWithExceptionTest.java:106)
>       at 
> org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager$AllocatorRunnable.run(AbstractCommitLogSegmentManager.java:155)
>       at 
> org.apache.cassandra.concurrent.InfiniteLoopExecutor.loop(InfiniteLoopExecutor.java:121)
>       at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>       at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to