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, 02 Oct 2018 20:41:00 GMT

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

Jon Meredith commented on CASSANDRA-14790:
------------------------------------------

There are some minor races in the test, but the big problem seems to be the calculation for
how much buffer memory the worker threads should allocate.  Instead of dividing the poolSize
across the workers, it instead allocates more and more memory the more threads a machine has.

> 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
>         Attachments: 0001-Add-burn-testsome-target-to-build.xml.patch, 0002-Initialize-before-running-LongBufferPoolTest.patch
>
>
> 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