You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/08/22 06:27:28 UTC

hbase git commit: HBASE-20194 Remove the explicit timeout config for TestTruncateTableProcedure

Repository: hbase
Updated Branches:
  refs/heads/master c01d4d3a3 -> 74ea01116


HBASE-20194 Remove the explicit timeout config for TestTruncateTableProcedure


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/74ea0111
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/74ea0111
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/74ea0111

Branch: refs/heads/master
Commit: 74ea0111696e2a01a478fd7e11cfad14d1bfc3b5
Parents: c01d4d3
Author: Duo Zhang <zh...@apache.org>
Authored: Wed Aug 22 11:29:23 2018 +0800
Committer: Duo Zhang <zh...@apache.org>
Committed: Wed Aug 22 14:27:11 2018 +0800

----------------------------------------------------------------------
 .../procedure/TestTruncateTableProcedure.java   | 37 ++++++++++----------
 1 file changed, 18 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/74ea0111/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java
index ea6ee0e..5b38b17 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java
@@ -55,12 +55,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
 
-@Category({MasterTests.class, MediumTests.class})
+@Category({ MasterTests.class, MediumTests.class })
 public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
 
   @ClassRule
   public static final HBaseClassTestRule CLASS_RULE =
-      HBaseClassTestRule.forClass(TestTruncateTableProcedure.class);
+    HBaseClassTestRule.forClass(TestTruncateTableProcedure.class);
 
   private static final Logger LOG = LoggerFactory.getLogger(TestTruncateTableProcedure.class);
 
@@ -316,7 +316,7 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
     ProcedureTestingUtility.assertProcNotFailed(procExec, procId);
   }
 
-  @Test(timeout = 60000)
+  @Test
   public void testTruncateWithPreserveAfterSplit() throws Exception {
     String[] families = new String[] { "f1", "f2" };
     byte[][] splitKeys =
@@ -324,10 +324,10 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
     TableName tableName = TableName.valueOf(name.getMethodName());
     RegionInfo[] regions = MasterProcedureTestingUtility.createTable(getMasterProcedureExecutor(),
       tableName, splitKeys, families);
-    splitAndTruncate(tableName, regions);
+    splitAndTruncate(tableName, regions, 1);
   }
 
-  @Test(timeout = 60000)
+  @Test
   public void testTruncatePreserveWithReplicaRegionAfterSplit() throws Exception {
     String[] families = new String[] { "f1", "f2" };
     byte[][] splitKeys =
@@ -335,12 +335,10 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
     TableName tableName = TableName.valueOf(name.getMethodName());
 
     // create a table with region replications
-    TableDescriptor htd = TableDescriptorBuilder.newBuilder(tableName)
-      .setRegionReplication(3)
-      .setColumnFamilies(
-        Arrays.stream(families)
-         .map(fam -> ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(fam)).build())
-         .collect(Collectors.toList()))
+    TableDescriptor htd = TableDescriptorBuilder.newBuilder(tableName).setRegionReplication(3)
+      .setColumnFamilies(Arrays.stream(families)
+        .map(fam -> ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(fam)).build())
+        .collect(Collectors.toList()))
       .build();
     RegionInfo[] regions = ModifyRegionUtils.createRegionInfos(htd, splitKeys);
     ProcedureExecutor<MasterProcedureEnv> procExec = getMasterProcedureExecutor();
@@ -348,20 +346,18 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
       new CreateTableProcedure(procExec.getEnvironment(), htd, regions));
     ProcedureTestingUtility.assertProcNotFailed(procExec.getResult(procId));
 
-    splitAndTruncate(tableName, regions);
+    splitAndTruncate(tableName, regions, 3);
   }
 
-  private void splitAndTruncate(TableName tableName, RegionInfo[] regions) throws IOException,
-    InterruptedException {
-
+  private void splitAndTruncate(TableName tableName, RegionInfo[] regions, int regionReplication)
+      throws IOException, InterruptedException {
     // split a region
-    UTIL.getAdmin().split(tableName, new byte[]{'0'});
+    UTIL.getAdmin().split(tableName, new byte[] { '0' });
     UTIL.waitUntilAllRegionsAssigned(tableName);
 
     // wait until split really happens
-    while (UTIL.getAdmin().getRegions(tableName).size() <= regions.length) {
-      Thread.sleep(50);
-    }
+    UTIL.waitFor(60000,
+      () -> UTIL.getAdmin().getRegions(tableName).size() > regions.length * regionReplication);
 
     // disable the table
     UTIL.getAdmin().disableTable(tableName);
@@ -373,5 +369,8 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase {
     ProcedureTestingUtility.assertProcNotFailed(procExec, procId);
 
     UTIL.waitUntilAllRegionsAssigned(tableName);
+    // confirm that we have the correct number of regions
+    assertEquals((regions.length + 1) * regionReplication,
+      UTIL.getAdmin().getRegions(tableName).size());
   }
 }