You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is this a BUG REPORT or FEATURE REQUEST?: BUG REPORT
What happened:
A step creates a global artifact global-art with value "A". The next step is a nested workflow with a loop, where in each iteration, there is a step creates another artifact with globalName global-art with value "B", and another step reads the global-art. As "B" is written after "A", I expect to see the reader got "B", but it got "A".
(simplified graph)
✔ workflow
├---✔ A # write A to global-art
└-·-✔ loop(0:B)
| ├---✔ B # write B to global-art
| └---✔ read-B # expected to read "B" but got "A"
└-✔ loop(1:C)
├---✔ C # write C to global-art
└---✔ read-C # expected to read "C" but got "A"
Besides, in my use case, the loop is sequential (parallelism=1), so I can definitely say I expect to see read-B gets B and read-C gets C. But in other use cases where many parallel steps are writing to the same global artifact, I wonder how we define what we should expect to get. "The latest generated" global artifact is a reasonable one. Another possible option is "the most nearly generated" global artifact. Is there a defined behavior currently?
In the "latest generated" case, if the loop is parallel, read-B and read-C may read (B,B), (B,C), (C,C) [(C,B) is not possible]. while in the "most nearly generated" case, they always read (B,C).
What you expected to happen:
The steps inside nested workflows read the latest written global artifact.
How to reproduce it (as minimally and precisely as possible):
Is this a BUG REPORT or FEATURE REQUEST?: BUG REPORT
What happened:
A step creates a global artifact
global-art
with value "A". The next step is a nested workflow with a loop, where in each iteration, there is a step creates another artifact with globalNameglobal-art
with value "B", and another step reads theglobal-art
. As "B" is written after "A", I expect to see the reader got "B", but it got "A".(simplified graph)
Besides, in my use case, the loop is sequential (parallelism=1), so I can definitely say I expect to see
read-B
getsB
andread-C
getsC
. But in other use cases where many parallel steps are writing to the same global artifact, I wonder how we define what we should expect to get. "The latest generated" global artifact is a reasonable one. Another possible option is "the most nearly generated" global artifact. Is there a defined behavior currently?In the "latest generated" case, if the loop is parallel,
read-B
andread-C
may read (B,B), (B,C), (C,C) [(C,B) is not possible]. while in the "most nearly generated" case, they always read (B,C).What you expected to happen:
The steps inside nested workflows read the latest written global artifact.
How to reproduce it (as minimally and precisely as possible):
https://gist.github.com/WeiTang114/ed3813ea801180c3cf860a3caa42eac9
Anything else we need to know?:
Environment:
Other debugging information (if applicable):
The text was updated successfully, but these errors were encountered: