rajeshbabu created HBASE-8353: --------------------------------- Summary: ROOT/META regions are hanging if master restarted while CLOSING Key: HBASE-8353 URL: https://issues.apache.org/jira/browse/HBASE-8353 Project: HBase Issue Type: Bug Components: Region Assignment Affects Versions: 0.94.6 Reporter: rajeshbabu Assignee: rajeshbabu Priority: Critical Fix For: 0.94.7
ROOT/META are not getting assigned if master restarted while closing ROOT/META. Lets suppose catalog table regions in M_ZK_REGION_CLOSING state during master initialization and then just we are adding the them to RIT and waiting for TM. {code} if (isOnDeadServer(regionInfo, deadServers) && (data.getOrigin() == null || !serverManager.isServerOnline(data.getOrigin()))) { // If was on dead server, its closed now. Force to OFFLINE and this // will get it reassigned if appropriate forceOffline(regionInfo, data); } else { // Just insert region into RIT. // If this never updates the timeout will trigger new assignment regionsInTransition.put(encodedRegionName, new RegionState( regionInfo, RegionState.State.CLOSING, data.getStamp(), data.getOrigin())); } {code} isOnDeadServer always return false to ROOT/META because deadServers is null. Even TM cannot close them properly because its not available in online regions since its not yet assigned. {code} synchronized (this.regions) { // Check if this region is currently assigned if (!regions.containsKey(region)) { LOG.debug("Attempted to unassign region " + region.getRegionNameAsString() + " but it is not " + "currently assigned anywhere"); return; } } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira