-
Notifications
You must be signed in to change notification settings - Fork 14.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix logic to cancel the external job if the TaskInstance is not in a running or deferred state for DataprocSubmitJobOperator #39447
Conversation
Just have a quick discussion with @sunank200. We'll yield the event if CancelError was raised , and handle the TaskInstance state check and cancelation in |
fa0d5b3
to
8e90e15
Compare
This approach won't work as |
@Lee-W changed it |
afa4406
to
0e8663c
Compare
0e8663c
to
f8cc232
Compare
…running or deferred state for DataprocSubmitJobOperator (apache#39447)
PR #39230 introduces a method for handling asyncio.CancelledError in a try/except block. However, this method is deemed unsafe, and it affects
DataprocSubmitJobOperator
operators, which enables external job cancellation if the triggerer restarts or crashes. This can cause weird behaviour like rescheduling deferred operators, as Airflow remains unaware of job cancellations.As a workaround, capturing
asyncio.CancelledError
cancels the job only if the TaskInstance is not in a running or deferred state. This prevents premature external job termination.More details at: #36090 (comment)
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.