amoghrajesh commented on code in PR #73030:
URL: https://github.com/apache/airflow/pull/73030#discussion_r4060007723
##########
airflow-core/src/airflow/api_fastapi/execution_api/routes/task_instances.py:
##########
@@ -670,7 +670,11 @@ def _create_ti_state_update_query_and_update_state(
query = query.values(state=updated_state, next_method=None,
next_kwargs=None)
if updated_state == TaskInstanceState.FAILED:
- # This is the only case needs extra handling for
TITerminalStatePayload
+ if isinstance(ti_patch_payload, TITerminalStatePayload) and
ti_patch_payload.retry_reason:
+ failed_retry_reason: str | None =
ti_patch_payload.retry_reason[:500]
Review Comment:
Fixed on #73027. `_finalize_task_failure` now caps the base reason at `500 -
len(suffix)` before appending, so the suffix survives any reason length; the
`[:500]` here stays as a backstop for the plain FAIL path, which has no suffix.
Pinned by a test using a 600-character reason that asserts both `len == 500`
and `endswith("; retries exhausted (3 of 3)")` — I checked it fails on the old
form.
##########
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/test_task_instances.py:
##########
@@ -2446,6 +2446,72 @@ def test_ti_update_state_to_failed_table_check(self,
client, session, create_tas
assert ti.next_kwargs is None
assert ti.duration == 3600.00
+ def test_ti_update_state_to_failed_persists_retry_reason(self, client,
session, create_task_instance):
Review Comment:
Superseded by your own follow-up on #73027 — you measured that cadwyn
doesn't reach through the `TIStateUpdate` discriminated union, so the route
validates against the head models whatever version is pinned, and the boundary
test would fail today if written. Leaving it out on that basis. The
supervisor-side gate does bind and is covered by
`TestRealBundleRetryReasonUpgrade` in `test_migrator.py`.
--
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]