[ 
https://issues.apache.org/jira/browse/HBASE-18014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gavin updated HBASE-18014:
--------------------------
    Comment: was deleted

(was: A comment with security level 'jira-users' was removed.)

> A case of Region remain unassigned when table enabled
> -----------------------------------------------------
>
>                 Key: HBASE-18014
>                 URL: https://issues.apache.org/jira/browse/HBASE-18014
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.4.0, 1.1.10
>            Reporter: Allan Yang
>            Assignee: Allan Yang
>            Priority: Major
>             Fix For: 1.4.0, 1.3.2
>
>         Attachments: HBASE-18014-branch-1.patch, HBASE-18014-branch-1.v2.patch
>
>
> Reproduce procedure:
> 1. Create a table, say the regions of this table are opened on RS1
> 2. Disable this table
> 3. Abort RS1 and wait for SSH to complete
> 4. Wait for a while, RS1 will be deleted from processedServers(a HashMap in 
> {{RegionState}} to store processed dead servers)
> 5. Enable the table, then the region of the table will remain unassigned 
> until master restarts.
> Why?
> When assigning regions after the table enabled, AssignmentManager will check 
> whether those regions are on servers which are dead but not processed, since 
> RS1 already have deleted from the map of 'processedServers'. Then the 
> AssignmentManager think this region is on a dead but not processed server. So 
> it will skip assign, let the region be handled by SSH.
> {code:java}
> case OFFLINE:
>       if (useZKForAssignment
>           && regionStates.isServerDeadAndNotProcessed(sn)
>           && wasRegionOnDeadServerByMeta(region, sn)) {
>         if (!regionStates.isRegionInTransition(region)) {
>           LOG.info("Updating the state to " + State.OFFLINE + " to allow to 
> be reassigned by SSH");
>           regionStates.updateRegionState(region, State.OFFLINE);
>         }
>         LOG.info("Skip assigning " + region.getRegionNameAsString()
>             + ", it is on a dead but not processed yet server: " + sn);
>         return null;
>       }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to