The GitHub Actions job "Tests (AMD)" on 
airflow.git/1fanwang/aip97-failure-details has failed.
Run started by GitHub user 1fanwang (triggered by 1fanwang).

Head commit for run:
188bb01c8a91f88085b3dfa7fb3aceeaf89da35a / 1fanwang <[email protected]>
AIP-97: Disruption Readiness: classify why a task failed and refund infra 
retries (no DB)

Pillar 1: add a `failure_kind` argument (infra / application / timeout / manual)
and a transient `reason` token to the `on_task_instance_failed` listener hook.
The worker sets application or timeout for the failures it catches; the
scheduler sets infra for a task killed from outside. The Kubernetes executor
classifies a failed pod (Evicted / preempted is infra; an app crash or an
OOMKill against the container's own limit is application). pluggy dispatches by
name, so a listener that does not declare the arguments is unchanged.

Pillar 2: a failure classified as infra gives back the retry it used (reuses
`max_tries`, bounded by `[core] max_infra_refunds`), so infra churn does not
spend a task's `retries`. Opt-in via `[core] infra_failure_refund_retries`, off
by default. This holds even at `retries=0`: `is_eligible_to_retry` now gates on
`max_tries` (the retry ceiling the refund bumps), matching the execution API's
`_is_eligible_to_retry`, rather than short-circuiting on the user's `retries`.
The two retry-decision paths no longer disagree, and no per-task counter or
column is needed.

No schema change: the reason is handed to the listener at failure time rather
than persisted, so this backports cleanly to older release branches with no
upgrade or rollback step. How the reason token best reaches the listener (this
transient `reason` argument, or folding it into the existing `error` argument)
is AIP-97 open question 3.

Co-authored-by: Copilot <[email protected]>
Signed-off-by: 1fanwang <[email protected]>

Report URL: https://github.com/apache/airflow/actions/runs/30426014701

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to