You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Purshotam Shah (JIRA)" <ji...@apache.org> on 2014/04/04 19:08:27 UTC

[jira] [Updated] (OOZIE-1778) Rollback option for XCommand

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

Purshotam Shah updated OOZIE-1778:
----------------------------------

    Description: 
Currently if we issue a command at bundle level, which set the pending for bundle action and issue child command.

If child command succeed, then it's all good. But if child command at pre-check or acquiring lock fails, then there is no way to update parent.
In this scenario, bundle action and remain in pending and will cause unexpected behavior.


We should do something like 
{code:java}
XCommand.call() throws CommandException {
        try {
            eagerVerifyPrecondition();
            acquireLockCron.start();
            acquireLock();
            acquireLockCron.stop();
            loadState();
            verifyPrecondition();
            ret = execute();
        }
        catch(Throwable e){
		handleFailure();
        }
    }
{code}

> Rollback option for XCommand
> ----------------------------
>
>                 Key: OOZIE-1778
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1778
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Purshotam Shah
>
> Currently if we issue a command at bundle level, which set the pending for bundle action and issue child command.
> If child command succeed, then it's all good. But if child command at pre-check or acquiring lock fails, then there is no way to update parent.
> In this scenario, bundle action and remain in pending and will cause unexpected behavior.
> We should do something like 
> {code:java}
> XCommand.call() throws CommandException {
>         try {
>             eagerVerifyPrecondition();
>             acquireLockCron.start();
>             acquireLock();
>             acquireLockCron.stop();
>             loadState();
>             verifyPrecondition();
>             ret = execute();
>         }
>         catch(Throwable e){
> 		handleFailure();
>         }
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)