You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by gj...@apache.org on 2020/01/23 18:41:33 UTC

[phoenix] branch 4.x-HBase-1.4 updated: PHOENIX-5677 - Replace System.currentTimeMillis with EnvironmentEdgeManager in non-test code (Addendum to fix IndexScrutinyIT)

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

gjacoby pushed a commit to branch 4.x-HBase-1.4
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x-HBase-1.4 by this push:
     new b240466  PHOENIX-5677 - Replace System.currentTimeMillis with EnvironmentEdgeManager in non-test code (Addendum to fix IndexScrutinyIT)
b240466 is described below

commit b2404665ada7b5c83cf96f5f44e6a1909096ef5b
Author: Geoffrey Jacoby <gj...@apache.org>
AuthorDate: Wed Jan 22 13:33:48 2020 -0800

    PHOENIX-5677 - Replace System.currentTimeMillis with EnvironmentEdgeManager in non-test code (Addendum to fix IndexScrutinyIT)
---
 .../end2end/index/PartialIndexRebuilderIT.java     | 69 ++--------------------
 .../index/IndexScrutinyMapperForTest.java          |  4 +-
 2 files changed, 8 insertions(+), 65 deletions(-)

diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/PartialIndexRebuilderIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/PartialIndexRebuilderIT.java
index cbbdfec..4565caa 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/PartialIndexRebuilderIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/PartialIndexRebuilderIT.java
@@ -65,20 +65,17 @@ import org.apache.phoenix.util.IndexUtil;
 import org.apache.phoenix.util.MetaDataUtil;
 import org.apache.phoenix.util.ReadOnlyProps;
 import org.apache.phoenix.util.Repeat;
-import org.apache.phoenix.util.RunUntilFailure;
 import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.TestUtil;
+import org.junit.After;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Maps;
 
 @SuppressWarnings("deprecation")
-@RunWith(RunUntilFailure.class)
 public class PartialIndexRebuilderIT extends BaseUniqueNamesOwnClusterIT {
     private static final Logger LOGGER = LoggerFactory.getLogger(PartialIndexRebuilderIT.class);
     private static final Random RAND = new Random(5);
@@ -112,6 +109,11 @@ public class PartialIndexRebuilderIT extends BaseUniqueNamesOwnClusterIT {
             indexRebuildTaskRegionEnvironment.getConfiguration());
     }
 
+    @After
+    public void cleanup(){
+        EnvironmentEdgeManager.reset();
+    }
+
     private static void runIndexRebuilder(String table) throws InterruptedException, SQLException {
         runIndexRebuilder(Collections.<String>singletonList(table));
     }
@@ -1073,65 +1075,6 @@ public class PartialIndexRebuilderIT extends BaseUniqueNamesOwnClusterIT {
         }
     }
 
-    @Test
-    @Repeat(5)
-    public void testIndexActiveIfRegionMovesWhileRebuilding() throws Throwable {
-        final MyClock clock = new MyClock(1000);
-        EnvironmentEdgeManager.injectEdge(clock);
-        String schemaName = generateUniqueName();
-        String tableName = generateUniqueName();
-        String indexName = generateUniqueName();
-        int nThreads = 5;
-        int nRows = 50;
-        int nIndexValues = 23;
-        int batchSize = 200;
-        final CountDownLatch doneSignal = new CountDownLatch(nThreads);
-        boolean[] cancel = new boolean[1];
-
-        final String fullTableName = SchemaUtil.getTableName(schemaName, tableName);
-        final String fullIndexName = SchemaUtil.getTableName(schemaName, indexName);
-        try (Connection conn = DriverManager.getConnection(getUrl())) {
-            try {
-                conn.createStatement().execute("CREATE TABLE " + fullTableName
-                    + "(k1 INTEGER NOT NULL, k2 INTEGER NOT NULL, v1 INTEGER, "
-                    + "CONSTRAINT pk PRIMARY KEY (k1,k2)) STORE_NULLS=true, VERSIONS=1");
-                conn.createStatement().execute("CREATE INDEX " + indexName + " ON "
-                    + fullTableName + "(v1)");
-                conn.commit();
-                long disableTS = clock.currentTime();
-                HTableInterface metaTable = conn.unwrap(PhoenixConnection.class).getQueryServices()
-                        .getTable(PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES);
-                IndexUtil.updateIndexState(fullIndexName, disableTS,
-                    metaTable, PIndexState.DISABLE);
-                assertTrue(TestUtil.checkIndexState(conn, fullIndexName,
-                    PIndexState.DISABLE, disableTS));
-                mutateRandomly(fullTableName, nThreads, nRows,
-                    nIndexValues, batchSize, doneSignal);
-                assertTrue("Ran out of time", doneSignal.await(120, TimeUnit.SECONDS));
-                runIndexRebuilder(fullTableName);
-                assertTrue(TestUtil.checkIndexState(conn, fullIndexName,
-                    PIndexState.INACTIVE, disableTS));
-                clock.time += WAIT_AFTER_DISABLED;
-                runIndexRebuilderAsync(500,cancel,fullTableName);
-                unassignRegionAsync(fullIndexName);
-                while (runRebuildOnce) {
-                    PIndexState indexState = TestUtil.getIndexState(conn, fullIndexName);
-                    if (indexState != PIndexState.INACTIVE && indexState != PIndexState.ACTIVE) {
-                        cancel[0] = true;
-                        throw new Exception("Index State should not transtion from INACTIVE to "
-                            + indexState);
-                    }
-                }
-                assertTrue(TestUtil.checkIndexState(conn, fullIndexName, PIndexState.ACTIVE, 0L));
-            } finally {
-                cancel[0] = true;
-                EnvironmentEdgeManager.injectEdge(null);
-            }
-            long totalRows = IndexScrutiny.scrutinizeIndex(conn, fullTableName, fullIndexName);
-            assertEquals(nRows, totalRows);
-        }
-    }
-
     public static class WriteFailingRegionObserver extends SimpleRegionObserver {
         @Override
         public void postBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, MiniBatchOperationInProgress<Mutation> miniBatchOp) throws IOException {
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexScrutinyMapperForTest.java b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexScrutinyMapperForTest.java
index d2a0f35..99d50ee 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexScrutinyMapperForTest.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexScrutinyMapperForTest.java
@@ -28,13 +28,13 @@ public class IndexScrutinyMapperForTest extends IndexScrutinyMapper {
         long delta;
 
         public ScrutinyTestClock(long delta) {
-            initialTime = EnvironmentEdgeManager.currentTimeMillis() + delta;
+            initialTime = System.currentTimeMillis() + delta;
             this.delta = delta;
         }
 
         @Override
         public long currentTime() {
-            return EnvironmentEdgeManager.currentTimeMillis() + delta;
+            return System.currentTimeMillis() + delta;
         }
     }