YoannAbriel opened a new pull request, #63250:
URL: https://github.com/apache/airflow/pull/63250
## Problem
When a DAG run times out via `dagrun_timeout`, unfinished task instances are
marked `SKIPPED` but their `end_date` is never set. The UI computes duration as
`now - start_date`, so skipped tasks show a continuously increasing duration —
confusing and incorrect.
## Root Cause
In `SchedulerJobRunner._schedule_dag_run`, the timeout handler sets
`task_instance.state = TaskInstanceState.SKIPPED` but doesn't touch `end_date`.
Without an `end_date`, the UI falls back to computing live duration.
## Fix
Set `end_date = timezone.utcnow()` alongside the state change for all tasks
skipped by dagrun timeout. Added a test that creates a timed-out DAG run with
running tasks and verifies `end_date` is populated after the scheduler
processes it.
Closes: #58536
<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code
Generated-by: Claude Code following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
---
* Read the **[Pull Request
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
for more information. Note: commit author/co-author name and email in commits
become permanently public when merged.
* For fundamental code changes, an Airflow Improvement Proposal
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
is needed.
--
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]