hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19953) Avoid calling post* hook when procedure fails
Date Wed, 07 Feb 2018 23:05:00 GMT

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

Josh Elser commented on HBASE-19953:
------------------------------------

Ok, this naive solution definitely doesn't work. Async is built into the procedure itself
– this appears to be a nasty oversight on our part.

The existing semantics from branch-1 are that if the operation fails, the post hook is not
invoked. This was easy to implement as they were synchronous calls.

I feel like to do this properly, we would need to push the post hook invocation down into
the procedure itself so that it's automatically invoked. The downside of this approach is
that is convolutes the Procedure implementation with the Observer hook logic. Maybe we can
push this into the {{NonceProcedureRunnable}} logic instead? (in {{MasterProcedureUtil#submitProcedure()}})

> Avoid calling post* hook when procedure fails
> ---------------------------------------------
>
>                 Key: HBASE-19953
>                 URL: https://issues.apache.org/jira/browse/HBASE-19953
>             Project: HBase
>          Issue Type: Bug
>          Components: master, proc-v2
>            Reporter: Ramesh Mani
>            Assignee: Josh Elser
>            Priority: Critical
>             Fix For: 2.0.0-beta-2
>
>
> Ramesh pointed out a case where I think we're mishandling some post\* MasterObserver
hooks. Specifically, I'm looking at the deleteNamespace.
> We synchronously execute the DeleteNamespace procedure. When the user provides a namespace
that isn't empty, the procedure does a rollback (which is just a no-op), but this doesn't
propagate an exception up to the NonceProcedureRunnable in {{HMaster#deleteNamespace}}. It
took Ramesh pointing it out a bit better to me that the code executes a bit differently than
we actually expect.
> I think we need to double-check our post hooks and make sure we aren't invoking them
when the procedure actually failed. cc/ [~Apache9], [~stack].



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

Mime
View raw message