diff --git a/conf/log4j.properties b/conf/log4j.properties index 62b5521..5bd8df1 100644 --- a/conf/log4j.properties +++ b/conf/log4j.properties @@ -40,11 +40,11 @@ log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: # Custom Logging levels -log4j.logger.org.apache.zookeeper=INFO +log4j.logger.org.apache.zookeeper=DEBUG #log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG log4j.logger.org.apache.hadoop.hbase=DEBUG # Make these two classes INFO-level. Make them DEBUG to see more zk debug. -log4j.logger.org.apache.hadoop.hbase.zookeeper.ZKUtil=INFO -log4j.logger.org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher=INFO +log4j.logger.org.apache.hadoop.hbase.zookeeper.ZKUtil=DEBUG +log4j.logger.org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher=DEBUG #log4j.logger.org.apache.hadoop.dfs=DEBUG # Set this class to log INFO only otherwise its OTT diff --git a/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index a5f0993..78fc7c3 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -292,8 +292,17 @@ public class AssignmentManager extends ZooKeeperListener { // Region is opened, insert into RIT and handle it regionsInTransition.put(encodedRegionName, new RegionState( regionInfo, RegionState.State.OPENING, data.getStamp())); - new OpenedRegionHandler(master, this, data, regionInfo, - serverManager.getServerInfo(data.getServerName())).process(); + HServerInfo hsi = serverManager.getServerInfo(data.getServerName()); + // hsi could be null if this server is no longer online. If + // that the case, just let this RIT timeout; it'll be assigned + // to new server then. + if (hsi == null) { + LOG.warn("Region in transition " + regionInfo.getEncodedName() + + " references a server no longer up " + data.getServerName() + + "; letting RIT timeout so will be assigned elsewhere"); + break; + } + new OpenedRegionHandler(master, this, data, regionInfo, hsi).process(); break; } }