You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Peter Bacsko (JIRA)" <ji...@apache.org> on 2017/12/05 15:47:00 UTC

[jira] [Comment Edited] (OOZIE-3139) Oozie validates workflow incorrectly

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

Peter Bacsko edited comment on OOZIE-3139 at 12/5/17 3:46 PM:
--------------------------------------------------------------

Thanks for the patch - hard-coded "true" is definitely a problem there, so it's a good finding. 

I just have two minor comments:

1) Remove the two line feed (line 1663-1664 in TestLiteWorkflowAppParser if you apply the patch)
2) Instead of this:

{noformat}
       Configuration conf = new Configuration();
        try {
            LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-multiple-error-parent.xml", -1), conf);
{noformat}

you can write:

{noformat}
        final LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-multiple-error-parent.xml", -1),
                new Configuration());
invokeForkJoin(parser, app);
{noformat}

so the test ode remains consistent with the already existing testcases. Also, moving the new test directly below {{testForkJoinValidationTime()}} would be good. 



was (Author: pbacsko):
Thanks for the patch - hard-coded "true" is definitely a problem there, so it's a good finding. 

I just have two minor comments:

1) Remove the two line feed (line 1663-1664 in TestLiteWorkflowAppParser if you apply the patch)
2) Instead of this:

{noformat}
       Configuration conf = new Configuration();
        try {
            LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-multiple-error-parent.xml", -1), conf);
{noformat}

you can write:

{noformat}
        final LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-long.xml", -1),
                new Configuration());
invokeForkJoin(parser, app);
{noformat}

so the test ode remains consistent with the already existing testcases. Also, moving the new test directly below {{testForkJoinValidationTime()}} would be good. 


> Oozie validates workflow incorrectly
> ------------------------------------
>
>                 Key: OOZIE-3139
>                 URL: https://issues.apache.org/jira/browse/OOZIE-3139
>             Project: Oozie
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 4.3.0
>            Reporter: Denes Bodo
>            Assignee: Denes Bodo
>            Priority: Critical
>         Attachments: OOZIE-3139.001.patch, exception.log, workflow.pdf
>
>
> We found that after OOZIE-1978 the attached workflow becomes invalid. Aa we found out the following line brings the problem: https://github.com/apache/oozie/commit/8e9b9042b3270dc5ff975c44a5c977fcc41250e4#diff-a38ae78886b7c3afb711d32cfb4dbbbdR267 . The parameter "okPath" changed from okPath to true.
> The following workflow is problematic:
> {noformat}
> <workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-fork-wf">
>     <start to="fork"/>
>     <fork name="fork">
>         <path start="FA"/>
>         <path start="FB"/>
>     </fork>
>     <action name="FA">
>         <shell xmlns="uri:oozie:shell-action:0.2">
>             <job-tracker>${jobTracker}</job-tracker>
>             <name-node>${nameNode}</name-node>
>             <exec>${myscript}</exec>
>             <file>${myscriptPath}</file>
>             <capture-output/>
>         </shell>
>         <ok to="join"/>
>         <error to="D"/>
>     </action>
>     <action name="FB">
>         <shell xmlns="uri:oozie:shell-action:0.2">
>             <job-tracker>${jobTracker}</job-tracker>
>             <name-node>${nameNode}</name-node>
>             <exec>${myscript}</exec>
>             <file>${myscriptPath}</file>
>             <capture-output/>            
>         </shell>
>         <ok to="join"/>
>         <error to="D"/>
>     </action>
>     <join name="join" to="C" />
>     <action name="C">
>         <shell xmlns="uri:oozie:shell-action:0.2">
>             <job-tracker>${jobTracker}</job-tracker>
>             <name-node>${nameNode}</name-node>
>             <exec>${myscript}</exec>
>             <file>${myscriptPath}</file>
>             <capture-output/>
>         </shell>
>         <ok to="end"/>
>         <error to="D"/>
>     </action>
>     <action name="D">
>         <shell xmlns="uri:oozie:shell-action:0.2">
>             <job-tracker>${jobTracker}</job-tracker>
>             <name-node>${nameNode}</name-node>
>             <exec>${myscript}</exec>
>             <file>${myscriptPath}</file>
>             <capture-output/>
>         </shell>
>         <ok to="E"/>
>         <error to="fail"/>
>     </action>
>     <action name="E">
>         <shell xmlns="uri:oozie:shell-action:0.2">
>             <job-tracker>${jobTracker}</job-tracker>
>             <name-node>${nameNode}</name-node>
>             <exec>${myscript}</exec>
>             <file>${myscriptPath}</file>
>             <capture-output/>
>         </shell>
>         <ok to="fail"/>
>         <error to="fail"/>
>     </action>                                                                                                                
>     <kill name="fail">
>         <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
>     </kill>
>     <end name="end"/>
> </workflow-app>
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)