The GitHub Actions job "Tests (AMD)" on airflow.git/fix/65400-heartbeat-callback-type has succeeded. Run started by GitHub user 1fanwang (triggered by 1fanwang).
Head commit for run: 608231dff696ea0602441649cdc77ad6a0bd457a / 1fanwang <[email protected]> Fix scheduler firing on_failure_callback for heartbeat-timed-out retries When a worker stops heartbeating (OOMKill, node eviction), the scheduler's ``_purge_task_instances_without_heartbeats`` built a ``TaskCallbackRequest`` without ``task_callback_type``. The Dag processor's task-callback dispatch branches on that field: ``UP_FOR_RETRY`` runs ``on_retry_callback``, anything else (including ``None``) runs ``on_failure_callback``. So heartbeat-timeout cleanup always fired ``on_failure_callback`` even when the task still had retries remaining, producing spurious failure alerts for tasks that ultimately succeeded on retry. Set ``task_callback_type`` from a direct ``max_tries`` / ``try_number`` check. The canonical pattern elsewhere in the file uses ``ti.is_eligible_to_retry()``, but that helper has a "task not loaded" fallback (``return self.try_number <= self.max_tries``) that misreports retry-eligibility for ``retries=0`` tasks when ``ti.task`` isn't eagerly loaded — which is exactly the case in this code path. closes: #65400 Co-authored-by: kimhaggie <[email protected]> Signed-off-by: 1fanwang <[email protected]> Report URL: https://github.com/apache/airflow/actions/runs/25782589387 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
