Author: stack
Date: Tue Dec  7 05:26:39 2010
New Revision: 1042912

URL: http://svn.apache.org/viewvc?rev=1042912&view=rev
Log:
HBASE-3278 AssertionError in LoadBalancer

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLoadBalancer.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1042912&r1=1042911&r2=1042912&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue Dec  7 05:26:39 2010
@@ -746,6 +746,7 @@ Release 0.90.0 - Unreleased
    HBASE-3309  " Not running balancer because dead regionserver processing" is 
a lie
    HBASE-3314  [shell] 'move' is broken
    HBASE-3315  Add debug output for when balancer makes bad balance
+   HBASE-3278  AssertionError in LoadBalancer
 
 
   IMPROVEMENTS

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java?rev=1042912&r1=1042911&r2=1042912&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java 
Tue Dec  7 05:26:39 2010
@@ -259,12 +259,13 @@ public class LoadBalancer {
     for(Map.Entry<HServerInfo, List<HRegionInfo>> server :
       serversByLoad.entrySet()) {
       int regionCount = server.getKey().getLoad().getNumberOfRegions();
+      if (regionCount >= min) break;
       BalanceInfo balanceInfo = serverBalanceInfo.get(server.getKey());
       if(balanceInfo != null) {
         regionCount += balanceInfo.getNumRegionsAdded();
       }
       if(regionCount >= min) {
-        break;
+        continue;
       }
       int numToTake = min - regionCount;
       int numTaken = 0;

Modified: 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLoadBalancer.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLoadBalancer.java?rev=1042912&r1=1042911&r2=1042912&view=diff
==============================================================================
--- 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLoadBalancer.java 
(original)
+++ 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLoadBalancer.java 
Tue Dec  7 05:26:39 2010
@@ -110,7 +110,8 @@ public class TestLoadBalancer {
       new int [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 123 },
       new int [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 155 },
       new int [] { 0, 0, 144, 1, 1, 1, 1, 1123, 133, 138, 12, 1444 },
-      new int [] { 0, 0, 144, 1, 0, 4, 1, 1123, 133, 138, 12, 1444 }
+      new int [] { 0, 0, 144, 1, 0, 4, 1, 1123, 133, 138, 12, 1444 },
+      new int [] { 1538, 1392, 1561, 1557, 1535, 1553, 1385, 1542, 1619 }
   };
 
   int [][] regionsAndServersMocks = new int [][] {


Reply via email to