[ https://issues.apache.org/jira/browse/CASSANDRA-14790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16652137#comment-16652137 ]
Jon Meredith commented on CASSANDRA-14790: ------------------------------------------ Thanks for the review on the longbuffer stuff I've rebased and updated my local branch to amend the commits and have force-pushed the branch it back so it's ready to re-review, hopefully GitHub can handle that these days For your requested fixing the remaining races, did you mean the possible races around setting the makingProgress atomics [https://github.com/jonmeredith/cassandra/blob/CASSANDRA-14790-3.0/test/burn/org/apache/cassandra/uti...|https://github.com/jonmeredith/cassandra/blob/CASSANDRA-14790-3.0/test/burn/org/apache/cassandra/utils/memory/LongBufferPoolTest.java#L219] or did you mean the race in the actual allocation code itself [https://github.com/jonmeredith/cassandra/blob/CASSANDRA-14790-3.0/src/java/org/apache/cassandra/util...|https://github.com/jonmeredith/cassandra/blob/CASSANDRA-14790-3.0/src/java/org/apache/cassandra/utils/memory/BufferPool.java#L248] I'm happy to fix the makingProgress atomics - I've managed to convince myself the races should be harmless as they should be caught on the next iteration and decided to minimize the amount of change for no benefit I could see. For the minor allocation bugfix I thought that should be a separate JIRA ticket that I would open after merging this, but I could also fix it as part of this too if that's the normal way to handle things. > LongBufferPoolTest burn test fails assertion > -------------------------------------------- > > Key: CASSANDRA-14790 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14790 > Project: Cassandra > Issue Type: Test > Components: Testing > Environment: Run under macOS 10.13.6, with patch (attached, but also > https://github.com/jonmeredith/cassandra/tree/failing-burn-test) > Reporter: Jon Meredith > Priority: Major > Labels: pull-request-available > Attachments: 0001-Add-burn-testsome-target-to-build.xml.patch, > 0002-Initialize-before-running-LongBufferPoolTest.patch > > Time Spent: 2h > Remaining Estimate: 0h > > The LongBufferPoolTest from the burn tests fails with an assertion error. I > added a build target to run individual burn tests, and \{jasobrown} gave a > fix for the uninitialized test setup (attached), however the test now fails > on an assertion about recycling buffers. > To reproduce (with patch applied) > {{ant burn-testsome > -Dtest.name=org.apache.cassandra.utils.memory.LongBufferPoolTest > -Dtest.methods=testAllocate}} > Output > {{ [junit] Testcase: > testAllocate(org.apache.cassandra.utils.memory.LongBufferPoolTest): FAILED}} > {{ [junit] null}} > {{ [junit] junit.framework.AssertionFailedError}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool$Debug.check(BufferPool.java:204)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool.assertAllRecycled(BufferPool.java:181)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest.testAllocate(LongBufferPoolTest.java:350)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest.testAllocate(LongBufferPoolTest.java:54)}} > All major branches from 3.0 and later have issues, however the trunk branch > also warns about references not being released before the reference is > garbage collected. > {{[junit] ERROR [Reference-Reaper:1] 2018-09-25 13:59:54,089 Ref.java:224 - > LEAK DETECTED: a reference > (org.apache.cassandra.utils.concurrent.Ref$State@7f58d19a) to @623704362 was > not released before the reference was garbage collected}} > {{ [junit] ERROR [Reference-Reaper:1] 2018-09-25 13:59:54,089 Ref.java:255 - > Allocate trace org.apache.cassandra.utils.concurrent.Ref$State@7f58d19a:}} > {{ [junit] Thread[pool-2-thread-24,5,main]}} > {{ [junit] at java.lang.Thread.getStackTrace(Thread.java:1559)}} > {{ [junit] at > org.apache.cassandra.utils.concurrent.Ref$Debug.<init>(Ref.java:245)}} > {{ [junit] at > org.apache.cassandra.utils.concurrent.Ref$State.<init>(Ref.java:175)}} > {{ [junit] at org.apache.cassandra.utils.concurrent.Ref.<init>(Ref.java:97)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool$Chunk.setAttachment(BufferPool.java:663)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool$Chunk.get(BufferPool.java:803)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool$Chunk.get(BufferPool.java:793)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool$LocalPool.get(BufferPool.java:388)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool.maybeTakeFromPool(BufferPool.java:143)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool.takeFromPool(BufferPool.java:115)}} > {{ [junit] at > org.apache.cassandra.utils.memory.BufferPool.get(BufferPool.java:85)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest$3.allocate(LongBufferPoolTest.java:296)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest$3.testOne(LongBufferPoolTest.java:246)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest$TestUntil.call(LongBufferPoolTest.java:399)}} > {{ [junit] at > org.apache.cassandra.utils.memory.LongBufferPoolTest$TestUntil.call(LongBufferPoolTest.java:379)}} > {{ [junit] at java.util.concurrent.FutureTask.run(FutureTask.java:266)}} > {{ [junit] at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)}} > {{ [junit] at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)}} > {{ [junit] at java.lang.Thread.run(Thread.java:748)}} > > Perhaps the environment is not being set up correctly for the tests. > -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org