[ https://issues.apache.org/jira/browse/HBASE-13759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14557866#comment-14557866 ]
Matteo Bertozzi commented on HBASE-13759: ----------------------------------------- {quote}Do you want to ask the host if it is aborting or stopping in here handleInterruptedException?{quote} that is more or less implicit. if master.abort()/stop() was called procedureExecutor.isRunning() will be false. we are basically pushing the procedure back in the queue and restart from while (isRunning()). do you have a better way to check if the master is going down but it didn't call abort/stop yet? {quote}The implementation of isYieldAfterExecutionStep is done by doing a isYieldBeforeExecuteFromState in StateMachineProcedure? Interesting...{quote} the StateMachineProc has more alrady information on what is doing, so you can control which step should yield and which should not without having to keep extra state around > Improve procedure yielding > -------------------------- > > Key: HBASE-13759 > URL: https://issues.apache.org/jira/browse/HBASE-13759 > Project: HBase > Issue Type: Sub-task > Components: proc-v2 > Affects Versions: 2.0.0, 1.2.0 > Reporter: Matteo Bertozzi > Assignee: Matteo Bertozzi > Priority: Trivial > Fix For: 2.0.0, 1.2.0 > > Attachments: HBASE-13759-v0.patch > > > Adds the ability to yield the procedure every execution step. > by default, a procedure will try to go begin to end without stopping. > This allows procedures to be nice to other procedures. > one usage example is ServerShutdownHandler where we want everyone to make > some progress. > Allows procedure to throw InterruptedException, the default handling will be: > "ask the master if there is an abort of stop. If there is, stop executions > and exit. Else, clear the IE and carryon executing. the interruted procedure > will retry". > If the procedure implementor wants a different behavior, the IE can be > catched and custom handling can be performed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)