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

Duo Zhang commented on HBASE-26283:
-----------------------------------

Could please grep for pid=374353 and also pid=418061?Seems there are two TRSP 
at the same time for the same region, but we have guard in code, to force only 
one TRSP for a region. You can see the code, we will attach the TRSP to the 
RegionStateNode.

And what is your JDK version?

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8215355

This is bug in JDK. The title is dead lock, but it is possible to cause two 
threads execute at the same time in a critical section, which may cause some 
strange behaviors.

> 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)

Reply via email to