From 5e4ff921afb9d8cb2deacbfd24db78ea4e2ccbe1 Mon Sep 17 00:00:00 2001 From: Bereng Date: Tue, 22 Oct 2024 14:27:49 +0200 Subject: [PATCH] Add extra compaction junit patch by Berenguer Blasi; reviewed by Branimir Lambov, Michael Semb Wever for CASSANDRA-19863 --- ...pactionStrategyManagerPendingRepairTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java index 028d28303e..d809644e1c 100644 --- a/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/CompactionStrategyManagerPendingRepairTest.java @@ -24,6 +24,7 @@ import java.util.List; import com.google.common.collect.Iterables; +import org.apache.cassandra.Util; import org.apache.cassandra.repair.consistent.LocalSession; import org.junit.Assert; @@ -374,15 +375,29 @@ public class CompactionStrategyManagerPendingRepairTest extends AbstractPendingR System.out.println("Live sstables: " + cfs.getLiveSSTables().size()); System.out.println("*********************************************************************************************"); + // Run compaction again. It should pick up the pending repair sstable compactionTask = csm.getNextBackgroundTask(FBUtilities.nowInSeconds()); if (compactionTask != null) { Assert.assertSame(PendingRepairManager.RepairFinishedCompactionTask.class, compactionTask.getClass()); compactionTask.execute(ActiveCompactionsTracker.NOOP); - Assert.assertEquals(1, cfs.getLiveSSTables().size()); + + while ((compactionTask = csm.getNextBackgroundTask(FBUtilities.nowInSeconds())) != null) + compactionTask.execute(ActiveCompactionsTracker.NOOP); } + // Make sure you consume all pending compactions + Util.spinAssertEquals(Boolean.FALSE, + () -> { + AbstractCompactionTask ctask; + while ((ctask = csm.getNextBackgroundTask(FBUtilities.nowInSeconds())) != null) + ctask.execute(ActiveCompactionsTracker.NOOP); + + return hasPendingStrategiesFor(repairID); + }, + 30); + System.out.println("*********************************************************************************************"); System.out.println(compactedSSTable); System.out.println("Pending repair UUID: " + compactedSSTable.getPendingRepair());