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

Vinay Chella commented on CASSANDRA-15797:
------------------------------------------

[~yifanc] Thank you for the patch.

* BinLogTest.testPutAfterStop - Good catch on this, I was able to repro with 
this assertion. LGTM
* BinLogTest.testBinLogStartStop - This change looks good to me except one nit 
on assertion message and coundownlatch::await timeout, annotated these comments 
in PR. 


> Fix flaky BinLogTest - org.apache.cassandra.utils.binlog.BinLogTest
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-15797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Jon Meredith
>            Assignee: Yifan Cai
>            Priority: Normal
>             Fix For: 4.0-alpha
>
>
> An internal CI system is failing BinLogTest somewhat frequently under JDK11.  
> Configuration was recently changed to reduce the number of cores the tests 
> run with, however it is reproducible on an 8 core laptop.
> {code}
> [junit-timeout] OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC 
> was deprecated in version 9.0 and will likely be removed in a future release.
> [junit-timeout] Testsuite: org.apache.cassandra.utils.binlog.BinLogTest
> [Junit-timeout] WARNING: An illegal reflective access operation has occurred
> [junit-timeout] WARNING: Illegal reflective access by 
> net.openhft.chronicle.core.Jvm (file:/.../lib/chronicle-core-1.16.4.jar) to 
> field java.nio.Bits.RESERVED_MEMORY
> [junit-timeout] WARNING: Please consider reporting this to the maintainers of 
> net.openhft.chronicle.core.Jvm
> [junit-timeout] WARNING: Use --illegal-access=warn to enable warnings of 
> further illegal reflective access operations
> [junit-timeout] WARNING: All illegal access operations will be denied in a 
> future release
> [junit-timeout] Testsuite: org.apache.cassandra.utils.binlog.BinLogTest Tests 
> run: 13, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 13.895 sec
> [junit-timeout]
> [junit-timeout] Testcase: 
> testPutAfterStop(org.apache.cassandra.utils.binlog.BinLogTest):     FAILED
> [junit-timeout] expected:<null> but 
> was:<org.apache.cassandra.utils.binlog.BinLog$1@5ed190be>
> [junit-timeout] junit.framework.AssertionFailedError: expected:<null> but 
> was:<org.apache.cassandra.utils.binlog.BinLog$1@5ed190be>
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testPutAfterStop(BinLogTest.java:431)
> [junit-timeout]         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit-timeout]         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> [junit-timeout]         at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [junit-timeout]
> [junit-timeout]
> [junit-timeout] Test org.apache.cassandra.utils.binlog.BinLogTest FAILED
> {code}
> There's also a different failure under JDK8
> {code}
> junit-timeout] Testsuite: org.apache.cassandra.utils.binlog.BinLogTest
> [junit-timeout] Testsuite: org.apache.cassandra.utils.binlog.BinLogTest Tests 
> run: 13, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 15.273 sec
> [junit-timeout]
> [junit-timeout] Testcase: 
> testBinLogStartStop(org.apache.cassandra.utils.binlog.BinLogTest):  FAILED
> [junit-timeout] expected:<2> but was:<0>
> [junit-timeout] junit.framework.AssertionFailedError: expected:<2> but was:<0>
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testBinLogStartStop(BinLogTest.java:172)
> [junit-timeout]
> [junit-timeout]
> [junit-timeout] Test org.apache.cassandra.utils.binlog.BinLogTest FAILED
> {code}
> Reproducer
> {code}
> PASSED=0; time  { while ant testclasslist -Dtest.classlistprefix=unit 
> -Dtest.classlistfile=<(echo 
> org/apache/cassandra/utils/binlog/BinLogTest.java); do PASSED=$((PASSED+1)); 
> echo PASSED $PASSED; done }; echo FAILED after $PASSED runs.
> {code}
> In the last four attempts it has taken 31, 38, 27 and 10 rounds respectively 
> under JDK11 and took 51 under JDK8 (about 15 minutes).
> I have not tried running in a cpu-limited container or anything like that yet.
> Additionally, this went past in the logs a few times (under JDK11).  No idea 
> if it's just an artifact of weird test setup, or something more serious.
> {code}
> [junit-timeout] WARNING: Please consider reporting this to the maintainers of 
> net.openhft.chronicle.core.Jvm
> [junit-timeout] WARNING: Use --illegal-access=warn to enable warnings of 
> further illegal reflective access operations
> [junit-timeout] WARNING: All illegal access operations will be denied in a 
> future release
> [junit-timeout] Testsuite: org.apache.cassandra.utils.binlog.BinLogTest Tests 
> run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.839 sec
> [junit-timeout]
> [junit-timeout] java.lang.Throwable: 1e53135d-main creation ref-count=1
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.newRefCountHistory(ReferenceCounter.java:45)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.<init>(ReferenceCounter.java:35)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.onReleased(ReferenceCounter.java:40)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.AbstractBytes.<init>(AbstractBytes.java:38)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.MappedBytes.<init>(MappedBytes.java:59)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.MappedBytes.<init>(MappedBytes.java:55)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.MappedBytes.mappedBytes(MappedBytes.java:113)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueStore.bytes(SingleChronicleQueueStore.java:358)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.resetWires(SingleChronicleQueueExcerpts.java:1702)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.cycle(SingleChronicleQueueExcerpts.java:1907)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.toStart(SingleChronicleQueueExcerpts.java:1614)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueue.createTailer(SingleChronicleQueue.java:401)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.readBinLogRecords(BinLogTest.java:495)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testCleanupOnOversize(BinLogTest.java:407)
> ...
> [junit-timeout] java.lang.Throwable: 1e53135d-main Reserve ref-count=2
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.recordResevation(ReferenceCounter.java:66)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.reserve(ReferenceCounter.java:59)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.AbstractBytes.reserve(AbstractBytes.java:464)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounted.tryReserve(ReferenceCounted.java:81)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueStore.writeEOF(SingleChronicleQueueStore.java:461)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.checkMoveToNextCycle(SingleChronicleQueueExcerpts.java:1437)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.inACycleNone(SingleChronicleQueueExcerpts.java:1416)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.inACycle(SingleChronicleQueueExcerpts.java:1356)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.readingDocument(SingleChronicleQueueExcerpts.java:1168)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.readDocument(SingleChronicleQueueExcerpts.java:1096)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.readBinLogRecords(BinLogTest.java:498)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testCleanupOnOversize(BinLogTest.java:407)
> ...
> [junit-timeout] java.lang.Throwable: 1e53135d-main Release ref-count=1
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.recordRelease(ReferenceCounter.java:88)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.release(ReferenceCounter.java:79)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.AbstractBytes.release(AbstractBytes.java:469)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueStore.writeEOF(SingleChronicleQueueStore.java:463)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.checkMoveToNextCycle(SingleChronicleQueueExcerpts.java:1437)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.inACycleNone(SingleChronicleQueueExcerpts.java:1416)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.inACycle(SingleChronicleQueueExcerpts.java:1356)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.readingDocument(SingleChronicleQueueExcerpts.java:1168)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.readDocument(SingleChronicleQueueExcerpts.java:1096)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.readBinLogRecords(BinLogTest.java:498)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testCleanupOnOversize(BinLogTest.java:407)
> ...
> [junit-timeout] java.lang.Throwable: 1e53135d-main Release ref-count=0
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.recordRelease(ReferenceCounter.java:88)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.release(ReferenceCounter.java:79)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.AbstractBytes.release(AbstractBytes.java:469)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts$StoreTailer.close(SingleChronicleQueueExcerpts.java:1117)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueue.lambda$close$4(SingleChronicleQueue.java:537)
> [junit-timeout]         at 
> java.base/java.util.WeakHashMap.forEach(WeakHashMap.java:1026)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.SingleChronicleQueue.close(SingleChronicleQueue.java:537)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.readBinLogRecords(BinLogTest.java:506)
> [junit-timeout]         at 
> org.apache.cassandra.utils.binlog.BinLogTest.testCleanupOnOversize(BinLogTest.java:407)
> ...
> [junit-timeout] java.lang.Throwable: 
> 1e53135d-main/queue-thread-local-cleaner-daemon Release ref-count=0
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.recordRelease(ReferenceCounter.java:88)
> [junit-timeout]         at 
> net.openhft.chronicle.core.ReferenceCounter.release(ReferenceCounter.java:74)
> [junit-timeout]         at 
> net.openhft.chronicle.bytes.AbstractBytes.release(AbstractBytes.java:469)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.StoreComponentReferenceHandler.processWireQueue(StoreComponentReferenceHandler.java:74)
> [junit-timeout]         at 
> net.openhft.chronicle.queue.impl.single.StoreComponentReferenceHandler.lambda$static$0(StoreComponentReferenceHandler.java:43)
> [junit-timeout]         at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> [junit-timeout]         at 
> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> [junit-timeout]         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> [junit-timeout]         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> [junit-timeout]         at java.base/java.lang.Thread.run(Thread.java:834)
> {code}



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