You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jx...@apache.org on 2012/12/13 20:54:29 UTC
svn commit: r1421455 -
/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java
Author: jxiang
Date: Thu Dec 13 19:54:28 2012
New Revision: 1421455
URL: http://svn.apache.org/viewvc?rev=1421455&view=rev
Log:
HBASE-7343 Fix flaky condition for TestDrainingServer (Himanshu)
Modified:
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java?rev=1421455&r1=1421454&r2=1421455&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/TestDrainingServer.java Thu Dec 13 19:54:28 2012
@@ -54,13 +54,14 @@ public class TestDrainingServer {
private static final byte [] TABLENAME = Bytes.toBytes("t");
private static final byte [] FAMILY = Bytes.toBytes("f");
private static final int COUNT_OF_REGIONS = HBaseTestingUtility.KEYS.length;
+ private static final int NB_SLAVES = 5;
/**
* Spin up a cluster with a bunch of regions on it.
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
- TEST_UTIL.startMiniCluster(5);
+ TEST_UTIL.startMiniCluster(NB_SLAVES);
TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);
ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
HTableDescriptor htd = new HTableDescriptor(TABLENAME);
@@ -73,14 +74,25 @@ public class TestDrainingServer {
createTableDescriptor(fs, FSUtils.getRootDir(TEST_UTIL.getConfiguration()), htd);
// Assign out the regions we just created.
HBaseAdmin admin = new HBaseAdmin(TEST_UTIL.getConfiguration());
+ MiniHBaseCluster cluster = TEST_UTIL.getMiniHBaseCluster();
admin.disableTable(TABLENAME);
admin.enableTable(TABLENAME);
- ZKAssign.blockUntilNoRIT(zkw);
- // Assert that every regionserver has some regions on it.
- MiniHBaseCluster cluster = TEST_UTIL.getMiniHBaseCluster();
- for (int i = 0; i < cluster.getRegionServerThreads().size(); i++) {
- HRegionServer hrs = cluster.getRegionServer(i);
- Assert.assertFalse(hrs.getOnlineRegions().isEmpty());
+ boolean ready = false;
+ while (!ready) {
+ ZKAssign.blockUntilNoRIT(zkw);
+ // Assert that every regionserver has some regions on it, else invoke the balancer.
+ ready = true;
+ for (int i = 0; i < NB_SLAVES; i++) {
+ HRegionServer hrs = cluster.getRegionServer(i);
+ if (hrs.getOnlineRegions().isEmpty()) {
+ ready = false;
+ break;
+ }
+ }
+ if (!ready) {
+ admin.balancer();
+ Thread.sleep(100);
+ }
}
}