[ https://issues.apache.org/jira/browse/HBASE-26864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512831#comment-17512831 ]
Huaxiang Sun commented on HBASE-26864: -------------------------------------- Thanks [~apurtell]. > SplitTableRegionProcedure calls openParentRegions() at a wrong state during > rollback. > ------------------------------------------------------------------------------------- > > Key: HBASE-26864 > URL: https://issues.apache.org/jira/browse/HBASE-26864 > Project: HBase > Issue Type: Bug > Components: Region Assignment > Affects Versions: 2.4.10 > Reporter: Huaxiang Sun > Assignee: Huaxiang Sun > Priority: Major > Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3, 2.4.12 > > > Changed the issue title and description for the scope of the work. > there is a bug in handling Rollback in SplitTableRegionProcedure. > [https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java#L304] > [https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java#L385] > {code:java} > In the state machine: > case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION: > addChildProcedure(createUnassignProcedures(env)); > // Comments from HX: > // createUnassignProcedures() can throw out IOException. If this > happens, > // it wont reach state SPLIT_TABLE_REGIONS_CHECK_CLOSED_REGION and > no parent regions > // is closed as all created UnassignProcedures are rolled back. If > it rolls back with > // state SPLIT_TABLE_REGION_CLOSE_PARENT_REGION, no need to call > openParentRegion(), > // otherwise, it will result in OpenRegionProcedure for an already > open region. > > setNextState(SplitTableRegionState.SPLIT_TABLE_REGIONS_CHECK_CLOSED_REGIONS); > break; > In the rollback, > case SPLIT_TABLE_REGIONS_CHECK_CLOSED_REGIONS: > // Doing nothing, in SPLIT_TABLE_REGION_CLOSE_PARENT_REGION, > // we will bring parent region online > break; > case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION: > // Comments from HX: > // OpenParentRegion() should not be called here as explained above. > openParentRegion(env); > break; {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)