Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Once a workflow (that wasn't started by a coordinator) ends, there's almost always a warning/error logged that looks like this:
2013-07-09 16:16:54,711 WARN CoordActionUpdateXCommand:542 - USER[rkanter] GROUP[-] TOKEN[] APP[pig-wf] JOB[0000000-130709161625948-oozie-rkan-W] ACTION[-] E1100: Command precondition does not hold before execution, [, coord action is null], Error Code: E1100
The error is harmless, but it tends to confuse users who think that something went wrong. It also means that we have an extra unnecessary command in the queue for every workflow that wasn't started by a coordinator.
In SignalXCommand, there is a line like this:
new CoordActionUpdateXCommand(wfJob).call(); //Note: Called even if wf is not necessarily instantiated by coordinator
The comment is part of the original code, and makes me think that this was done on purpose or perhaps when there wasn't a good way to check if a workflow was started by a coordinator?
I think we can fix this by simply checking if the parent of wfJob is a coordinator.