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

Jon Haddad commented on CASSANDRA-20507:
----------------------------------------

Was able to hit the issue with the provided seed.  Found that we were trying to 
read negative bytes off the file which caused the Exception.

Ran the patch 360 times with the provided PR and the exception no longer 
happens.

+1

> Test Failure: ThreadLocalReadAheadBufferTest.testReadsLikeChannelProxy fails 
> for seed = 444939419228972
> -------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-20507
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20507
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Dmitry Konstantinov
>            Assignee: Jordan West
>            Priority: Normal
>
> [https://ci-cassandra.apache.org/job/Cassandra-5.0/426/testReport/junit/org.apache.cassandra.io.util/ThreadLocalReadAheadBufferTest/Tests___test_cdc_jdk11_2_8___testReadsLikeChannelProxy_cdc_jdk11_x86_64/]
> Error message:
> {code:java}
> Property falsified after 10 example(s) 
> Smallest found falsifying value(s) :-
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest$InputData@130e116b
> Cause was :-
> java.lang.IllegalArgumentException: Negative position
>       at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:785)
>       at org.apache.cassandra.io.util.ChannelProxy.read(ChannelProxy.java:146)
>       at 
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest.testReads(ThreadLocalReadAheadBufferTest.java:105)
>       at 
> org.quicktheories.dsl.TheoryBuilder.lambda$checkAssert$7(TheoryBuilder.java:145)
>       at org.quicktheories.impl.Property.tryFalsification(Property.java:23)
>       at org.quicktheories.impl.Core.findFalsifyingValue(Core.java:76)
>       at org.quicktheories.impl.Core.run(Core.java:35)
>       at org.quicktheories.impl.TheoryRunner.runSearch(TheoryRunner.java:51)
>       at org.quicktheories.impl.TheoryRunner.check(TheoryRunner.java:39)
>       at org.quicktheories.dsl.TheoryBuilder.check(TheoryBuilder.java:132)
>       at 
> org.quicktheories.dsl.TheoryBuilder.checkAssert(TheoryBuilder.java:144)
>       at 
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest.testReadsLikeChannelProxy(ThreadLocalReadAheadBufferTest.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.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>       at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>       at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>       at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
>       at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:534)
>       at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1196)
>       at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1041)
> Other found falsifying value(s) :- 
>  
> Seed was 444939419228972 {code}
> Stacktrace:
> {code:java}
> junit.framework.AssertionFailedError: Property falsified after 10 example(s) 
> Smallest found falsifying value(s) :-
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest$InputData@130e116b
> Cause was :-
> java.lang.IllegalArgumentException: Negative position
>       at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:785)
>       at org.apache.cassandra.io.util.ChannelProxy.read(ChannelProxy.java:146)
>       at 
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest.testReads(ThreadLocalReadAheadBufferTest.java:105)
>       at 
> org.quicktheories.dsl.TheoryBuilder.lambda$checkAssert$7(TheoryBuilder.java:145)
>       at org.quicktheories.impl.Property.tryFalsification(Property.java:23)
>       at org.quicktheories.impl.Core.findFalsifyingValue(Core.java:76)
>       at org.quicktheories.impl.Core.run(Core.java:35)
>       at org.quicktheories.impl.TheoryRunner.runSearch(TheoryRunner.java:51)
>       at org.quicktheories.impl.TheoryRunner.check(TheoryRunner.java:39)
>       at org.quicktheories.dsl.TheoryBuilder.check(TheoryBuilder.java:132)
>       at 
> org.quicktheories.dsl.TheoryBuilder.checkAssert(TheoryBuilder.java:144)
>       at 
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest.testReadsLikeChannelProxy(ThreadLocalReadAheadBufferTest.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)
> Other found falsifying value(s) :- 
>  
> Seed was 444939419228972
>       at 
> org.quicktheories.core.ExceptionReporter.falsify(ExceptionReporter.java:43)
>       at 
> org.quicktheories.core.ExceptionReporter.falisification(ExceptionReporter.java:37)
>       at 
> org.quicktheories.impl.TheoryRunner.reportFalsification(TheoryRunner.java:58)
>       at org.quicktheories.impl.TheoryRunner.check(TheoryRunner.java:41)
>       at org.quicktheories.dsl.TheoryBuilder.check(TheoryBuilder.java:132)
>       at 
> org.quicktheories.dsl.TheoryBuilder.checkAssert(TheoryBuilder.java:144)
>       at 
> org.apache.cassandra.io.util.ThreadLocalReadAheadBufferTest.testReadsLikeChannelProxy(ThreadLocalReadAheadBufferTest.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)
>  {code}
> Standard Output:
> {code:java}
> INFO  [main] 2025-04-02 11:11:06,389 ThreadLocalReadAheadBufferTest.java:56 - 
> Seed: 1489793844
> DEBUG [main] 2025-04-02 11:11:08,102 InternalLoggerFactory.java:63 - Using 
> SLF4J as the default logging framework
> DEBUG [main] 2025-04-02 11:11:08,112 InternalThreadLocalMap.java:100 - 
> -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
> DEBUG [main] 2025-04-02 11:11:08,112 InternalThreadLocalMap.java:101 - 
> -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
> {code}
> Cc: [~jwest]



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

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

Reply via email to