[ https://issues.apache.org/jira/browse/HBASE-19976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16361678#comment-16361678 ]
Duo Zhang commented on HBASE-19976: ----------------------------------- And here, since the procedure executor does not know much about the priority we defined in MasterProcesureScheduler since it is general and in another module, I plan to abstract the priority like this: The ProcedureScheduler will return an int number to tell that how many priority levels it has, and in ProcedureExecutor, we will reserve one thread for each of the level except the lowest one. And when polling, we pass the priority level to the ProcedureScheduler to only fetch the procedures which priority is higher. And we can introduce 3 levels in MasterProcedureScheduler, one for meta, one for other system table, and one for all other procedures. Notice that the ServerCrashProcedure should have different priority if it carries meta region or other system regions. Thanks. > Dead lock if the worker threads in procedure executor are exhausted > ------------------------------------------------------------------- > > Key: HBASE-19976 > URL: https://issues.apache.org/jira/browse/HBASE-19976 > Project: HBase > Issue Type: Bug > Reporter: Duo Zhang > Assignee: stack > Priority: Critical > > See the comments in HBASE-19554. If all the worker threads are stuck in > AssignProcdure since meta region is offline, then the RecoverMetaProcedure > can not be executed and cause dead lock. -- This message was sent by Atlassian JIRA (v7.6.3#76005)