Skip to content

Fix transitive dependency ordering for asset graph - #34062

Open
bandish1304 wants to merge 2 commits into
dagster-io:masterfrom
bandish1304:bandish-33764-clean
Open

Fix transitive dependency ordering for asset graph #34062
bandish1304 wants to merge 2 commits into
dagster-io:masterfrom
bandish1304:bandish-33764-clean

Conversation

@bandish1304

@bandish1304 bandish1304 commented Jul 28, 2026

Copy link
Copy Markdown

closes Issue #33764

Summary and Motivation

Makes execution planning more reliable by ensuring downstream assets wait for the right upstream work without introducing false self-dependencies or missed ordering edges.

This fixes execution-plan ordering for view-transitive dependencies in plan.py by preventing incorrect edge pruning and only skipping true same-computation self-ordering cases. The motivation is to avoid premature downstream execution or dependency cycles in subsettable multi-asset scenarios, with regression tests added to lock in the correct behavior in test_view_transitive_deps.py.

What changed

  • Avoid creating ordering dependencies when the current step and ancestor step come from the same underlying computation family.
  • Added a regression test covering a subsettable multi-asset with a virtual intermediary and an external bridge.

Testing

  • python -m pytest -q python_modules/dagster/dagster_tests/execution_tests/execution_plan_tests/test_view_transitive_deps.py
  • ruff check python_modules/dagster/dagster/_core/execution/plan python_modules/dagster/dagster_tests/execution_tests/execution_plan_tests

Comment thread python_modules/dagster/dagster/_core/execution/plan/plan.py Outdated
@greptile-apps

greptile-apps Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Refines transitive dependency ordering for virtual assets.

  • Uses computation identity rather than node-definition names to recognize steps from the same computation family.
  • Preserves ordering between distinct computations while avoiding cycles between split invocations of a subsettable multi-asset.
  • Adds regression coverage for same-name computations and a virtual-asset/external-bridge execution graph.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
python_modules/dagster/dagster/_core/execution/plan/plan.py Replaces name-based ordering suppression with step-key and computation-identity checks, resolving the previously reported dropped dependency without exposing a distinct related failure.
python_modules/dagster/dagster_tests/execution_tests/execution_plan_tests/test_view_transitive_deps.py Adds focused regression tests for distinct computations sharing names and split subsettable multi-assets connected through virtual and external assets.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Early["multi_asset: early"] --> View["view_mid (virtual)"]
  View --> External["external_bridge"]
  External --> Late["multi_asset: late"]
  Early -. "same computation family: no extra ordering edge" .-> Late
Loading

Reviews (2): Last reviewed commit: "Refine computation-family comparison for..." | Re-trigger Greptile

@bandish1304 bandish1304 changed the title Fix transitive dependency ordering for asset graph Issue # 33764. Fix transitive dependency ordering for asset graph Jul 29, 2026
@bandish1304 bandish1304 changed the title Issue # 33764. Fix transitive dependency ordering for asset graph Fix transitive dependency ordering for asset graph Issue# 33764 Jul 29, 2026
@bandish1304 bandish1304 changed the title Fix transitive dependency ordering for asset graph Issue# 33764 Fix transitive dependency ordering for asset graph Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant