Fix broken TestMasterFailover test -- needed .tableinfo defined before test started... part of the repercussions from hbase-451; I don't this fixes all TestMasterFailover failures but at least a few obvious failures

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1146495 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2011-07-13 21:47:12 +00:00
parent aa64a10534
commit 53b5b9005e
2 changed files with 19 additions and 6 deletions

View File

@ -2620,8 +2620,8 @@ public class HRegionServer implements HRegionInterface, HBaseRPCErrorHandler,
*/ */
protected void checkOpen() throws IOException { protected void checkOpen() throws IOException {
if (this.stopped || this.abortRequested) { if (this.stopped || this.abortRequested) {
throw new RegionServerStoppedException("Server not running" throw new RegionServerStoppedException("Server " + getServerName() +
+ (this.abortRequested ? ", aborting" : "")); " not running" + (this.abortRequested ? ", aborting" : ""));
} }
if (!fsOk) { if (!fsOk) {
throw new RegionServerStoppedException("File system not available"); throw new RegionServerStoppedException("File system not available");

View File

@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.master.LoadBalancer.RegionPlan;
import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.apache.hadoop.hbase.util.JVMClusterUtil;
import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread; import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
import org.apache.hadoop.hbase.zookeeper.ZKAssign; import org.apache.hadoop.hbase.zookeeper.ZKAssign;
@ -262,6 +263,9 @@ public class TestMasterFailover {
FileSystem filesystem = FileSystem.get(conf); FileSystem filesystem = FileSystem.get(conf);
Path rootdir = filesystem.makeQualified( Path rootdir = filesystem.makeQualified(
new Path(conf.get(HConstants.HBASE_DIR))); new Path(conf.get(HConstants.HBASE_DIR)));
// Write the .tableinfo
FSUtils.createTableDescriptor(filesystem, rootdir, htdEnabled);
HRegionInfo hriEnabled = new HRegionInfo(htdEnabled.getName(), null, null); HRegionInfo hriEnabled = new HRegionInfo(htdEnabled.getName(), null, null);
HRegion.createHRegion(hriEnabled, rootdir, conf, htdEnabled); HRegion.createHRegion(hriEnabled, rootdir, conf, htdEnabled);
@ -271,6 +275,8 @@ public class TestMasterFailover {
byte [] disabledTable = Bytes.toBytes("disabledTable"); byte [] disabledTable = Bytes.toBytes("disabledTable");
HTableDescriptor htdDisabled = new HTableDescriptor(disabledTable); HTableDescriptor htdDisabled = new HTableDescriptor(disabledTable);
htdDisabled.addFamily(new HColumnDescriptor(FAMILY)); htdDisabled.addFamily(new HColumnDescriptor(FAMILY));
// Write the .tableinfo
FSUtils.createTableDescriptor(filesystem, rootdir, htdDisabled);
HRegionInfo hriDisabled = new HRegionInfo(htdDisabled.getName(), null, null); HRegionInfo hriDisabled = new HRegionInfo(htdDisabled.getName(), null, null);
HRegion.createHRegion(hriDisabled, rootdir, conf, htdDisabled); HRegion.createHRegion(hriDisabled, rootdir, conf, htdDisabled);
List<HRegionInfo> disabledRegions = TEST_UTIL.createMultiRegionsInMeta( List<HRegionInfo> disabledRegions = TEST_UTIL.createMultiRegionsInMeta(
@ -574,7 +580,8 @@ public class TestMasterFailover {
FileSystem filesystem = FileSystem.get(conf); FileSystem filesystem = FileSystem.get(conf);
Path rootdir = filesystem.makeQualified( Path rootdir = filesystem.makeQualified(
new Path(conf.get(HConstants.HBASE_DIR))); new Path(conf.get(HConstants.HBASE_DIR)));
// Write the .tableinfo
FSUtils.createTableDescriptor(filesystem, rootdir, htdEnabled);
HRegionInfo hriEnabled = new HRegionInfo(htdEnabled.getName(), HRegionInfo hriEnabled = new HRegionInfo(htdEnabled.getName(),
null, null); null, null);
HRegion.createHRegion(hriEnabled, rootdir, conf, htdEnabled); HRegion.createHRegion(hriEnabled, rootdir, conf, htdEnabled);
@ -585,6 +592,8 @@ public class TestMasterFailover {
byte [] disabledTable = Bytes.toBytes("disabledTable"); byte [] disabledTable = Bytes.toBytes("disabledTable");
HTableDescriptor htdDisabled = new HTableDescriptor(disabledTable); HTableDescriptor htdDisabled = new HTableDescriptor(disabledTable);
htdDisabled.addFamily(new HColumnDescriptor(FAMILY)); htdDisabled.addFamily(new HColumnDescriptor(FAMILY));
// Write the .tableinfo
FSUtils.createTableDescriptor(filesystem, rootdir, htdDisabled);
HRegionInfo hriDisabled = new HRegionInfo(htdDisabled.getName(), null, null); HRegionInfo hriDisabled = new HRegionInfo(htdDisabled.getName(), null, null);
HRegion.createHRegion(hriDisabled, rootdir, conf, htdDisabled); HRegion.createHRegion(hriDisabled, rootdir, conf, htdDisabled);
@ -811,7 +820,7 @@ public class TestMasterFailover {
log("Starting up a new master"); log("Starting up a new master");
master = cluster.startMaster().getMaster(); master = cluster.startMaster().getMaster();
log("Waiting for master to be ready"); log("Waiting for master to be ready");
cluster.waitForActiveAndReadyMaster(); assertTrue(cluster.waitForActiveAndReadyMaster());
log("Master is ready"); log("Master is ready");
// Let's add some weird states to master in-memory state // Let's add some weird states to master in-memory state
@ -872,7 +881,11 @@ public class TestMasterFailover {
Set<HRegionInfo> onlineRegions = new TreeSet<HRegionInfo>(); Set<HRegionInfo> onlineRegions = new TreeSet<HRegionInfo>();
for (JVMClusterUtil.RegionServerThread rst : for (JVMClusterUtil.RegionServerThread rst :
cluster.getRegionServerThreads()) { cluster.getRegionServerThreads()) {
try {
onlineRegions.addAll(rst.getRegionServer().getOnlineRegions()); onlineRegions.addAll(rst.getRegionServer().getOnlineRegions());
} catch (org.apache.hadoop.hbase.regionserver.RegionServerStoppedException e) {
LOG.info("Got RegionServerStoppedException", e);
}
} }
// Now, everything that should be online should be online // Now, everything that should be online should be online