GitHub user Szjs-z closed a discussion: [Question] Task duration keeps 
increasing for skipped tasks due to DAG timeout

Hi Airflow community,

I've encountered an issue where task duration keeps increasing for tasks that 
are skipped due to DAG timeout:

**Problem Description:**
When a DAG run times out due to `dagrun_timeout`, the unfinished tasks are 
marked as `SKIPPED`. However, in the Web UI, the task duration continues to 
increase even though the task state is `SKIPPED` :

<img width="770" height="428" alt="Screenshot 2025-07-29 at 17 42 11" 
src="https://github.com/user-attachments/assets/720b243e-d915-4275-a615-b09a31bbbdb5";
 />


**Root Cause Analysis:**
>From code inspection in `airflow/jobs/scheduler_job.py`, the 
>`_schedule_dag_run` method handles DAG timeout by:

```python
        if (
            dag_run.start_date
            and dag.dagrun_timeout
            and dag_run.start_date < timezone.utcnow() - dag.dagrun_timeout
        ):
            dag_run.set_state(DagRunState.FAILED)
            unfinished_task_instances = session.scalars(
                select(TI)
                .where(TI.dag_id == dag_run.dag_id)
                .where(TI.run_id == dag_run.run_id)
                .where(TI.state.in_(State.unfinished))
            )
            for task_instance in unfinished_task_instances:
                task_instance.state = TaskInstanceState.SKIPPED
                session.merge(task_instance)
            session.flush()
            self.log.info("Run %s of %s has timed-out", dag_run.run_id, 
dag_run.dag_id)

```

1. Setting DAG run state to FAILED
2. Marking unfinished tasks as SKIPPED
3. But it doesn't set `end_date` for these task instances

I'm wondering if this is a known issue or if there's a recommended way to 
handle this.

Thanks,
Chris Zhao

GitHub link: https://github.com/apache/airflow/discussions/53868

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to