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

Duo Zhang commented on HBASE-21217:
-----------------------------------

But anyway, I think we can change back to use CompatRemoteProcedureResolver for 
2.1 and 2.0, as the implementation of executeProcedures on these branches have 
critical problems, not only you described above, you can see what I described 
in the description here... If it is a bulk assign it will not throw exception, 
but use return value to indicate that there is a failure, but executeProcedures 
will ignore the return value...

> Revisit the executeProcedure method for open/close region
> ---------------------------------------------------------
>
>                 Key: HBASE-21217
>                 URL: https://issues.apache.org/jira/browse/HBASE-21217
>             Project: HBase
>          Issue Type: Sub-task
>          Components: amv2, proc-v2
>            Reporter: Duo Zhang
>            Priority: Critical
>             Fix For: 3.0.0, 2.2.0
>
>
> Currently we just call openRegion and closeRegion directly, which is a bit 
> buggy. For example, in order to not fail all the open region requests while 
> there is only one failure, we will catch the exception and set a flag in the 
> return value. But for executeProcedures call, the return value will be 
> ignored, and we expect the openRegion method will always call 
> reportRegionStateTransition to report the failure but in fact it does not...
> And after HBASE-20881, we can confirm that the race could happen, where we 
> send a close request to a region which is opening(HBASE-21199), and vice 
> visa. So I think here we need to revisit the implementation of 
> executeProcedures to make it more stable.



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

Reply via email to