Netflix / conductor

Conductor is a microservices orchestration engine.
Apache License 2.0
12.82k stars 2.34k forks source link

Join task is completed before all forks are done in case of optional task failure #3317

Open magerkin opened 2 years ago

magerkin commented 2 years ago

Describe the bug JOIN task, which depends on an optional task that has COMPLETED_WITH_ERRORS status, completes immediatly without waiting for other dependencies to complete. Before version 3.8.2 it was waiting when all forks are done and only then went further. Now it's imposible to use outputs of other fork branches, which were completed after an optional error occured.

A bug was introduced in https://github.com/Netflix/conductor/commit/028a08271ee614bc6a190aa27ade8c8c2fc4ad83#diff-ebc515b9038973f4691b79e4dbbfec232800c5a87e95cc2ddbd12033b0fd2926R82

Details Conductor version: >= 3.8.2

Expected behavior JOIN task should get COMPLETED_WITH_ERRORS status only when all dependencies have terminal status.

Nostras commented 1 year ago

We have this issue as well. We made a custom Dockerfile that reverts this change for our needs, so that's a suggestion if this is a critical bug.