stack commented on HBASE-19953:

Looking at related Master-side Operations, I see them take a latch in the 
NonceProcedureRunnable implementation. When latch is thrown, they call the post 
op. See enableTable, createTable, etc. This delete namespace should do similar? 
Later we should come back and get rid of all these latches (and then we'll have 
to figure how Observer can monitor Procedure).

> 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

Reply via email to