diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index b6fd2cf..60e0afa 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -538,8 +538,10 @@ public class AssignmentManager extends ZooKeeperListener { } } else { // If any one region except meta is assigned, it's a failover. - for (HRegionInfo hri : regionStates.getRegionAssignments().keySet()) { - if (!hri.isMetaTable()) { + Set onlineServers = serverManager.getOnlineServers().keySet(); + for (Map.Entry en : regionStates.getRegionAssignments().entrySet()) { + HRegionInfo hri = en.getKey(); + if (!hri.isMetaTable() && onlineServers.contains(en.getValue())) { LOG.debug("Found " + hri + " out on cluster"); failover = true; break;