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 2013/03/19 00:15:11 UTC

svn commit: r1458061 - /hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java

Author: jxiang
Date: Mon Mar 18 23:15:10 2013
New Revision: 1458061

URL: http://svn.apache.org/r1458061
Log:
HBASE-7597 TestHBaseFsck#testRegionShouldNotBeDeployed seems to be flaky

Modified:
    hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java

Modified: hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java?rev=1458061&r1=1458060&r2=1458061&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java (original)
+++ hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java Mon Mar 18 23:15:10 2013
@@ -1084,7 +1084,7 @@ public class TestHBaseFsck {
   }
 
   /**
-   * the region is not deployed when the table is disabled.
+   * The region is not deployed when the table is disabled.
    */
   @Test
   public void testRegionShouldNotBeDeployed() throws Exception {
@@ -1126,16 +1126,32 @@ public class TestHBaseFsck {
       ZKTable zkTable = cluster.getMaster().getAssignmentManager().getZKTable();
       zkTable.setEnabledTable(table);
       HRegionInfo region = disabledRegions.remove(0);
+      byte[] regionName = region.getRegionName();
+
+      // The region should not be assigned currently
+      assertTrue(cluster.getServerWith(regionName) == -1);
       ZKAssign.createNodeOffline(zkw, region, serverName);
       ProtobufUtil.openRegion(hrs, region);
 
       int iTimes = 0;
-      byte[] regionName = region.getRegionName();
       while (true) {
         if (cluster.getServerWith(regionName) != -1) {
-          // Now, region is deployed, reset the table state back
-          zkTable.setDisabledTable(table);
-          break;
+          List<HRegionInfo> regions = ProtobufUtil.getOnlineRegions(hrs);
+          boolean found = false;
+          for (HRegionInfo hri: regions) {
+            if (Bytes.equals(hri.getRegionName(), regionName)) {
+              found = true;
+              break;
+            }
+          }
+          if (!found) {
+            LOG.info("Region was deployed but not in online " +
+              "region list. This should be transient. Waiting longer");
+          } else {
+            // Now, region is deployed, reset the table state back
+            zkTable.setDisabledTable(table);
+            break;
+          }
         }
         Thread.sleep(100);
         iTimes++;