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

[2/2] hbase git commit: HBASE-18923 TestTableResource flaky on branch-1

HBASE-18923 TestTableResource flaky on branch-1

Signed-off-by: Andrew Purtell <ap...@apache.org>


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

Branch: refs/heads/branch-1.4
Commit: ab8b0a36624e294cc5d9690fde3fca796449b58c
Parents: 4358af2
Author: Pankaj Kumar <pa...@huawei.com>
Authored: Thu Oct 5 11:44:29 2017 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Oct 9 16:52:18 2017 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/rest/TestTableResource.java    | 27 ++++++++++----------
 1 file changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/ab8b0a36/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
index a7de2f1..3abcb4a 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
@@ -42,6 +42,7 @@ import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.Waiter;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Durability;
@@ -57,7 +58,7 @@ import org.apache.hadoop.hbase.rest.model.TableModel;
 import org.apache.hadoop.hbase.rest.model.TableRegionModel;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.util.StringUtils;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -119,26 +120,26 @@ public class TestTableResource {
     table.close();
     // get the initial layout (should just be one region)
     
-    RegionLocator regionLocator = connection.getRegionLocator(TABLE);
+    final RegionLocator regionLocator = connection.getRegionLocator(TABLE);
     List<HRegionLocation> m = regionLocator.getAllRegionLocations();
     assertEquals(m.size(), 1);
     // tell the master to split the table
     admin.split(TABLE);
-    // give some time for the split to happen
 
-    long timeout = System.currentTimeMillis() + (15 * 1000);
-    while (System.currentTimeMillis() < timeout && m.size()!=2){
-      try {
-        Thread.sleep(250);
-      } catch (InterruptedException e) {
-        LOG.warn(StringUtils.stringifyException(e));
+    // give some time for the split to happen
+    long timeout = EnvironmentEdgeManager.currentTime() + (15 * 1000);
+    TEST_UTIL.waitFor(timeout, 250, new Waiter.Predicate<IOException>() {
+      @Override
+      public boolean evaluate() throws IOException {
+        List<HRegionLocation> regionLocations = regionLocator.getAllRegionLocations();
+        return regionLocations.size() == 2 && regionLocations.get(0).getServerName() != null
+            && regionLocations.get(1).getServerName() != null;
       }
-      // check again
-      m = regionLocator.getAllRegionLocations();
-    }
+    });
+    m = regionLocator.getAllRegionLocations();
 
     // should have two regions now
-    assertEquals(m.size(), 2);
+    assertEquals(2, m.size());
     regionMap = m;
     LOG.info("regions: " + regionMap);
     regionLocator.close();