Skip to content

Fix upstream failure branch in task lifecycle diagram - #74520

Open
YAshhh29 wants to merge 1 commit into
apache:mainfrom
YAshhh29:task-lifecycle-diagram-upstream-failed
Open

YAshhh29 wants to merge 1 commit into
apache:mainfrom
YAshhh29:task-lifecycle-diagram-upstream-failed

Conversation

@YAshhh29

@YAshhh29 YAshhh29 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Replaces #71101, which was closed under the open-PR limit and can't be reopened from my side. Same one-commit change, rebased onto main.

In the task lifecycle diagram, the two branches after "Required upstream task(s) failed?" are reversed. YES currently continues through the normal scheduling checks and NO leads to upstream_failed. It should be the other way around: when a required upstream task has failed the task moves to upstream_failed, otherwise the scheduler keeps evaluating it.

This swaps the two labels and updates the PNG and the source checksum. The checksum was recomputed after the rebase, since #74152 changed the script's metadata.

Before / after

The full diagram is very wide, so the change is hard to spot in the file diff. This is the part that changes:

diagram_task_lifecycle_before_after
Was generative AI tooling used to co-author this PR?
  • Yes. I used an AI coding assistant (GitHub Copilot, Claude Code) for parts of the change and for the rebase. I reviewed everything before pushing and I'm responsible for it.

Generated-by: Claude Code following the guidelines

@YAshhh29

YAshhh29 commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Reopening this now that I'm under the open-PR limit. Rebased onto main and regenerated the checksum after the script metadata change in #74152. It's a two-line fix to the YES/NO labels on the upstream-failure branch of the diagram, so it should be quick to review whenever someone has a moment.

A positive upstream-failure decision currently follows the normal scheduling path, while a negative decision marks the task upstream_failed. This reverses the documented task lifecycle semantics.
@YAshhh29
YAshhh29 force-pushed the task-lifecycle-diagram-upstream-failed branch from 03ad257 to 1079258 Compare October 24, 2026 12:50
@YAshhh29

Copy link
Copy Markdown
Contributor Author

Checked against a real Dag run: the task whose upstream failed ends in upstream_failed and is never queued, and the one whose upstream succeeded is scheduled and runs. That matches trigger_rule_dep.py, so YES should lead to upstream_failed. (Windows can't run task bodies in-process, so the worker step was stubbed; the scheduling is Airflow's own code.)
download

The workflows for the latest push are waiting for approval, if a maintainer could approve them.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant