[
https://issues.apache.org/jira/browse/HBASE-7923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13589240#comment-13589240
]
rajeshbabu commented on HBASE-7923:
-----------------------------------
@Ram,
Actual use case of force unassign from admin seems like it should assign a
region which is not served by any RS but still showing online on master.
Presently force unassign will clear all in-memory state in master before the
reassign and not checking whether it is online on any RS(can cause double
assignments easily).
Just to make sure region is not online on any RS,calling force unassign.
If it is not served by any RS then ClosedRegionHandler wont be started,then
only calling assignRegion(hri).
{code}
if (t instanceof NotServingRegionException) {
if (transitionInZK) {
deleteClosingOrClosedNode(region);
}
regionOffline(region);
return;
{code}
> force unassign can confirm region online on any RS to get rid of double
> assignments.
> ------------------------------------------------------------------------------------
>
> Key: HBASE-7923
> URL: https://issues.apache.org/jira/browse/HBASE-7923
> Project: HBase
> Issue Type: Improvement
> Reporter: rajeshbabu
> Assignee: rajeshbabu
> Fix For: 0.95.0
>
> Attachments: HBASE-7923_2.patch, HBASE-7923.patch
>
>
> Presently in force unassign we are offlining a region from AM and reassigning
> it, which may cause double assignments.
> {code}
> this.assignmentManager.regionOffline(hri);
> assignRegion(hri);
> {code}
> Any way if a region is not served by any RS we are offlining the region from
> AM.
> {code}
> if (t instanceof NotServingRegionException) {
> if (transitionInZK) {
> deleteClosingOrClosedNode(region);
> }
> regionOffline(region);
> return;
> }
> {code}
> We can change as below just to confirm whether region online on any RS.
> {code}
> this.assignmentManager.unassign(hri,force);
> if(!this.assignmentManager.getRegionStates().isRegionInTransition(hri) &&
> !this.assignmentManager.getRegionStates().isRegionAssigned(hri) ){
> assignRegion(hri);
> }
> {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