You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by hu...@apache.org on 2020/04/10 04:08:22 UTC

[hbase] branch branch-2.3 updated: HBASE-24159 [flakey test] regionserver.TestRegionMergeTransactionOnCluster (#1472) (#1475)

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

huaxiangsun pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.3 by this push:
     new eae7523  HBASE-24159 [flakey test] regionserver.TestRegionMergeTransactionOnCluster (#1472) (#1475)
eae7523 is described below

commit eae7523cefeb3893ccedb4c69c31686145c3c83e
Author: huaxiangsun <hu...@apache.org>
AuthorDate: Thu Apr 9 21:08:10 2020 -0700

    HBASE-24159 [flakey test] regionserver.TestRegionMergeTransactionOnCluster (#1472) (#1475)
    
    Delete tables after each test cases to avoid polluting states.
    
    Signed-off-by: stack <st...@apache.org>
---
 .../TestRegionMergeTransactionOnCluster.java       | 139 +++++++++++----------
 1 file changed, 71 insertions(+), 68 deletions(-)

diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java
index e156ba8..7f56f2d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java
@@ -140,37 +140,36 @@ public class TestRegionMergeTransactionOnCluster {
     LOG.info("Starting " + name.getMethodName());
     final TableName tableName = TableName.valueOf(name.getMethodName());
 
-    // Create table and load data.
-    Table table = createTableAndLoadData(MASTER, tableName);
-    // Merge 1st and 2nd region
-    mergeRegionsAndVerifyRegionNum(MASTER, tableName, 0, 1,
-        INITIAL_REGION_NUM - 1);
+    try {
+      // Create table and load data.
+      Table table = createTableAndLoadData(MASTER, tableName);
+      // Merge 1st and 2nd region
+      mergeRegionsAndVerifyRegionNum(MASTER, tableName, 0, 1, INITIAL_REGION_NUM - 1);
 
-    // Merge 2nd and 3th region
-    PairOfSameType<RegionInfo> mergedRegions =
-      mergeRegionsAndVerifyRegionNum(MASTER, tableName, 1, 2,
-        INITIAL_REGION_NUM - 2);
+      // Merge 2nd and 3th region
+      PairOfSameType<RegionInfo> mergedRegions =
+        mergeRegionsAndVerifyRegionNum(MASTER, tableName, 1, 2, INITIAL_REGION_NUM - 2);
 
-    verifyRowCount(table, ROWSIZE);
+      verifyRowCount(table, ROWSIZE);
 
-    // Randomly choose one of the two merged regions
-    RegionInfo hri = RandomUtils.nextBoolean() ?
-      mergedRegions.getFirst() : mergedRegions.getSecond();
-    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
-    AssignmentManager am = cluster.getMaster().getAssignmentManager();
-    RegionStates regionStates = am.getRegionStates();
+      // Randomly choose one of the two merged regions
+      RegionInfo hri = RandomUtils.nextBoolean() ? mergedRegions.getFirst() : mergedRegions.getSecond();
+      MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
+      AssignmentManager am = cluster.getMaster().getAssignmentManager();
+      RegionStates regionStates = am.getRegionStates();
 
-    // We should not be able to assign it again
-    am.assign(hri);
-    assertFalse("Merged region can't be assigned",
-      regionStates.isRegionInTransition(hri));
+      // We should not be able to assign it again
+      am.assign(hri);
+      assertFalse("Merged region can't be assigned", regionStates.isRegionInTransition(hri));
 
-    // We should not be able to unassign it either
-    am.unassign(hri);
-    assertFalse("Merged region can't be unassigned",
-      regionStates.isRegionInTransition(hri));
+      // We should not be able to unassign it either
+      am.unassign(hri);
+      assertFalse("Merged region can't be unassigned", regionStates.isRegionInTransition(hri));
 
-    table.close();
+      table.close();
+    } finally {
+      TEST_UTIL.deleteTable(tableName);
+    }
   }
 
   /**
@@ -181,27 +180,31 @@ public class TestRegionMergeTransactionOnCluster {
   public void testMergeAndRestartingMaster() throws Exception {
     final TableName tableName = TableName.valueOf(name.getMethodName());
 
-    // Create table and load data.
-    Table table = createTableAndLoadData(MASTER, tableName);
-
     try {
-      MyMasterRpcServices.enabled.set(true);
+      // Create table and load data.
+      Table table = createTableAndLoadData(MASTER, tableName);
 
-      // Merge 1st and 2nd region
-      mergeRegionsAndVerifyRegionNum(MASTER, tableName, 0, 1, INITIAL_REGION_NUM - 1);
+      try {
+        MyMasterRpcServices.enabled.set(true);
+
+        // Merge 1st and 2nd region
+        mergeRegionsAndVerifyRegionNum(MASTER, tableName, 0, 1, INITIAL_REGION_NUM - 1);
+      } finally {
+        MyMasterRpcServices.enabled.set(false);
+      }
+
+      table.close();
     } finally {
-      MyMasterRpcServices.enabled.set(false);
+      TEST_UTIL.deleteTable(tableName);
     }
-
-    table.close();
   }
 
   @Test
   public void testCleanMergeReference() throws Exception {
     LOG.info("Starting " + name.getMethodName());
     ADMIN.enableCatalogJanitor(false);
+    final TableName tableName = TableName.valueOf(name.getMethodName());
     try {
-      final TableName tableName = TableName.valueOf(name.getMethodName());
       // Create table and load data.
       Table table = createTableAndLoadData(MASTER, tableName);
       // Merge 1st and 2nd region
@@ -304,6 +307,7 @@ public class TestRegionMergeTransactionOnCluster {
       assertFalse(MetaTableAccessor.hasMergeRegions(mergedRegionResult.rawCells()));
     } finally {
       ADMIN.enableCatalogJanitor(true);
+      TEST_UTIL.deleteTable(tableName);
     }
   }
 
@@ -368,40 +372,39 @@ public class TestRegionMergeTransactionOnCluster {
   @Test
   public void testMergeWithReplicas() throws Exception {
     final TableName tableName = TableName.valueOf(name.getMethodName());
-    // Create table and load data.
-    createTableAndLoadData(MASTER, tableName, 5, 2);
-    List<Pair<RegionInfo, ServerName>> initialRegionToServers =
-        MetaTableAccessor.getTableRegionsAndLocations(
-            TEST_UTIL.getConnection(), tableName);
-    // Merge 1st and 2nd region
-    PairOfSameType<RegionInfo> mergedRegions = mergeRegionsAndVerifyRegionNum(MASTER, tableName,
-        0, 2, 5 * 2 - 2);
-    List<Pair<RegionInfo, ServerName>> currentRegionToServers =
-        MetaTableAccessor.getTableRegionsAndLocations(
-            TEST_UTIL.getConnection(), tableName);
-    List<RegionInfo> initialRegions = new ArrayList<>();
-    for (Pair<RegionInfo, ServerName> p : initialRegionToServers) {
-      initialRegions.add(p.getFirst());
-    }
-    List<RegionInfo> currentRegions = new ArrayList<>();
-    for (Pair<RegionInfo, ServerName> p : currentRegionToServers) {
-      currentRegions.add(p.getFirst());
+    try {
+      // Create table and load data.
+      Table table = createTableAndLoadData(MASTER, tableName, 5, 2);
+      List<Pair<RegionInfo, ServerName>> initialRegionToServers =
+        MetaTableAccessor.getTableRegionsAndLocations(TEST_UTIL.getConnection(), tableName);
+      // Merge 1st and 2nd region
+      PairOfSameType<RegionInfo> mergedRegions =
+        mergeRegionsAndVerifyRegionNum(MASTER, tableName, 0, 2, 5 * 2 - 2);
+      List<Pair<RegionInfo, ServerName>> currentRegionToServers =
+        MetaTableAccessor.getTableRegionsAndLocations(TEST_UTIL.getConnection(), tableName);
+      List<RegionInfo> initialRegions = new ArrayList<>();
+      for (Pair<RegionInfo, ServerName> p : initialRegionToServers) {
+        initialRegions.add(p.getFirst());
+      }
+      List<RegionInfo> currentRegions = new ArrayList<>();
+      for (Pair<RegionInfo, ServerName> p : currentRegionToServers) {
+        currentRegions.add(p.getFirst());
+      }
+      assertTrue(initialRegions.contains(mergedRegions.getFirst())); //this is the first region
+      assertTrue(initialRegions.contains(RegionReplicaUtil
+        .getRegionInfoForReplica(mergedRegions.getFirst(), 1))); //this is the replica of the first region
+      assertTrue(initialRegions.contains(mergedRegions.getSecond())); //this is the second region
+      assertTrue(initialRegions.contains(RegionReplicaUtil
+        .getRegionInfoForReplica(mergedRegions.getSecond(), 1))); //this is the replica of the second region
+      assertTrue(!initialRegions.contains(currentRegions.get(0))); //this is the new region
+      assertTrue(!initialRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(currentRegions.get(0), 1))); //replica of the new region
+      assertTrue(currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(currentRegions.get(0), 1))); //replica of the new region
+      assertTrue(!currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(mergedRegions.getFirst(), 1))); //replica of the merged region
+      assertTrue(!currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(mergedRegions.getSecond(), 1))); //replica of the merged region
+      table.close();
+    } finally {
+      TEST_UTIL.deleteTable(tableName);
     }
-    assertTrue(initialRegions.contains(mergedRegions.getFirst())); //this is the first region
-    assertTrue(initialRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        mergedRegions.getFirst(), 1))); //this is the replica of the first region
-    assertTrue(initialRegions.contains(mergedRegions.getSecond())); //this is the second region
-    assertTrue(initialRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        mergedRegions.getSecond(), 1))); //this is the replica of the second region
-    assertTrue(!initialRegions.contains(currentRegions.get(0))); //this is the new region
-    assertTrue(!initialRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        currentRegions.get(0), 1))); //replica of the new region
-    assertTrue(currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        currentRegions.get(0), 1))); //replica of the new region
-    assertTrue(!currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        mergedRegions.getFirst(), 1))); //replica of the merged region
-    assertTrue(!currentRegions.contains(RegionReplicaUtil.getRegionInfoForReplica(
-        mergedRegions.getSecond(), 1))); //replica of the merged region
   }
 
   private PairOfSameType<RegionInfo> mergeRegionsAndVerifyRegionNum(