This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 1ce3c1c  Use only test triggered compactions for test assertions on 
CancelCompactionsTest.
1ce3c1c is described below

commit 1ce3c1c039561c15892115af37e0c7abf260bc6b
Author: Francisco Fernandez Castano <[email protected]>
AuthorDate: Tue Mar 31 16:21:28 2020 +0200

    Use only test triggered compactions for test assertions on 
CancelCompactionsTest.
    
    Patch by Francisco Fernandez Castano, reviewed by Ekaterina Dimitrova
    and brandonwilliams for CASSANDRA-15671
---
 .../db/compaction/CancelCompactionsTest.java       | 34 +++++++++++++---------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git 
a/test/unit/org/apache/cassandra/db/compaction/CancelCompactionsTest.java 
b/test/unit/org/apache/cassandra/db/compaction/CancelCompactionsTest.java
index 60433bb..beed019 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CancelCompactionsTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CancelCompactionsTest.java
@@ -82,7 +82,7 @@ public class CancelCompactionsTest extends CQLTester
         {
             tct.start();
 
-            List<CompactionInfo.Holder> activeCompactions = 
CompactionManager.instance.active.getCompactions();
+            List<CompactionInfo.Holder> activeCompactions = 
getActiveCompactionsForTable(cfs);
             assertEquals(1, activeCompactions.size());
             
assertEquals(activeCompactions.get(0).getCompactionInfo().getSSTables(), 
toMarkCompacting);
             // predicate requires the non-compacting sstables, should not 
cancel the one currently compacting:
@@ -128,7 +128,7 @@ public class CancelCompactionsTest extends CQLTester
         {
             tcts.forEach(TestCompactionTask::start);
 
-            List<CompactionInfo.Holder> activeCompactions = 
CompactionManager.instance.active.getCompactions();
+            List<CompactionInfo.Holder> activeCompactions = 
getActiveCompactionsForTable(cfs);
             assertEquals(2, activeCompactions.size());
 
             Set<Set<SSTableReader>> compactingSSTables = new HashSet<>();
@@ -147,7 +147,7 @@ public class CancelCompactionsTest extends CQLTester
             // start a compaction which only needs the sstables where first 
token is > 50 - these are the sstables compacted by tcts.get(1)
             Thread t = new Thread(() -> cfs.runWithCompactionsDisabled(() -> { 
cdl.countDown(); return null; }, (sstable) -> first(sstable) > 50, false, 
false, true));
             t.start();
-            activeCompactions = 
CompactionManager.instance.active.getCompactions();
+            activeCompactions = getActiveCompactionsForTable(cfs);
             assertEquals(2, activeCompactions.size());
             Thread.sleep(500);
             for (CompactionInfo.Holder holder : activeCompactions)
@@ -186,7 +186,7 @@ public class CancelCompactionsTest extends CQLTester
         {
             tcts.forEach(TestCompactionTask::start);
 
-            List<CompactionInfo.Holder> activeCompactions = 
CompactionManager.instance.active.getCompactions();
+            List<CompactionInfo.Holder> activeCompactions = 
getActiveCompactionsForTable(cfs);
             assertEquals(4, activeCompactions.size());
             Range<Token> range = new Range<>(token(0), token(49));
             Thread t = new Thread(() -> {
@@ -203,9 +203,9 @@ public class CancelCompactionsTest extends CQLTester
             t.start();
 
             Thread.sleep(500);
-            assertEquals(4, 
CompactionManager.instance.active.getCompactions().size());
+            assertEquals(4, getActiveCompactionsForTable(cfs).size());
             List<TestCompactionTask> toAbort = new ArrayList<>();
-            for (CompactionInfo.Holder holder : 
CompactionManager.instance.active.getCompactions())
+            for (CompactionInfo.Holder holder : 
getActiveCompactionsForTable(cfs))
             {
                 if 
(holder.getCompactionInfo().getSSTables().stream().anyMatch(sstable -> 
sstable.intersects(Collections.singleton(range))))
                 {
@@ -250,7 +250,7 @@ public class CancelCompactionsTest extends CQLTester
         {
             tcts.forEach(TestCompactionTask::start);
             nonAffectedTcts.forEach(TestCompactionTask::start);
-            List<CompactionInfo.Holder> activeCompactions = 
CompactionManager.instance.active.getCompactions();
+            List<CompactionInfo.Holder> activeCompactions = 
getActiveCompactionsForTable(cfs);
             assertEquals(5, activeCompactions.size());
             // make sure that sstables are fully contained so that the 
metadata gets mutated
             Range<Token> range = new Range<>(token(-1), token(49));
@@ -265,7 +265,7 @@ public class CancelCompactionsTest extends CQLTester
             Future<?> fut = pac.run();
             Thread.sleep(600);
             List<TestCompactionTask> toAbort = new ArrayList<>();
-            for (CompactionInfo.Holder holder : 
CompactionManager.instance.active.getCompactions())
+            for (CompactionInfo.Holder holder : 
getActiveCompactionsForTable(cfs))
             {
                 if 
(holder.getCompactionInfo().getSSTables().stream().anyMatch(sstable -> 
sstable.intersects(Collections.singleton(range)) && !sstable.isRepaired() && 
!sstable.isPendingRepair()))
                 {
@@ -322,9 +322,9 @@ public class CancelCompactionsTest extends CQLTester
         Future<?> f = CompactionManager.instance.submitIndexBuild(new 
CollatedViewIndexBuilder(cfs, Collections.singleton(idx), reducingKeyIterator, 
ImmutableSet.copyOf(sstables)));
         // wait for hasNext to get called
         indexBuildStarted.await();
-        assertEquals(1, 
CompactionManager.instance.active.getCompactions().size());
+        assertEquals(1, getActiveCompactionsForTable(cfs).size());
         boolean foundCompaction = false;
-        for (CompactionInfo.Holder holder : 
CompactionManager.instance.active.getCompactions())
+        for (CompactionInfo.Holder holder : getActiveCompactionsForTable(cfs))
         {
             if (holder.getCompactionInfo().getSSTables().equals(new 
HashSet<>(sstables)))
             {
@@ -336,9 +336,9 @@ public class CancelCompactionsTest extends CQLTester
         cfs.runWithCompactionsDisabled(() -> {compactionsStopped.countDown(); 
return null;}, (sstable) -> true, false, false, true);
         // wait for the runWithCompactionsDisabled callable
         compactionsStopped.await();
-        assertEquals(1, 
CompactionManager.instance.active.getCompactions().size());
+        assertEquals(1, getActiveCompactionsForTable(cfs).size());
         foundCompaction = false;
-        for (CompactionInfo.Holder holder : 
CompactionManager.instance.active.getCompactions())
+        for (CompactionInfo.Holder holder : getActiveCompactionsForTable(cfs))
         {
             if (holder.getCompactionInfo().getSSTables().equals(new 
HashSet<>(sstables)))
             {
@@ -350,7 +350,7 @@ public class CancelCompactionsTest extends CQLTester
         // signal that the index build should be finished
         indexBuildRunning.countDown();
         f.get();
-        
assertTrue(CompactionManager.instance.active.getCompactions().isEmpty());
+        assertTrue(getActiveCompactionsForTable(cfs).isEmpty());
     }
 
     long first(SSTableReader sstable)
@@ -520,4 +520,12 @@ public class CancelCompactionsTest extends CQLTester
             t.join();
         }
     }
+
+    private List<CompactionInfo.Holder> 
getActiveCompactionsForTable(ColumnFamilyStore cfs)
+    {
+        return CompactionManager.instance.active.getCompactions()
+                                                .stream()
+                                                .filter(holder -> 
holder.getCompactionInfo().getTable().orElse("unknown").equalsIgnoreCase(cfs.name))
+                                                .collect(Collectors.toList());
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to