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

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

{quote}
After a careful think, I think we don't need to revert this(I've already 
changed the comment above), we only need to turn ModifyTable to a async 
op(Which is the only sync DDL for 2.x client now). Josh Elser you can see 
HMaster.truncateTable. We also use ProcedurePrepareLatch.createLatch(2, 0) to 
make sure the 2.x client won't sync wait here.
Uploaded a addendum to clarify my point.
{quote}

Thanks, Allan. I appreciate the clarification -- I felt bad lobbing a "-1" onto 
this as I did. Glad we can talk it out. The addendum is very helpful and I 
appreciate that too.

I need to refresh my head around the original problem and think about the 
solution you have suggested. I think it makes sense to me, but I need to make 
sure things still work as they did in 2.0.0 :). I'll do this now before I get 
pulled in another direction.

On that note, since this did go out in 2.0.0, can you make this change under a 
different Jira issue instead of as an addendum to this one? That would remove 
potential confusion about 2.0.3 having it but not 2.0.1 and 2.0.2.

> 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, 2.0.0
>
>         Attachments: HBASE-19952.001.branch-2.patch, 
> HBASE-19953.002.branch-2.patch, HBASE-19953.003.branch-2.patch, 
> HBASE-19953.branch-2.0.addendum.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
(v7.6.3#76005)

Reply via email to