[v3-1-test] Fix grid view crash when task converted to TaskGroup (#61208) (#61279)#62181
Merged
pierrejeambrun merged 1 commit intoapache:v3-1-testfrom Feb 19, 2026
Merged
Conversation
…pache#61279) * Fix grid view crash when task converted to TaskGroup (apache#61208) This commit fixes a TypeError crash in the grid view endpoint when a task is converted to a TaskGroup (or vice versa) between DAG versions. Root Cause: - Old DagRuns had task structure with children=None - New DagRuns had TaskGroup structure with children=[...] - The _merge_node_dicts function tried to iterate over None -> TypeError Changes: 1. Added defensive None checks in _merge_node_dicts function 2. Only merge children if both nodes have children (not None) 3. Added comprehensive unit tests for edge cases 4. Added integration test for task->TaskGroup conversion scenario Fixes apache#61208 * Fix merge logic and add comprehensive tests per reviewer feedback * Fix integration test: use SerializedDagModel.write_dag instead of DBDagBag.bag_dag * Fix import: use serialized_objects.LazyDeserializedDAG instead of definitions.dag * Simplify test: use only sync_dag_to_db (removes redundant write_dag calls) * Trigger CI re-run * Fix test case: invert v1/v2 to test TaskGroup-to-task conversion The bug in issue apache#61208 occurs when a TaskGroup is converted to a simple task, not the other way around. This commit inverts Version 1 and Version 2 in the test case to properly test the actual bug scenario: - Version 1: task_a is a TaskGroup with subtasks - Version 2: task_a becomes a simple task Updated all comments and assertions accordingly. * Fix trailing blank line in test_grid.py Pre-commit hooks removed trailing blank line - updating to match. * Improve test assertions with full expected JSON - Add API call after v1 to verify TaskGroup structure - Replace partial assertions with full expected JSON comparison - Verify v1 shows TaskGroup with children, v2 shows simple task - Addresses review feedback from @jason810496 * Adjust and clean test --------- Co-authored-by: pierrejeambrun <pierrejbrun@gmail.com> (cherry picked from commit 060532b)
Member
Author
|
Backport of #62181 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit fixes a TypeError crash in the grid view endpoint when a task is converted to a TaskGroup (or vice versa) between DAG versions.
Root Cause:
Changes:
Fixes #61208
Fix merge logic and add comprehensive tests per reviewer feedback
Fix integration test: use SerializedDagModel.write_dag instead of DBDagBag.bag_dag
Fix import: use serialized_objects.LazyDeserializedDAG instead of definitions.dag
Simplify test: use only sync_dag_to_db (removes redundant write_dag calls)
Trigger CI re-run
Fix test case: invert v1/v2 to test TaskGroup-to-task conversion
The bug in issue #61208 occurs when a TaskGroup is converted to a simple task, not the other way around. This commit inverts Version 1 and Version 2 in the test case to properly test the actual bug scenario:
Updated all comments and assertions accordingly.
Pre-commit hooks removed trailing blank line - updating to match.
(cherry picked from commit 060532b)
Was generative AI tooling used to co-author this PR?
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.