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

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

commit 97b9fc9187f8c58034c65462fa7beda0de22a069
Author: Guanghao Zhang <[email protected]>
AuthorDate: Mon Mar 4 15:58:09 2019 +0800

    Revert "HBASE-20194 Remove the explicit timeout config for 
TestTruncateTableProcedure"
    
    This reverts commit 23556fb655eb60df7020da168eb6a58ff9b73ac1.
---
 .../procedure/TestTruncateTableProcedure.java      | 38 ++++++++++++----------
 1 file changed, 20 insertions(+), 18 deletions(-)

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 7fa2a9e..bf5ae30 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.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);
 
@@ -315,7 +315,7 @@ public class TestTruncateTableProcedure extends 
TestTableDDLProcedureBase {
     ProcedureTestingUtility.assertProcNotFailed(procExec, procId);
   }
 
-  @Test
+  @Test(timeout = 60000)
   public void testTruncateWithPreserveAfterSplit() throws Exception {
     String[] families = new String[] { "f1", "f2" };
     byte[][] splitKeys =
@@ -323,10 +323,10 @@ public class TestTruncateTableProcedure extends 
TestTableDDLProcedureBase {
     TableName tableName = TableName.valueOf(name.getMethodName());
     RegionInfo[] regions = 
MasterProcedureTestingUtility.createTable(getMasterProcedureExecutor(),
       tableName, splitKeys, families);
-    splitAndTruncate(tableName, regions, 1);
+    splitAndTruncate(tableName, regions);
   }
 
-  @Test
+  @Test(timeout = 60000)
   public void testTruncatePreserveWithReplicaRegionAfterSplit() throws 
Exception {
     String[] families = new String[] { "f1", "f2" };
     byte[][] splitKeys =
@@ -334,10 +334,12 @@ 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();
@@ -345,17 +347,20 @@ public class TestTruncateTableProcedure extends 
TestTableDDLProcedureBase {
       new CreateTableProcedure(procExec.getEnvironment(), htd, regions));
     ProcedureTestingUtility.assertProcNotFailed(procExec.getResult(procId));
 
-    splitAndTruncate(tableName, regions, 3);
+    splitAndTruncate(tableName, regions);
   }
 
-  private void splitAndTruncate(TableName tableName, RegionInfo[] regions, int 
regionReplication)
-      throws IOException, InterruptedException {
+  private void splitAndTruncate(TableName tableName, RegionInfo[] regions) 
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
-    UTIL.waitFor(60000,
-      () -> UTIL.getAdmin().getRegions(tableName).size() > regions.length * 
regionReplication);
+    while (UTIL.getAdmin().getRegions(tableName).size() <= regions.length) {
+      Thread.sleep(50);
+    }
 
     // disable the table
     UTIL.getAdmin().disableTable(tableName);
@@ -367,8 +372,5 @@ 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());
   }
 }

Reply via email to