ruanwenjun commented on issue #17048: URL: https://github.com/apache/dolphinscheduler/issues/17048#issuecomment-2720505840
> > A task is executed only if all upstream edges are reachable, in your dag, the switch doesn't want `echo_teriteri` executed. > > You're correct that in this DAG, the switch does not want `echo_teriteri` executed. > > **However, the key question here is:** Should `switch_channel` be considered an upstream dependency of `echo_teriteri` if the condition for the `echo_teriteri` branch is not met? > > If `switch_channel` should indeed be counted as an upstream dependency, then based on the logic that "A task is executed only if all upstream edges are reachable," the second DAG should not execute `echo_teriteri` because `do_nothing` is unreachable. However, **this is not the current system behavior.** > > Let’s break it down: > > **First DAG:** > > 1. `switch_channel` wants `echo_teriri` executed. > 2. `echo_teriri` wants `echo_teriteri` executed. > 3. `switch_channel` does not want `echo_teriteri` executed. > 4. Steps 2 and 3 conflict. Since "A task is executed only if all upstream edges are reachable," `echo_teriteri` is not executed. > > **Second DAG:** > > 1. `switch_channel` wants `echo_teriri` executed. > 2. `echo_teriri` wants `echo_teriteri` executed. > 3. `switch_channel` does not want `do_nothing` executed. > 4. `do_nothing` is not executed, which should block `echo_teriteri`. > 5. Steps 2 and 4 conflict. However, **contrary to the stated logic**, `echo_teriteri` is still executed. > > This inconsistency is problematic. > > **Most importantly:** > > * If the system is designed to prevent `echo_teriteri` from executing in the first DAG, the workflow instance should **end normally.** > * Instead, the instance **ends in FAIL status** despite no failed tasks being present. > * Restarting the instance leads to a **zombie process** that keeps running indefinitely and cannot be killed. In the second DAG `do_nothing` will be removed from the execution graph after the switch_channel executed, so it will not affect echo_teriteri. And for the problem, you can test on dev, the whole logic has been refactored, I am not sure if this problem still exist, if exist we should fix this. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
