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 2015/02/17 06:00:12 UTC
hbase git commit: HBASE-13041 TestEnableTableHandler should not call
AssignmentManager#assign concurrently with master (Andrey Stepachev)
Repository: hbase
Updated Branches:
refs/heads/master 0d880c99b -> d3621d24d
HBASE-13041 TestEnableTableHandler should not call AssignmentManager#assign concurrently with master (Andrey Stepachev)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d3621d24
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d3621d24
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d3621d24
Branch: refs/heads/master
Commit: d3621d24ded796dc0f50ca4cccfec400837a9e51
Parents: 0d880c9
Author: stack <st...@apache.org>
Authored: Mon Feb 16 21:00:00 2015 -0800
Committer: stack <st...@apache.org>
Committed: Mon Feb 16 21:00:00 2015 -0800
----------------------------------------------------------------------
.../master/handler/TestEnableTableHandler.java | 37 +++++++++++++++-----
1 file changed, 28 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d3621d24/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 d3d6239..6a60fc0 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
@@ -18,8 +18,13 @@
*/
package org.apache.hadoop.hbase.master.handler;
+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.Iterators;
+import com.google.common.collect.Lists;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HConstants;
@@ -81,7 +86,6 @@ public class TestEnableTableHandler {
admin.enableTable(tableName);
TEST_UTIL.waitTableEnabled(tableName);
-
// disable once more
admin.disableTable(tableName);
@@ -91,21 +95,36 @@ public class TestEnableTableHandler {
rs.getRegionServer().stop("stop");
cluster.waitForRegionServerToStop(rs.getRegionServer().getServerName(), 10000);
- EnableTableHandler handler =
- new EnableTableHandler(m, tableName, m.getAssignmentManager(), m.getTableLockManager(),
- true);
- handler.prepare();
- handler.process();
+ 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);
+
+ 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(1, onlineRegions.size());
- 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);
+ }
+ }));
}
/**