You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2016/01/14 20:15:31 UTC
hbase git commit: HBASE-13590
TestEnableTableHandler.testEnableTableWithNoRegionServers is flakey (Yu Li)
Repository: hbase
Updated Branches:
refs/heads/branch-1 3c2229a9a -> b753226e7
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/b753226e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b753226e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b753226e
Branch: refs/heads/branch-1
Commit: b753226e72ad3c92d623b6c0c8728af4bf93e15b
Parents: 3c2229a
Author: stack <st...@apache.org>
Authored: Thu Jan 14 11:15:23 2016 -0800
Committer: stack <st...@apache.org>
Committed: Thu Jan 14 11:15:23 2016 -0800
----------------------------------------------------------------------
.../master/handler/TestEnableTableHandler.java | 36 ++++++++++++++++----
1 file changed, 29 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/b753226e/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 f081860..2871340 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;
@@ -100,24 +104,42 @@ 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();
LOG.info("Started new regionserver " + rs2.getRegionServer().getServerName());
- 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());
for (HRegionInfo hri: onlineRegions) LOG.info("Online " + hri);
- assertTrue("Does not have at least one region " + onlineRegions.size(),
- onlineRegions.size() >= 1);
- // Disabling this assert. Saw this which seems legit:
- // TestEnableTableHandler.testEnableTableWithNoRegionServers:115
- // expected:<testEnableTableWithNoRegionServers> but was:<hbase:namespace>
- // assertEquals(tableName, onlineRegions.get(0).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 {