Repository: cassandra Updated Branches: refs/heads/trunk 4d15f2d06 -> 30820eacb
Disable compaction during PendingRepairTests Patch by Paulo Motta; Reviewed by Blake Eggleston for CASSANDRA-13224 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/30820eac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/30820eac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/30820eac Branch: refs/heads/trunk Commit: 30820eacb9c565d06260031260910f020e16e83d Parents: 4d15f2d Author: Paulo Motta <[email protected]> Authored: Tue Apr 4 12:09:16 2017 -0300 Committer: Paulo Motta <[email protected]> Committed: Thu Apr 6 10:16:54 2017 -0300 ---------------------------------------------------------------------- .../compaction/AbstractPendingRepairTest.java | 1 + ...pactionStrategyManagerPendingRepairTest.java | 2 + .../db/compaction/PendingRepairManagerTest.java | 44 ++++++++++++++++---- 3 files changed, 40 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/30820eac/test/unit/org/apache/cassandra/db/compaction/AbstractPendingRepairTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/compaction/AbstractPendingRepairTest.java b/test/unit/org/apache/cassandra/db/compaction/AbstractPendingRepairTest.java index 75f555d..0baad3b 100644 --- a/test/unit/org/apache/cassandra/db/compaction/AbstractPendingRepairTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/AbstractPendingRepairTest.java @@ -88,6 +88,7 @@ public class AbstractPendingRepairTest extends AbstractRepairTest cfs = Schema.instance.getColumnFamilyStoreInstance(cfm.id); csm = cfs.getCompactionStrategyManager(); nextSSTableKey = 0; + cfs.disableAutoCompaction(); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/30820eac/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java index 27bff20..0b27f73 100644 --- a/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java @@ -235,6 +235,7 @@ public class CompactionStrategyManagerPendingRepairTest extends AbstractPendingR Assert.assertTrue(sstable.isPendingRepair()); Assert.assertFalse(sstable.isRepaired()); + cfs.getCompactionStrategyManager().enable(); // enable compaction to fetch next background task AbstractCompactionTask compactionTask = csm.getNextBackgroundTask(FBUtilities.nowInSeconds()); Assert.assertNotNull(compactionTask); Assert.assertSame(PendingRepairManager.RepairFinishedCompactionTask.class, compactionTask.getClass()); @@ -272,6 +273,7 @@ public class CompactionStrategyManagerPendingRepairTest extends AbstractPendingR Assert.assertTrue(sstable.isPendingRepair()); Assert.assertFalse(sstable.isRepaired()); + cfs.getCompactionStrategyManager().enable(); // enable compaction to fetch next background task AbstractCompactionTask compactionTask = csm.getNextBackgroundTask(FBUtilities.nowInSeconds()); Assert.assertNotNull(compactionTask); Assert.assertSame(PendingRepairManager.RepairFinishedCompactionTask.class, compactionTask.getClass()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/30820eac/test/unit/org/apache/cassandra/db/compaction/PendingRepairManagerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/compaction/PendingRepairManagerTest.java b/test/unit/org/apache/cassandra/db/compaction/PendingRepairManagerTest.java index 1b43217..a173b4b 100644 --- a/test/unit/org/apache/cassandra/db/compaction/PendingRepairManagerTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/PendingRepairManagerTest.java @@ -18,6 +18,7 @@ package org.apache.cassandra.db.compaction; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.UUID; @@ -152,10 +153,17 @@ public class PendingRepairManagerTest extends AbstractPendingRepairTest Assert.assertEquals(2, prm.getSessions().size()); Assert.assertNull(prm.getNextBackgroundTask(FBUtilities.nowInSeconds())); AbstractCompactionTask compactionTask = prm.getNextRepairFinishedTask(); - Assert.assertNotNull(compactionTask); - Assert.assertSame(PendingRepairManager.RepairFinishedCompactionTask.class, compactionTask.getClass()); - PendingRepairManager.RepairFinishedCompactionTask cleanupTask = (PendingRepairManager.RepairFinishedCompactionTask) compactionTask; - Assert.assertEquals(repairID, cleanupTask.getSessionID()); + try + { + Assert.assertNotNull(compactionTask); + Assert.assertSame(PendingRepairManager.RepairFinishedCompactionTask.class, compactionTask.getClass()); + PendingRepairManager.RepairFinishedCompactionTask cleanupTask = (PendingRepairManager.RepairFinishedCompactionTask) compactionTask; + Assert.assertEquals(repairID, cleanupTask.getSessionID()); + } + finally + { + compactionTask.transaction.abort(); + } } @Test @@ -179,7 +187,15 @@ public class PendingRepairManagerTest extends AbstractPendingRepairTest Assert.assertNotNull(prm.get(repairID)); LocalSessionAccessor.finalizeUnsafe(repairID); - Assert.assertEquals(1, prm.getMaximalTasks(FBUtilities.nowInSeconds(), false).size()); + Collection<AbstractCompactionTask> tasks = prm.getMaximalTasks(FBUtilities.nowInSeconds(), false); + try + { + Assert.assertEquals(1, tasks.size()); + } + finally + { + tasks.stream().forEach(t -> t.transaction.abort()); + } } @Test @@ -191,7 +207,14 @@ public class PendingRepairManagerTest extends AbstractPendingRepairTest mutateRepaired(sstable, repairId); prm.addSSTable(sstable); List<AbstractCompactionTask> tasks = csm.getUserDefinedTasks(Collections.singleton(sstable), 100); - Assert.assertEquals(1, tasks.size()); + try + { + Assert.assertEquals(1, tasks.size()); + } + finally + { + tasks.stream().forEach(t -> t.transaction.abort()); + } } @Test @@ -208,6 +231,13 @@ public class PendingRepairManagerTest extends AbstractPendingRepairTest prm.addSSTable(sstable); prm.addSSTable(sstable2); List<AbstractCompactionTask> tasks = csm.getUserDefinedTasks(Lists.newArrayList(sstable, sstable2), 100); - Assert.assertEquals(2, tasks.size()); + try + { + Assert.assertEquals(2, tasks.size()); + } + finally + { + tasks.stream().forEach(t -> t.transaction.abort()); + } } }
