[ 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)