diff --git src/main/java/org/apache/hadoop/hbase/master/HMaster.java src/main/java/org/apache/hadoop/hbase/master/HMaster.java index c414adf..0b9d1a7 100644 --- src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -570,6 +570,7 @@ Server { status.setStatus("Splitting logs after master startup"); splitLogAfterStartup(this.fileSystemManager); + Threads.sleep(200); // Make sure root and meta assigned before proceeding. assignRootAndMeta(status); enableServerShutdownHandler(); diff --git src/main/java/org/apache/hadoop/hbase/master/ServerManager.java src/main/java/org/apache/hadoop/hbase/master/ServerManager.java index 0397020..422843a 100644 --- src/main/java/org/apache/hadoop/hbase/master/ServerManager.java +++ src/main/java/org/apache/hadoop/hbase/master/ServerManager.java @@ -379,11 +379,10 @@ public class ServerManager { this.deadNotExpiredServers.add(serverName); return; } - if (!this.onlineServers.containsKey(serverName)) { - LOG.warn("Received expiration of " + serverName + - " but server is not currently online"); - return; - } + /* + * if (!this.onlineServers.containsKey(serverName)) { LOG.warn("Received expiration of " + + * serverName + " but server is not currently online"); return; } + */ if (this.deadservers.contains(serverName)) { // TODO: Can this happen? It shouldn't be online in this case? LOG.warn("Received expiration of " + serverName + diff --git src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java index 479d904..efbd329 100644 --- src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java +++ src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java @@ -773,7 +773,7 @@ public class TestMasterFailover { // Disable the disabledTable in ZK ZKTable zktable = new ZKTable(zkw); - zktable.setDisabledTable(Bytes.toString(disabledTable)); + zktable.setDisablingTable(Bytes.toString(disabledTable)); assertTrue(" The enabled table should be identified on master fail over.", zktable.isEnabledTable("enabledTable")); @@ -924,6 +924,10 @@ public class TestMasterFailover { } log("Starting up a new master"); master = cluster.startMaster().getMaster(); + while (master.getServerManager() == null) { + Threads.sleep(10); + } + master.getServerManager().expireServer(deadServerName); log("Waiting for master to be ready"); assertTrue(cluster.waitForActiveAndReadyMaster()); log("Master is ready");