argo-workflows
argo-workflows copied to clipboard
fix: constraint containerType outboundnode boundary. Fixes #12997
Fixes #12997
Motivation
Root cause: say we have dag
task: A(containerset)
task: B(containerset), depends: A
task: C(containerset), depends: A
if task B is processed and started before the controller can process C, C will find the deepest node in A without considering boundaries and mistakenly attach to B
Modifications
if a node(containerType) child node do not have the same boundyID, we return the current node as the deepest outbound node.
Verification
Tested: Before code change
- ran the workflow from the issue ticket, failed: incorrect dependency and controller panic
- ran new unit test without change, failed as expected
After code change
- ran the workflow from the issue ticket, succeeded with the correct dependencies
- ran unit test with the code change, succeed