You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/05/02 20:18:30 UTC

svn commit: r1591996 - in /hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase: master/RegionMovementTestHelper.java util/TestDrainRegionServer.java

Author: liyin
Date: Fri May  2 18:18:30 2014
New Revision: 1591996

URL: http://svn.apache.org/r1591996
Log:
[master] Make TestDrainRegionServer stable.

Author: elliott

Summary: Make sure TestDrainRegionServer is stable by waiting for all regions to settle.

Test Plan: run TestDrainRegionServer 25x locally.

Reviewers: daviddeng, aaiyer

Reviewed By: daviddeng

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D1307493

Task ID: 4179922

Modified:
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/RegionMovementTestHelper.java
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestDrainRegionServer.java

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/RegionMovementTestHelper.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/RegionMovementTestHelper.java?rev=1591996&r1=1591995&r2=1591996&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/RegionMovementTestHelper.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/RegionMovementTestHelper.java Fri May  2 18:18:30 2014
@@ -47,7 +47,7 @@ public class RegionMovementTestHelper ex
 
   private static final Log LOG = LogFactory.getLog(RegionMovementTestHelper.class);
 
-  private static int sleepTime = 10;
+  private static int sleepTime = 100;
   private int lastRegionOpenedCount = 0;
 
   public RegionMovementTestHelper() {

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestDrainRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestDrainRegionServer.java?rev=1591996&r1=1591995&r2=1591996&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestDrainRegionServer.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestDrainRegionServer.java Fri May  2 18:18:30 2014
@@ -19,10 +19,9 @@
  */
 package org.apache.hadoop.hbase.util;
 
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HServerInfo;
 import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.master.RegionMovementTestHelper;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.HRegionServer;
 import org.apache.hadoop.hbase.master.AssignmentPlan;
@@ -45,7 +44,7 @@ import static org.junit.Assert.fail;
  */
 public class TestDrainRegionServer {
 
-  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
+  private final static RegionMovementTestHelper TEST_UTIL = new RegionMovementTestHelper();
   private static final byte[] FAM_NAM = Bytes.toBytes("f");
 
   private static final int REGION_SERVERS = 5;
@@ -62,8 +61,9 @@ public class TestDrainRegionServer {
 
     byte[] tableName = Bytes.toBytes("testBlacklistRegionServerWithoutTimeout");
 
-    HTable table = TEST_UTIL.createTable(tableName, FAM_NAM);
-    TEST_UTIL.createMultiRegions(table, FAM_NAM);
+    HTable table = TEST_UTIL.createTable(
+        new StringBytes(tableName), new byte[][] { FAM_NAM } , 1, TEST_UTIL.getTmpKeys());
+    table.close();
 
     List<JVMClusterUtil.RegionServerThread> servers =
         TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads();
@@ -73,13 +73,13 @@ public class TestDrainRegionServer {
     TEST_UTIL.getHBaseCluster().getMaster().regionPlacement.updateAssignmentPlan(ap);
 
     // Wait for rebalance to to complete
-    Thread.sleep(60000);
+    TEST_UTIL.waitOnStableRegionMovement();
 
     HRegionServer server = null;
 
     // Lets select a server which does not have META/ROOT
-    for (int i = 0; i < servers.size(); i++) {
-      server = servers.get(i).getRegionServer();
+    for (JVMClusterUtil.RegionServerThread serverThread : servers) {
+      server = serverThread.getRegionServer();
       for (HRegion region : server.getOnlineRegions()) {
         if (region.getRegionInfo().isMetaRegion() ||
             region.getRegionInfo().isRootRegion() ||
@@ -107,10 +107,14 @@ public class TestDrainRegionServer {
 
     rollingRestart.drainServer(drainFile);
 
+    TEST_UTIL.waitOnStableRegionMovement();
+
     assertEquals("Drained server expected to have 0 online regions", 0, server.getOnlineRegions().size());
 
     rollingRestart.undrainServer(drainFile);
 
+    TEST_UTIL.waitOnStableRegionMovement();
+
     assertEquals("Undrained server expected to have same number of online regions as before",
       regionsCount, server.getOnlineRegions().size());
   }