Repository: hbase
Updated Branches:
  refs/heads/branch-1.1 1a23f4126 -> 53758a07c


HBASE-13590 TestEnableTableHandler.testEnableTableWithNoRegionServers is flakey 
(Yu Li)


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

Branch: refs/heads/branch-1.1
Commit: 0d843d32b4307630d975e34f20b8da0e9f40f037
Parents: 1a23f41
Author: stack <[email protected]>
Authored: Thu Jan 14 11:54:39 2016 -0800
Committer: stack <[email protected]>
Committed: Fri Feb 5 10:09:51 2016 -0800

----------------------------------------------------------------------
 .../master/handler/TestEnableTableHandler.java  | 32 ++++++++++++++++++--
 1 file changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0d843d32/hbase-server/src/test/java/org/apache/hadoop/hbase/master/handler/TestEnableTableHandler.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/handler/TestEnableTableHandler.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/handler/TestEnableTableHandler.java
index 4f97a2e..8fe2d89 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/handler/TestEnableTableHandler.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/handler/TestEnableTableHandler.java
@@ -20,8 +20,12 @@ package org.apache.hadoop.hbase.master.handler;
 
 import java.io.IOException;
 import java.util.concurrent.CountDownLatch;
+import java.util.ArrayList;
 import java.util.List;
 
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.HConstants;
@@ -98,19 +102,41 @@ public class TestEnableTableHandler {
     cluster.waitForRegionServerToStop(rs.getRegionServer().getServerName(), 
10000);
 
     TEST_UTIL.waitUntilAllRegionsAssigned(TableName.META_TABLE_NAME);
+    LOG.debug("Now enabling table " + tableName);
 
     admin.enableTable(tableName);
     assertTrue(admin.isTableEnabled(tableName));
 
     JVMClusterUtil.RegionServerThread rs2 = cluster.startRegionServer();
-    m.getAssignmentManager().assign(admin.getTableRegions(tableName));
+    
cluster.waitForRegionServerToStart(rs2.getRegionServer().getServerName().getHostname(),
+        rs2.getRegionServer().getServerName().getPort(), 60000);
+
+    // This second region assign action seems to be useless since design of
+    // this case is to make sure that table enabled when no RS up could get
+    // assigned after RS come back
+    List<HRegionInfo> regions = 
TEST_UTIL.getHBaseAdmin().getTableRegions(tableName);
+    assertEquals(1, regions.size());
+    for (HRegionInfo region : regions) {
+      TEST_UTIL.getHBaseAdmin().assign(region.getEncodedNameAsBytes());
+    }
+    LOG.debug("Waiting for table assigned " + tableName);
     TEST_UTIL.waitUntilAllRegionsAssigned(tableName);
+
     List<HRegionInfo> onlineRegions = admin.getOnlineRegions(
         rs2.getRegionServer().getServerName());
-    assertEquals(2, onlineRegions.size());
-    assertEquals(tableName, onlineRegions.get(1).getTable());
+    ArrayList<HRegionInfo> tableRegions = filterTableRegions(tableName, 
onlineRegions);
+    assertEquals(1, tableRegions.size());
   }
 
+  private ArrayList<HRegionInfo> filterTableRegions(final TableName tableName,
+      List<HRegionInfo> onlineRegions) {
+    return Lists.newArrayList(Iterables.filter(onlineRegions, new 
Predicate<HRegionInfo>() {
+      @Override
+      public boolean apply(HRegionInfo input) {
+        return input.getTable().equals(tableName);
+      }
+    }));
+  }
 
   @Test(timeout = 300000)
   public void testDisableTableAndRestart() throws Exception {

Reply via email to