cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Meredith (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-14790) LongBufferPoolTest burn test fails assertion
Date Tue, 16 Oct 2018 17:44:00 GMT

    [ 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message