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

Philippe Marseille commented on OOZIE-1403:
-------------------------------------------

Here's a complete workflow that causes problem
{code:xml}
<workflow-app name="testFork" xmlns="uri:oozie:workflow:0.4">
    <start to="StartTouch"/>
        
    <action name="StartTouch">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchstart'/>
        </fs>
        <ok to="ForkPar"/>
        <error to="kill"/>
    </action>
    
        <fork name="ForkPar">
        <path start="TouchPar1" />
        <path start="TouchPar2" />
    </fork>
    
        <action name="TouchPar1">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchpar1'/>
        </fs>
        <ok to="dec"/>
        <error to="kill"/>
    </action>
    
        <decision name="dec">
        <switch>
            <case to="TouchDec1">
              true
            </case>
            <case to="TouchDec2">
                          false
            </case>
            <default to="TouchDec1"/>
        </switch>
    </decision>
    
        <action name="TouchDec1">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchdec1'/>
        </fs>
        <ok to="TouchEndDec"/>
        <error to="kill"/>
    </action>
    
        <action name="TouchDec2">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchdec1'/>
        </fs>
        <ok to="TouchEndDec"/>
        <error to="kill"/>
    </action>
    
        <action name="TouchEndDec">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchenddec'/>
        </fs>
        <ok to="join-550"/>
        <error to="kill"/>
    </action>
        
    <action name="TouchPar2">
        <fs>
              <touchz path='${nameNode}/user/pmarseille/Touchpar1'/>
        </fs>
        <ok to="join-550"/>
        <error to="kill"/>
    </action>
    
        <join name="join-550" to="end"/>
        <kill name="kill">
        <message>Action failed, error 
message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>
{code}

As you can see, this is a valid DAG.  TouchEndDec can only be called by 
TouchDec1 or TouchDec2... which are part of a decision node. However, I get an 
error saying "Error: E0743 : E0743: Multiple "ok to" transitions to the same 
node, [TouchEndDec], are not allowed"


                
> forkjoin validation blocks some valid cases involving decision nodes
> --------------------------------------------------------------------
>
>                 Key: OOZIE-1403
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1403
>             Project: Oozie
>          Issue Type: Bug
>    Affects Versions: 3.3.2
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>             Fix For: trunk
>
>
> As described 
> [here|https://issues.apache.org/jira/browse/OOZIE-1035?focusedCommentId=13676534&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13676534]
>  in OOZIE-1035, the new forkjoin checker code is blocking some valid cases 
> involving decision nodes where the decision nodes are inside the forkjoin; 
> when they are outside, its not a problem.
> 1) This uses a decision node to "insert" an action based on {{foo}}:
> {noformat}
> <fork>
>    <goto decision>
>    <goto join>
> </fork>
> <decision>
>    <if foo, goto A>
>    <else, goto B>
> </decision>
> <action A>
>    <ok to="B">
> </action A>
> <action B>
>    <ok to="join">
> </action B>
> <join>
> {noformat}
> 2) This uses a decision node to "replace" an action based on {{foo}}:
> {noformat}
> <fork>
>    <goto decision>
>    <goto join>
> </fork>
> <decision>
>    <if foo, goto A>
>    <else, goto B>
> </decision>
> <action A>
>    <ok to="join">
> </action A>
> <action B>
>    <ok to="join">
> </action B>
> <join>
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to