HBASE-4052 reapply code in unassign() which handles NotServingRegionException
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1147819 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3b0a7528c9
commit
8ae3106b95
|
@ -1449,23 +1449,26 @@ public class AssignmentManager extends ZooKeeperListener {
|
||||||
// Presume that master has stale data. Presume remote side just split.
|
// Presume that master has stale data. Presume remote side just split.
|
||||||
// Presume that the split message when it comes in will fix up the master's
|
// Presume that the split message when it comes in will fix up the master's
|
||||||
// in memory cluster state.
|
// in memory cluster state.
|
||||||
if (checkIfRegionBelongsToDisabling(region)) {
|
return;
|
||||||
// Remove from the regionsinTransition map
|
|
||||||
LOG.info("While trying to recover the table:"
|
|
||||||
+ region.getTableNameAsString()
|
|
||||||
+ " from DISABLING state to DISABLED state, the region:" + region
|
|
||||||
+ " was already offlined.");
|
|
||||||
synchronized (this.regionsInTransition) {
|
|
||||||
this.regionsInTransition.remove(region.getEncodedName());
|
|
||||||
}
|
|
||||||
// Remove from the regionsMap
|
|
||||||
synchronized (this.regions) {
|
|
||||||
this.regions.remove(region);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
if (t instanceof RemoteException) {
|
if (t instanceof RemoteException) {
|
||||||
t = ((RemoteException)t).unwrapRemoteException();
|
t = ((RemoteException)t).unwrapRemoteException();
|
||||||
|
if (t instanceof NotServingRegionException) {
|
||||||
|
if (checkIfRegionBelongsToDisabling(region)) {
|
||||||
|
// Remove from the regionsinTransition map
|
||||||
|
LOG.info("While trying to recover the table "
|
||||||
|
+ region.getTableNameAsString()
|
||||||
|
+ " to DISABLED state the region " + region
|
||||||
|
+ " was offlined but the table was in DISABLING state");
|
||||||
|
synchronized (this.regionsInTransition) {
|
||||||
|
this.regionsInTransition.remove(region.getEncodedName());
|
||||||
|
}
|
||||||
|
// Remove from the regionsMap
|
||||||
|
synchronized (this.regions) {
|
||||||
|
this.regions.remove(region);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
LOG.info("Server " + server + " returned " + t + " for " +
|
LOG.info("Server " + server + " returned " + t + " for " +
|
||||||
region.getEncodedName());
|
region.getEncodedName());
|
||||||
|
|
Loading…
Reference in New Issue