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

Benedict commented on CASSANDRA-8683:
-------------------------------------

I am struggling to reproduce this test locally, but by spinning on it I have 
produced:

{noformat}
    [junit] Testcase: 
testValidationMultipleSSTablePerLevel(org.apache.cassandra.db.compaction.LeveledCompactionStrategyTest):
  Caused an ERROR
    [junit] java.lang.AssertionError: Memory was freed
    [junit] java.util.concurrent.ExecutionException: java.lang.AssertionError: 
Memory was freed
    [junit]     at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    [junit]     at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    [junit]     at 
org.apache.cassandra.db.compaction.LeveledCompactionStrategyTest.testValidationMultipleSSTablePerLevel(LeveledCompactionStrategyTest.java:184)
    [junit] Caused by: java.lang.AssertionError: Memory was freed
    [junit]     at 
org.apache.cassandra.io.util.Memory.checkPosition(Memory.java:281)
    [junit]     at org.apache.cassandra.io.util.Memory.getInt(Memory.java:233)
    [junit]     at 
org.apache.cassandra.io.sstable.IndexSummary.getPositionInSummary(IndexSummary.java:118)
    [junit]     at 
org.apache.cassandra.io.sstable.IndexSummary.getKey(IndexSummary.java:123)
    [junit]     at 
org.apache.cassandra.io.sstable.format.SSTableReader$9$1.next(SSTableReader.java:1249)
    [junit]     at 
org.apache.cassandra.io.sstable.format.SSTableReader$9$1.next(SSTableReader.java:1226)
    [junit]     at 
com.google.common.collect.Iterators$5.next(Iterators.java:553)
    [junit]     at 
org.apache.cassandra.repair.Validator.prepare(Validator.java:89)
    [junit]     at 
org.apache.cassandra.db.compaction.CompactionManager.doValidationCompaction(CompactionManager.java:1007)
    [junit]     at 
org.apache.cassandra.db.compaction.CompactionManager.access$600(CompactionManager.java:95)
    [junit]     at 
org.apache.cassandra.db.compaction.CompactionManager$9.call(CompactionManager.java:591)
    [junit]     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    [junit]     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    [junit]     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    [junit]     at java.lang.Thread.run(Thread.java:745)
{noformat}

Which may or may not be related, but is certainly problematic.

> Incremental repairs broken with early opening of compaction results
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-8683
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8683
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>             Fix For: 2.1.3
>
>         Attachments: 0001-avoid-NPE-in-getPositionsForRanges.patch
>
>
> Incremental repairs holds a set of the sstables it started the repair on (we 
> need to know which sstables were actually validated to be able to anticompact 
> them). This includes any tmplink files that existed when the compaction 
> started (if we wouldn't include those, we would miss data since we move the 
> start point of the existing non-tmplink files)
> With CASSANDRA-6916 we swap out those instances with new ones 
> (SSTR.cloneWithNewStart / SSTW.openEarly), meaning that the underlying file 
> can get deleted even though we hold a reference.
> This causes the unit test error: 
> http://cassci.datastax.com/job/trunk_utest/1330/testReport/junit/org.apache.cassandra.db.compaction/LeveledCompactionStrategyTest/testValidationMultipleSSTablePerLevel/
> (note that it only fails on trunk though, in 2.1 we don't hold references to 
> the repairing files for non-incremental repairs, but the bug should exist in 
> 2.1 as well)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to