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] [Updated] (HBASE-19953) Avoid calling post* hook when procedure fails
Date Thu, 15 Feb 2018 23:06:00 GMT

     [ https://issues.apache.org/jira/browse/HBASE-19953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Josh Elser updated HBASE-19953:
    Status: Patch Available  (was: Open)

Here's an .001 which fixes deleteNamespace and modifyNamespace with some tests to boot.

It looks like nearly every DDL operation in HMaster is affected by this because, for 2.0 clients,
we don't take a real latch (we get the NoopLatch inside ProcedurePrepareLatch). Thankfully,
I have a test case which lets us see this very easily. Definitely have more methods to fix.

Comments welcome on the approach. Not too elegant at this point (lots of copy-paste).

> 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
>         Attachments: HBASE-19952.001.branch-2.patch
> 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

View raw message