You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2018/08/01 17:51:00 UTC
[jira] [Updated] (HBASE-20713) Revisit why to removeFromRunQueue in
MasterProcedureExecutor's doPoll method
[ https://issues.apache.org/jira/browse/HBASE-20713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack updated HBASE-20713:
--------------------------
Fix Version/s: 2.0.2
> Revisit why to removeFromRunQueue in MasterProcedureExecutor's doPoll method
> -----------------------------------------------------------------------------
>
> Key: HBASE-20713
> URL: https://issues.apache.org/jira/browse/HBASE-20713
> Project: HBase
> Issue Type: Bug
> Reporter: Guanghao Zhang
> Priority: Major
> Fix For: 2.0.2
>
>
> https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java#L210
> {code:java}
> if (rq.isEmpty() || xlockReq) {
> removeFromRunQueue(fairq, rq);
> } else if (rq.getLockStatus().hasParentLock(pollResult)) {
> // if the rq is in the fairq because of runnable child
> // check if the next procedure is still a child.
> // if not, remove the rq from the fairq and go back to the xlock state
> Procedure<?> nextProc = rq.peek();
> if (nextProc != null && !Procedure.haveSameParent(nextProc, pollResult)) {
> removeFromRunQueue(fairq, rq);
> }
> }
> {code}
> Here is the comment of why to remove from run queue. If I am not wrong, here's assumption is the parent procedure should require exclusive lock. So if the nextProc is a child but has different parent with current procedure, we can remove it from run queue.
> But there maybe three type procedure. Procedure A's child is Procedure B. Procedure's child is Procedure C. And only Procedure A need exclusive lock and Procedure B,C don't require exclusive lock. The condition(!Procedure.haveSameParent(nextProc, pollResult)) is not right for this case?
> FYI [~stack]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)