[
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