You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zj...@apache.org on 2013/01/11 06:47:18 UTC
svn commit: r1431901 - in
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master:
AssignmentManager.java handler/ServerShutdownHandler.java
Author: zjushch
Date: Fri Jan 11 05:47:18 2013
New Revision: 1431901
URL: http://svn.apache.org/viewvc?rev=1431901&view=rev
Log:
HBASE-7506 Judgment of carrying ROOT/META will become wrong when expiring server (Chunhui)
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1431901&r1=1431900&r2=1431901&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Fri Jan 11 05:47:18 2013
@@ -2636,11 +2636,11 @@ public class AssignmentManager extends Z
threadPoolExecutorService.submit(new UnAssignCallable(this, regionInfo));
}
- boolean isCarryingRoot(ServerName serverName) {
+ public boolean isCarryingRoot(ServerName serverName) {
return isCarryingRegion(serverName, HRegionInfo.ROOT_REGIONINFO);
}
- boolean isCarryingMeta(ServerName serverName) {
+ public boolean isCarryingMeta(ServerName serverName) {
return isCarryingRegion(serverName, HRegionInfo.FIRST_META_REGIONINFO);
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java?rev=1431901&r1=1431900&r2=1431901&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java Fri Jan 11 05:47:18 2013
@@ -196,20 +196,33 @@ public class ServerShutdownHandler exten
// Assign root and meta if we were carrying them.
if (isCarryingRoot()) { // -ROOT-
- LOG.info("Server " + serverName +
- " was carrying ROOT. Trying to assign.");
- this.services.getAssignmentManager().
- regionOffline(HRegionInfo.ROOT_REGIONINFO);
- verifyAndAssignRootWithRetries();
+ // Check again: region may be assigned to other where because of RIT
+ // timeout
+ if (this.services.getAssignmentManager().isCarryingRoot(serverName)) {
+ LOG.info("Server " + serverName
+ + " was carrying ROOT. Trying to assign.");
+ this.services.getAssignmentManager().regionOffline(
+ HRegionInfo.ROOT_REGIONINFO);
+ verifyAndAssignRootWithRetries();
+ } else {
+ LOG.info("ROOT has been assigned to otherwhere, skip assigning.");
+ }
}
// Carrying meta?
if (isCarryingMeta()) {
- LOG.info("Server " + serverName +
- " was carrying META. Trying to assign.");
- this.services.getAssignmentManager().
- regionOffline(HRegionInfo.FIRST_META_REGIONINFO);
- this.services.getAssignmentManager().assignMeta();
+ // Check again: region may be assigned to other where because of RIT
+ // timeout
+ if (this.services.getAssignmentManager().isCarryingMeta(serverName)) {
+ LOG.info("Server " + serverName
+ + " was carrying META. Trying to assign.");
+ this.services.getAssignmentManager().regionOffline(
+ HRegionInfo.FIRST_META_REGIONINFO);
+ this.services.getAssignmentManager().assignMeta();
+ } else {
+ LOG.info("META has been assigned to otherwhere, skip assigning.");
+ }
+
}
// We don't want worker thread in the MetaServerShutdownHandler