Repository: hbase
Updated Branches:
  refs/heads/branch-1.2 443de6ef4 -> 7622d1b3e


HBASE-14291 NPE On StochasticLoadBalancer Balance Involving RS With No Regions


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

Branch: refs/heads/branch-1.2
Commit: 7622d1b3e8e82add7175d1b6153fd0735a93498f
Parents: 443de6e
Author: tedyu <[email protected]>
Authored: Sat Aug 22 14:49:37 2015 -0700
Committer: Elliott Clark <[email protected]>
Committed: Mon Oct 19 19:29:00 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/master/balancer/BaseLoadBalancer.java       | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/7622d1b3/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
index 26f3570..c6068b7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
@@ -844,7 +844,13 @@ public abstract class BaseLoadBalancer implements 
LoadBalancer {
         int leastLoadedServerIndex = -1;
         int load = Integer.MAX_VALUE;
         for (ServerName sn : topLocalServers) {
-          int index = serversToIndex.get(sn);
+          if (!serversToIndex.containsKey(sn.getHostAndPort())) {
+            continue;
+          }
+          int index = serversToIndex.get(sn.getHostAndPort());
+          if (regionsPerServer[index] == null) {
+            continue;
+          }
           int tempLoad = regionsPerServer[index].length;
           if (tempLoad <= load) {
             leastLoadedServerIndex = index;

Reply via email to