From 0a579c4c5439fb84245ce7d07ce8ed1b7c9d2a83 Mon Sep 17 00:00:00 2001 From: Nikhil Bafna Date: Wed, 17 Apr 2019 11:24:41 +0530 Subject: [PATCH] Fix FavoredStochasticBalancer balance of misplaced regions --- .../master/balancer/FavoredStochasticBalancer.java | 10 ++-------- .../balancer/TestFavoredStochasticLoadBalancer.java | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java index 5a6659e271..edfeaa76c7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java @@ -715,16 +715,10 @@ public class FavoredStochasticBalancer extends StochasticLoadBalancer implements regions.add(hri); } else { - // No favored nodes, lets unassign. + // No favored nodes LOG.warn("Region not on favored nodes, unassign. Region: " + hri + " current: " + current + " favored nodes: " + favoredNodes); - try { - this.services.getAssignmentManager().unassign(hri); - } catch (IOException e) { - LOG.warn("Failed unassign", e); - continue; - } - RegionPlan rp = new RegionPlan(hri, null, null); + RegionPlan rp = new RegionPlan(hri, current, null); regionPlans.add(rp); misplacedRegions++; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java index 494fca32e6..d3c0d06bd8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java @@ -279,7 +279,7 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { checkFavoredNodeAssignments(tableName, fnm, regionStates); } - @Ignore @Test + @Test public void testMisplacedRegions() throws Exception { TableName tableName = TableName.valueOf("testMisplacedRegions"); -- 2.17.2 (Apple Git-113)