You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2011/11/27 17:21:11 UTC

svn commit: r1206755 - in /hbase/trunk: ./ src/test/java/org/apache/hadoop/hbase/ src/test/java/org/apache/hadoop/hbase/master/ src/test/java/org/apache/hadoop/hbase/util/hbck/

Author: tedyu
Date: Sun Nov 27 16:21:10 2011
New Revision: 1206755

URL: http://svn.apache.org/viewvc?rev=1206755&view=rev
Log:
HBASE-4868  TestOfflineMetaRebuildBase#testMetaRebuild occasionally fails
               (Gao Jinchao)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Sun Nov 27 16:21:10 2011
@@ -460,6 +460,8 @@ Release 0.92.0 - Unreleased
    HBASE-4790  Occasional TestDistributedLogSplitting failure (Jinchao)
    HBASE-4864  TestMasterObserver#testRegionTransitionOperations occasionally
                fails (Gao Jinchao)
+   HBASE-4868  TestOfflineMetaRebuildBase#testMetaRebuild occasionally fails
+               (Gao Jinchao)
 
   IMPROVEMENTS
    HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java Sun Nov 27 16:21:10 2011
@@ -1559,34 +1559,46 @@ public class HBaseTestingUtility {
   }
   
   /**
-   * Creates an znode with OPENED state.
+   * Gets a ZooKeeperWatcher.
    * @param TEST_UTIL
-   * @param region
-   * @param serverName
-   * @return
-   * @throws IOException
-   * @throws ZooKeeperConnectionException
-   * @throws KeeperException
-   * @throws NodeExistsException
    */
-  public static ZooKeeperWatcher createAndForceNodeToOpenedState(
-      HBaseTestingUtility TEST_UTIL, HRegion region,
-      ServerName serverName) throws ZooKeeperConnectionException,
-      IOException, KeeperException, NodeExistsException {
+  public static ZooKeeperWatcher getZooKeeperWatcher(
+      HBaseTestingUtility TEST_UTIL) throws ZooKeeperConnectionException,
+      IOException {
     ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
         "unittest", new Abortable() {
           boolean aborted = false;
+
           @Override
           public void abort(String why, Throwable e) {
             aborted = true;
             throw new RuntimeException("Fatal ZK error, why=" + why, e);
           }
+
           @Override
           public boolean isAborted() {
             return aborted;
           }
         });
-
+    return zkw;
+  }
+  
+  /**
+   * Creates a znode with OPENED state.
+   * @param TEST_UTIL
+   * @param region
+   * @param serverName
+   * @return
+   * @throws IOException
+   * @throws ZooKeeperConnectionException
+   * @throws KeeperException
+   * @throws NodeExistsException
+   */
+  public static ZooKeeperWatcher createAndForceNodeToOpenedState(
+      HBaseTestingUtility TEST_UTIL, HRegion region,
+      ServerName serverName) throws ZooKeeperConnectionException,
+      IOException, KeeperException, NodeExistsException {
+    ZooKeeperWatcher zkw = getZooKeeperWatcher(TEST_UTIL);
     ZKAssign.createNodeOffline(zkw, region.getRegionInfo(), serverName);
     int version = ZKAssign.transitionNodeOpening(zkw, region
         .getRegionInfo(), serverName);

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java Sun Nov 27 16:21:10 2011
@@ -306,21 +306,7 @@ public class TestMasterFailover {
     log("Cluster started");
 
     // Create a ZKW to use in the test
-    ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
-      "unittest", new Abortable() {
-    	boolean aborted = false;
-        @Override
-        public void abort(String why, Throwable e) {
-          this.aborted = true;
-          throw new RuntimeException("Fatal ZK error, why=" + why, e);
-        }
-        
-        @Override
-        public boolean isAborted() {
-          return this.aborted;
-        }
-        
-    });
+    ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
 
     // get all the master threads
     List<MasterThread> masterThreads = cluster.getMasterThreads();

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java Sun Nov 27 16:21:10 2011
@@ -29,9 +29,11 @@ import org.apache.hadoop.hbase.MediumTes
 import org.apache.hadoop.hbase.client.HConnectionManager;
 import org.apache.hadoop.hbase.util.HBaseFsck;
 import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE;
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
-
+import org.apache.hadoop.hbase.zookeeper.ZKAssign;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
 /**
  * This builds a table, removes info from meta, and then rebuilds meta.
  */
@@ -64,6 +66,12 @@ public class TestOfflineMetaRebuildBase 
     // bring up the minicluster
     TEST_UTIL.startMiniZKCluster(); // tables seem enabled by default
     TEST_UTIL.restartHBaseCluster(3);
+    
+    ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
+    
+    LOG.info("Waiting for no more RIT");
+    ZKAssign.blockUntilNoRIT(zkw);
+    LOG.info("No more RIT in ZK, now doing final test verification");
 
     // everything is good again.
     assertEquals(4, scanMeta());

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java Sun Nov 27 16:21:10 2011
@@ -24,10 +24,13 @@ import static org.junit.Assert.assertFal
 
 import java.util.Arrays;
 
+import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MediumTests;
 import org.apache.hadoop.hbase.util.HBaseFsck;
 import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE;
+import org.apache.hadoop.hbase.zookeeper.ZKAssign;
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -67,6 +70,12 @@ public class TestOfflineMetaRebuildHole 
     TEST_UTIL.startMiniZKCluster(); // tables seem enabled by default
     TEST_UTIL.restartHBaseCluster(3);
 
+    ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
+
+    LOG.info("Waiting for no more RIT");
+    ZKAssign.blockUntilNoRIT(zkw);
+    LOG.info("No more RIT in ZK, now doing final test verification");
+
     // Meta still messed up.
     assertEquals(0, scanMeta());
     HTableDescriptor[] htbls = TEST_UTIL.getHBaseAdmin().listTables();

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java?rev=1206755&r1=1206754&r2=1206755&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java Sun Nov 27 16:21:10 2011
@@ -24,15 +24,18 @@ import static org.junit.Assert.assertFal
 
 import java.util.Arrays;
 
+import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MediumTests;
 import org.apache.hadoop.hbase.util.HBaseFsck;
 import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE;
 import org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo;
+import org.apache.hadoop.hbase.zookeeper.ZKAssign;
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import com.google.common.collect.Multimap;
-import org.junit.experimental.categories.Category;
 
 /**
  * This builds a table, builds an overlap, and then fails when attempting to
@@ -75,7 +78,13 @@ public class TestOfflineMetaRebuildOverl
     // bring up the minicluster
     TEST_UTIL.startMiniZKCluster(); // tables seem enabled by default
     TEST_UTIL.restartHBaseCluster(3);
+    
+    ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
 
+    LOG.info("Waiting for no more RIT");
+    ZKAssign.blockUntilNoRIT(zkw);
+    LOG.info("No more RIT in ZK, now doing final test verification");
+    
     // Meta still messed up.
     assertEquals(0, scanMeta());
     HTableDescriptor[] htbls = TEST_UTIL.getHBaseAdmin().listTables();