The GitHub Actions job "Tests (AMD)" on 
airflow.git/fix/67224-kpo-deferrable-multiple-outputs has failed.
Run started by GitHub user paultmathew (triggered by paultmathew).

Head commit for run:
b3c1666e9640a04d59c5fb250d54c3850e2956a5 / Paul Mathew <[email protected]>
Fix multiple_outputs no-op on deferrable KubernetesPodOperator

KubernetesPodOperator(do_xcom_push=True, multiple_outputs=True,
deferrable=True) silently failed to fan out the sidecar's return.json dict
into per-key XComs — only `return_value` was published. Downstream tasks
subscripting a key (operator.output["foo"] resolving to xcom_pull(key="foo"))
got None at runtime with no error.

Root cause: trigger_reentry pushed return_value manually inside a finally
block and never returned the value to the task runner, so the runner's
_push_xcom_if_needed (the code that honors multiple_outputs and fans the
dict out) was bypassed. The sync execute_sync path already returns the
result for the runner to handle (pod.py:760); this aligns trigger_reentry
with that same contract.

The failure-path manual push is preserved by moving it inside the
event["status"] != "success" branch above the raise — partial sidecar
output is still surfaced in XCom when the pod fails, and the behavior is
now strictly better: the push happens even when the subsequent _clean
call raises (previously the in-finally push was unreachable in that case).

Fixes #67224

Co-authored-by: Cursor <[email protected]>

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

With regards,
GitHub Actions via GitBox


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

Reply via email to