Deferred KubernetesPodOperator pushes XCom on successful execution.#58488
Conversation
| if self.do_xcom_push: | ||
| return xcom_sidecar_output |
There was a problem hiding this comment.
This could be illegal syntax in a future Python version. We'll need to take that return out of finally.
https://peps.python.org/pep-0765/
There was a problem hiding this comment.
@AutomationDev85 the more I revisit the core the more I think this patch was not good. Actually you wanted to push XCom but with this you are masking the exception raise.
Can you re-work? I assume you to manually xcom_push() and then raise in case of error, else return XCom in this way only on success but not in finally.
There was a problem hiding this comment.
@johnslavik thanks for identifying this issue!! I created a PR to fix this issue: #58998
There was a problem hiding this comment.
I assume cause is that the ruff rule https://docs.astral.sh/ruff/rules/return-in-try-except-finally/ (SIM107) is not enabled in the repo, that should have catched this. Will put this on my bucket list to enable... or if somebody else wants to make a PR I assume this is an important check we are missing atm.
There was a problem hiding this comment.
Will put this on my bucket list to enable... or if somebody else wants to make a PR I assume this is an important check we are missing atm.
Overview
After upgrading to kubernetes provider 10.10.0, XCom was no longer pushed on successful execution of KubernetesPodOperator in deferrable mode. This PR restores XCom propagation for successful deferred runs.
Change Summary
trigger_reentryreturns XCom value whendo_xcom_pushis True and execution succeeds.Feedback is welcome.