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();