Index: hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java (revision 1582543) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java (working copy) @@ -33,10 +33,12 @@ import org.apache.hadoop.hbase.catalog.MetaReader; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.master.RegionStates; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.JVMClusterUtil; +import org.apache.hadoop.hbase.util.Threads; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -118,10 +120,10 @@ UTIL.getHBaseCluster().getMaster().balance(); assertRegionsAreBalanced(); - // On a balanced cluster, calling balance() should return false - assert(UTIL.getHBaseCluster().getMaster().balance() == false); + // On a balanced cluster, calling balance() should return true + assert(UTIL.getHBaseCluster().getMaster().balance() == true); - // However if we add a server, then the balance() call should return true + // if we add a server, then the balance() call should return true // add a region server - total of 3 LOG.info("Started third server=" + UTIL.getHBaseCluster().startRegionServer().getRegionServer().getServerName()); @@ -198,7 +200,7 @@ if (!(serverLoad <= avgLoadPlusSlop && serverLoad >= avgLoadMinusSlop)) { LOG.debug(server.getServerName() + " Isn't balanced!!! Avg: " + avg + " actual: " + serverLoad + " slop: " + slop); - success = false; + success = false; break; } } @@ -246,6 +248,10 @@ Thread.sleep(200); } catch (InterruptedException e) {} } + RegionStates regionStates = UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates(); + while (!regionStates.getRegionsInTransition().isEmpty()) { + Threads.sleep(100); + } } }