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/11/08 17:43:31 UTC

[2/8] hbase git commit: HBASE-19194 TestRSGroupsBase has some always false checks

HBASE-19194 TestRSGroupsBase has some always false checks


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

Branch: refs/heads/branch-1.4
Commit: 9cf45411ff5d25e222da662ec3a468d72ac6b72a
Parents: 7c8d769
Author: Andrew Purtell <ap...@apache.org>
Authored: Tue Nov 7 15:53:25 2017 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Tue Nov 7 17:14:17 2017 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java    | 8 ++++++--
 .../main/java/org/apache/hadoop/hbase/master/HMaster.java    | 8 +++++++-
 2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/9cf45411/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
index a0d1401..a23a430 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
@@ -414,7 +414,7 @@ public abstract class TestRSGroupsBase {
         getTableServerRegionMap().get(tableName);
     final ServerName first = assignMap.entrySet().iterator().next().getKey();
     for(HRegionInfo region: admin.getTableRegions(tableName)) {
-      if(!assignMap.get(first).contains(region)) {
+      if(!assignMap.get(first).contains(region.getRegionNameAsString())) {
         admin.move(region.getEncodedNameAsBytes(), Bytes.toBytes(first.getServerName()));
       }
     }
@@ -516,7 +516,11 @@ public abstract class TestRSGroupsBase {
     });
 
     //verify that targetServer didn't open it
-    assertFalse(ProtobufUtil.getOnlineRegions(targetRS).contains(targetRegion));
+    for (HRegionInfo region: ProtobufUtil.getOnlineRegions(targetRS)) {
+      if (targetRegion.equals(region.getRegionNameAsString())) {
+        fail("Target server opened region");
+      }
+    }
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/hbase/blob/9cf45411/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 558d303..43ead37 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -181,6 +181,7 @@ import org.mortbay.jetty.servlet.Context;
 import org.mortbay.jetty.servlet.ServletHolder;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.protobuf.Descriptors;
 import com.google.protobuf.Service;
@@ -1666,7 +1667,12 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
         return;
       }
     } else {
-      dest = ServerName.valueOf(Bytes.toString(destServerName));
+      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));
+      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));
+      if (dest == null) {
+        LOG.debug("Unable to determine a plan to assign " + hri);
+        return;
+      }
       if (dest.equals(serverName) && balancer instanceof BaseLoadBalancer
           && !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {
         // To avoid unnecessary region moving later by balancer. Don't put user