Repository: cassandra Updated Branches: refs/heads/trunk 7eb915097 -> 2d2879db7
Fix flaky unit tests SecondaryIndexManagerTest.assert[Not]MarkedAsBuilt patch by Andres de la Peña; reviewed by Robert Stupp for CASSANDRA-13965 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2d2879db Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2d2879db Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2d2879db Branch: refs/heads/trunk Commit: 2d2879db7a2fe8b0c25d08f67c81c88454e1527c Parents: 7eb9150 Author: AndreÌs de la PenÌa <a.penya.gar...@gmail.com> Authored: Wed Oct 18 16:28:12 2017 +0100 Committer: AndreÌs de la PenÌa <a.penya.gar...@gmail.com> Committed: Thu Nov 23 18:49:26 2017 +0000 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../index/SecondaryIndexManagerTest.java | 33 ++++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2d2879db/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 6da2712..81b3a6e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Fix flaky SecondaryIndexManagerTest.assert[Not]MarkedAsBuilt (CASSANDRA-13965) * Make LWTs send resultset metadata on every request (CASSANDRA-13992) * Fix flaky indexWithFailedInitializationIsNotQueryableAfterPartialRebuild (CASSANDRA-13963) * Introduce leaf-only iterator (CASSANDRA-9988) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2d2879db/test/unit/org/apache/cassandra/index/SecondaryIndexManagerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/index/SecondaryIndexManagerTest.java b/test/unit/org/apache/cassandra/index/SecondaryIndexManagerTest.java index def96a4..2207f48 100644 --- a/test/unit/org/apache/cassandra/index/SecondaryIndexManagerTest.java +++ b/test/unit/org/apache/cassandra/index/SecondaryIndexManagerTest.java @@ -21,6 +21,7 @@ import java.io.FileNotFoundException; import java.net.SocketException; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; @@ -37,7 +38,6 @@ import org.apache.cassandra.db.lifecycle.SSTableSet; import org.apache.cassandra.io.sstable.format.SSTableReader; import org.apache.cassandra.notifications.SSTableAddedNotification; import org.apache.cassandra.schema.IndexMetadata; -import org.apache.cassandra.schema.SchemaConstants; import org.apache.cassandra.utils.JVMStabilityInspector; import org.apache.cassandra.utils.KillerForTests; import org.apache.cassandra.utils.concurrent.Refs; @@ -50,10 +50,6 @@ import static org.junit.Assert.fail; public class SecondaryIndexManagerTest extends CQLTester { - private static final String builtIndexesQuery = String.format("SELECT * FROM %s.\"%s\"", - SchemaConstants.SYSTEM_KEYSPACE_NAME, - SystemKeyspace.BUILT_INDEXES); - @After public void after() { @@ -94,7 +90,7 @@ public class SecondaryIndexManagerTest extends CQLTester // drop the index and verify that it has been removed from the built indexes table dropIndex("DROP INDEX %s." + indexName); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); // create the index again and verify that it's added to the built indexes table createIndex(String.format("CREATE INDEX %s ON %%s(c)", indexName)); @@ -113,7 +109,7 @@ public class SecondaryIndexManagerTest extends CQLTester ColumnFamilyStore cfs = getCurrentColumnFamilyStore(); cfs.indexManager.markAllIndexesRemoved(); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); try (Refs<SSTableReader> sstables = Refs.ref(cfs.getSSTables(SSTableSet.CANONICAL))) { @@ -132,7 +128,7 @@ public class SecondaryIndexManagerTest extends CQLTester // try to rebuild the index before the index creation task has finished assertFalse(tryRebuild(indexName, false)); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); // check that the index is marked as built when the creation finishes TestingIndex.unblockCreate(); @@ -183,7 +179,7 @@ public class SecondaryIndexManagerTest extends CQLTester // verify rebuilding the index before the previous index build task has finished fails assertFalse(tryRebuild(indexName, false)); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); // check that the index is marked as built when the build finishes TestingIndex.unblockBuild(); @@ -235,7 +231,7 @@ public class SecondaryIndexManagerTest extends CQLTester // verify rebuilding the index before the previous index build task has finished fails assertFalse(tryRebuild(indexName, false)); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); // check that the index is marked as built when the build finishes TestingIndex.unblockBuild(); @@ -289,7 +285,7 @@ public class SecondaryIndexManagerTest extends CQLTester try (Refs<SSTableReader> sstables = Refs.ref(cfs.getSSTables(SSTableSet.CANONICAL))) { cfs.indexManager.handleNotification(new SSTableAddedNotification(sstables, null), cfs.getTracker()); - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); } // unblock the pending build: @@ -359,7 +355,7 @@ public class SecondaryIndexManagerTest extends CQLTester asyncBuild.join(); // verify the index is *not* built due to the failing sstable build: - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); assertFalse(error.get()); } @@ -382,7 +378,7 @@ public class SecondaryIndexManagerTest extends CQLTester { assertTrue(ex.getMessage().contains("configured to fail")); } - assertNotMarkedAsBuilt(); + assertNotMarkedAsBuilt(indexName); } @Test @@ -553,14 +549,17 @@ public class SecondaryIndexManagerTest extends CQLTester } } - private void assertMarkedAsBuilt(String indexName) throws Throwable + private static void assertMarkedAsBuilt(String indexName) { - assertRows(execute(builtIndexesQuery), row(KEYSPACE, indexName, null)); + List<String> indexes = SystemKeyspace.getBuiltIndexes(KEYSPACE, Collections.singleton(indexName)); + assertEquals(1, indexes.size()); + assertEquals(indexName, indexes.get(0)); } - private void assertNotMarkedAsBuilt() throws Throwable + private static void assertNotMarkedAsBuilt(String indexName) { - assertEmpty(execute(builtIndexesQuery)); + List<String> indexes = SystemKeyspace.getBuiltIndexes(KEYSPACE, Collections.singleton(indexName)); + assertTrue(indexes.isEmpty()); } private boolean tryRebuild(String indexName, boolean wait) throws Throwable --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org