Use new AirflowTaskTerminated exception inheriting BaseException for SIGTERMs #37613
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When a task is terminated, it get sent a SIGTERM signal, (through standard_task_runner.terminate).
This signal is picked up by taskinstance.py, where it injects an AirflowException into the current running task.
The exception raised there is now changed into a new AirflowTaskTerminated exception.
This new exception inherits BaseException, so that it is not caught and ignored accidentally by code that tries to perform ordinary error handling. Because termination requests should not be ignored.
This will improve reliability of cancelling tasks and will make error logs and error categorization more clear about the reason for failure.
(The terminate function does eventually send SIGKILL if the
SIGTERM is ignored, but waiting for that should not be necessary)