HBASE-7923 force unassign can confirm region online on any RS to get rid of double assignments

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1464232 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2013-04-03 23:16:44 +00:00
parent bc5fc44966
commit a62eecc95a
1 changed files with 7 additions and 4 deletions

View File

@ -2267,11 +2267,14 @@ Server {
return urr; return urr;
} }
} }
if (force) { LOG.debug("Close region " + hri.getRegionNameAsString()
this.assignmentManager.regionOffline(hri); + " on current location if it is online and reassign.force=" + force);
this.assignmentManager.unassign(hri, force);
if (!this.assignmentManager.getRegionStates().isRegionInTransition(hri)
&& !this.assignmentManager.getRegionStates().isRegionAssigned(hri)) {
LOG.debug("Region " + hri.getRegionNameAsString()
+ " is not online on any region server, reassigning it.");
assignRegion(hri); assignRegion(hri);
} else {
this.assignmentManager.unassign(hri, force);
} }
if (cpHost != null) { if (cpHost != null) {
cpHost.postUnassign(hri, force); cpHost.postUnassign(hri, force);