Skip to content

Commit bcf5125

Browse files
authored
Update TI.dag_version after dag/taskinstance clearing (#55180)
If run with latest bundle is selected during clear, then we should also update the TI.dag_version same way we updated dagrun. This is primarily for consistency in the UI
1 parent f4daefc commit bcf5125

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

airflow-core/src/airflow/models/taskinstance.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ def clear_task_instances(
288288
dr.created_dag_version_id = dag_version.id
289289
dr.dag = dr_dag
290290
dr.verify_integrity(session=session, dag_version_id=dag_version.id)
291+
for ti in dr.task_instances:
292+
ti.dag_version_id = dag_version.id
291293
else:
292294
dr_dag = scheduler_dagbag.get_dag_for_run(dag_run=dr, session=session)
293295
if not dr_dag:

airflow-core/tests/unit/models/test_cleartasks.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,11 @@ def test_clear_task_instances_with_run_on_latest_version(self, run_on_latest_ver
717717
assert dr.created_dag_version_id == new_dag_version.id
718718
assert dr.bundle_version == new_dag_version.bundle_version
719719
assert TaskInstanceState.REMOVED in [ti.state for ti in dr.task_instances]
720+
for ti in dr.task_instances:
721+
assert ti.dag_version_id == new_dag_version.id
720722
else:
721723
assert dr.created_dag_version_id == old_dag_version.id
722724
assert dr.bundle_version == old_dag_version.bundle_version
723725
assert TaskInstanceState.REMOVED not in [ti.state for ti in dr.task_instances]
726+
for ti in dr.task_instances:
727+
assert ti.dag_version_id == old_dag_version.id

0 commit comments

Comments
 (0)