Index: src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (revision 999236) +++ src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (working copy) @@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; +import org.apache.hadoop.hbase.HServerAddress; import org.apache.hadoop.hbase.HServerInfo; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.catalog.MetaEditor; @@ -151,7 +152,9 @@ byte [] bytes = result.getValue(HConstants.CATALOG_FAMILY, qualifier); if (bytes == null || bytes.length <= 0) return; HRegionInfo hri = Writables.getHRegionInfo(bytes); - if (!hris.containsKey(hri)) { + Pair pair = + MetaReader.getRegion(this.server.getCatalogTracker(), hri.getRegionName()); + if (pair == null || pair.getFirst() == null) { LOG.info("Fixup; missing daughter " + hri.getEncodedNameAsBytes()); MetaEditor.addDaughter(this.server.getCatalogTracker(), hri, null); this.services.getAssignmentManager().assign(hri);