From d5843fc82438d8b2a22e7d8e427bbf7ea2ae08f2 Mon Sep 17 00:00:00 2001 From: Samir Ahmic Date: Mon, 26 Oct 2015 14:00:37 +0100 Subject: [PATCH] HBASE-14664 Master failover issue: Backup master is unable to start if active master is killed and started in short time interval. --- .../java/org/apache/hadoop/hbase/master/ActiveMasterManager.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ActiveMasterManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ActiveMasterManager.java index efb1cfd..55365d4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ActiveMasterManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ActiveMasterManager.java @@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.ZNodeClearer; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.monitoring.MonitoredTask; import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker; +import org.apache.hadoop.hbase.zookeeper.MetaTableLocator; import org.apache.hadoop.hbase.zookeeper.ZKUtil; import org.apache.hadoop.hbase.zookeeper.ZooKeeperListener; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; @@ -129,6 +130,10 @@ public class ActiveMasterManager extends ZooKeeperListener { // Node is no longer there, cluster does not have an active master LOG.debug("No master available. Notifying waiting threads"); clusterHasActiveMaster.set(false); + // There is no rs hosting hbase:meta table clear '/hbase/meta-region-server' znode + MetaTableLocator mtl = new MetaTableLocator(); + mtl.deleteMetaLocation(this.watcher); + // Notify any thread waiting to become the active master clusterHasActiveMaster.notifyAll(); } -- 2.4.3