Repository: hbase Updated Branches: refs/heads/branch-1 005fdac29 -> 60fcc2ea8
HBASE-11725 Backport failover checking change to 1.0 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/60fcc2ea Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/60fcc2ea Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/60fcc2ea Branch: refs/heads/branch-1 Commit: 60fcc2ea8d81fd7745d71b569bc77bb2aca57fcf Parents: 005fdac Author: Jimmy Xiang <[email protected]> Authored: Tue Aug 12 12:02:05 2014 -0700 Committer: Jimmy Xiang <[email protected]> Committed: Tue Aug 12 12:02:05 2014 -0700 ---------------------------------------------------------------------- .../hadoop/hbase/master/AssignmentManager.java | 26 +++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/60fcc2ea/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java ---------------------------------------------------------------------- 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 a5b6d45..06bb336 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 @@ -513,22 +513,26 @@ 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<ServerName> onlineServers = serverManager.getOnlineServers().keySet(); + for (Map.Entry<HRegionInfo, ServerName> 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; } } - } - if (!failover && nodes != null) { - // If any one region except meta is in transition, it's a failover. - for (String encodedName: nodes) { - RegionState regionState = regionStates.getRegionState(encodedName); - if (regionState != null && !regionState.getRegion().isMetaRegion()) { - LOG.debug("Found " + regionState + " in RITs"); - failover = true; - break; + if (!failover && nodes != null) { + // If any one region except meta is in transition, it's a failover. + for (String encodedName: nodes) { + RegionState regionState = regionStates.getRegionState(encodedName); + if (regionState != null && !regionState.getRegion().isMetaRegion()) { + LOG.debug("Found " + regionState + " in RITs"); + failover = true; + break; + } } } }
