HBASE-4868 TestOfflineMetaRebuildBase#testMetaRebuild occasionally fails
(Gao Jinchao) git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1206755 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f584f12260
commit
26a4ab4a15
|
@ -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)
|
||||
|
|
|
@ -1559,7 +1559,32 @@ public class HBaseTestingUtility {
|
|||
}
|
||||
|
||||
/**
|
||||
* Creates an znode with OPENED state.
|
||||
* Gets a ZooKeeperWatcher.
|
||||
* @param TEST_UTIL
|
||||
*/
|
||||
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
|
||||
|
@ -1573,20 +1598,7 @@ public class HBaseTestingUtility {
|
|||
HBaseTestingUtility TEST_UTIL, HRegion region,
|
||||
ServerName serverName) throws ZooKeeperConnectionException,
|
||||
IOException, KeeperException, NodeExistsException {
|
||||
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;
|
||||
}
|
||||
});
|
||||
|
||||
ZooKeeperWatcher zkw = getZooKeeperWatcher(TEST_UTIL);
|
||||
ZKAssign.createNodeOffline(zkw, region.getRegionInfo(), serverName);
|
||||
int version = ZKAssign.transitionNodeOpening(zkw, region
|
||||
.getRegionInfo(), serverName);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -29,9 +29,11 @@ import org.apache.hadoop.hbase.MediumTests;
|
|||
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 extends OfflineMetaRebuildTestCore {
|
|||
// 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());
|
||||
|
|
|
@ -24,10 +24,13 @@ import static org.junit.Assert.assertFalse;
|
|||
|
||||
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 extends OfflineMetaRebuildTestCore {
|
|||
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();
|
||||
|
|
|
@ -24,15 +24,18 @@ import static org.junit.Assert.assertFalse;
|
|||
|
||||
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 TestOfflineMetaRebuildOverlap extends OfflineMetaRebuildTestCore {
|
|||
// 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();
|
||||
|
|
Loading…
Reference in New Issue