HBASE-3169 NPE when master joins running cluster if a RIT references a RS no longer present

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1028872 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2010-10-29 18:34:32 +00:00
parent 73727e534a
commit 022f70b722
2 changed files with 13 additions and 2 deletions

View File

@ -1056,6 +1056,8 @@ Release 0.21.0 - Unreleased
(Kannan Muthukkaruppan via Stack)
HBASE-3102 Enhance HBase rMetrics for Long-running Stats
(Nicolas Spiegelberg via Stack)
HBASE-3169 NPE when master joins running cluster if a RIT references
a RS no longer present
NEW FEATURES
HBASE-1961 HBase EC2 scripts

View File

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