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;
+          }
         }
       }
     }

Reply via email to