[
https://issues.apache.org/jira/browse/HBASE-26283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17414785#comment-17414785
]
bolao commented on HBASE-26283:
-------------------------------
in our use of hbase, some reason for example: the k8s pod restart or hadoop
datanode restart,cause our master switch between active and standby。we guess
this case may cause master don't received report from regionserver just in
time, master load old procedure (the current region state is opening), and
continue to send open request to regionserver. besides, i think the aim of
AssignRegionHandler is to assign region,as long as the region is online, it
can be considered as success for AssignRegionHandler. what do you think?
> RegionServer ignored a procedure dute to repeatedly opening which lead region
> stuck in RIT
> ------------------------------------------------------------------------------------------
>
> Key: HBASE-26283
> URL: https://issues.apache.org/jira/browse/HBASE-26283
> Project: HBase
> Issue Type: Improvement
> Components: Region Assignment
> Affects Versions: 2.3.5
> Reporter: bolao
> Priority: Minor
>
> when hbase cluster shut down Suddenlly, there are some repeatedly
> opening regions and cause them to stuck in RTI。we found
> org.apache.hadoop.hbase.regionserver.handler.AssignRegionHandler#process()
> directly return when handle repeatedly opening regions, and don't report to
> master, master unable to process next status for this procedure, and
> regions stuck in RIT。so can we do like this:
> # AssignRegionHandler report the region is online if regionserver found the
> region is online,
> # or AssignRegionHandler report the region is failed online if regionserver
> found the region is online, let Hmater to retry。
> please give some suggestions, thanks !
> {code:java}
> // code placeholder
> Region onlineRegion = rs.getRegion(encodedName); if (onlineRegion != null) {
> LOG.warn("Received OPEN for the region:{}, which is already online",
> regionName);
> // Just follow the old behavior, do we need to call
> reportRegionStateTransition? Maybe not?
> // For normal case, it could happen that the rpc call to schedule this
> handler is succeeded,
> // but before returning to master the connection is broken. And when master
> tries again, we
> // have already finished the opening. For this case we do not need to call
> // reportRegionStateTransition any more.
> return; }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)