hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18014) A case of Region remain unassigned when table enabled
Date Sat, 13 May 2017 01:31:04 GMT

    [ https://issues.apache.org/jira/browse/HBASE-18014?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16009025#comment-16009025
] 

Hudson commented on HBASE-18014:
--------------------------------

SUCCESS: Integrated in Jenkins build HBase-1.3-IT #45 (See [https://builds.apache.org/job/HBase-1.3-IT/45/])
HBASE-18014 A case of Region remain unassigned when table enabled (Allan (apurtell: rev 36ebe05fc9013fe27ba0eca410ed11e5c5b112cb)
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java


> 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
>             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
(v6.3.15#6346)

Mime
View raw message