Skip to content
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

Allow internal retries when pending k8s pod is deleted #45184

Merged
merged 11 commits into from
Jan 24, 2025

Conversation

karenbraganz
Copy link
Collaborator

On Airflow instances with the Kubernetes executor, a task will immediately fail if its worker pod is deleted/ evicted in the pending state. A new worker pod is not spun up to replace it, and the task fails with the below error message.

{task_context_logger.py:104} ERROR - Executor reports task instance <TaskInstance: dag_id.task_id scheduled__2024-10-20T02:00:00+00:00 [queued]> finished (failed) although the task says it's queued. (Info: None) Was the task killed externally?

This failure is triggered by this line in the source code.

If the task is not failed upon worker pod deletion, it will remain in the queued state until it reaches task_queued_timeout. Once this timeout is reached, internal retries will be allowed due to PR #43520 and a new worker pod will be spun up for the task. Therefore, if the first worker pod was deleted or evicted due to a temporary issue, the task will be able to run on the newly spun up worker pod.

In this PR, I have removed the code that fails the task when its pending worker pod is deleted. This will prevent task failures from temporary issues with pending worker pods.


^ 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.

@boring-cyborg boring-cyborg bot added area:providers provider:cncf-kubernetes Kubernetes provider related issues labels Dec 23, 2024
@karenbraganz karenbraganz force-pushed the fix-k8s-pod-deletion-task-failure branch from 240092f to 545bb84 Compare January 14, 2025 01:02
@karenbraganz karenbraganz reopened this Jan 14, 2025
@karenbraganz karenbraganz marked this pull request as ready for review January 15, 2025 15:02
Copy link
Contributor

@dimberman dimberman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, thank you so much @karenbraganz !!!

@dimberman dimberman merged commit f871e01 into apache:main Jan 24, 2025
71 checks passed
@utkarsharma2 utkarsharma2 added the changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..) label Jan 27, 2025
gpathak128 pushed a commit to gpathak128/airflow that referenced this pull request Jan 29, 2025
* Remove code that fails task upon pending pod deletion

* Remove clear_not_launched_queued_tasks

* Remove units tests for clear_not_launched_queued_tasks

* Remove worker_pods_queued_check_interval configuration

* Remove worker_pods_queued_check_interval from provider.yaml

---------

Co-authored-by: Ryan Hatter <[email protected]>
Co-authored-by: Daniel Imberman <[email protected]>
got686-yandex pushed a commit to got686-yandex/airflow that referenced this pull request Jan 30, 2025
* Remove code that fails task upon pending pod deletion

* Remove clear_not_launched_queued_tasks

* Remove units tests for clear_not_launched_queued_tasks

* Remove worker_pods_queued_check_interval configuration

* Remove worker_pods_queued_check_interval from provider.yaml

---------

Co-authored-by: Ryan Hatter <[email protected]>
Co-authored-by: Daniel Imberman <[email protected]>
niklasr22 pushed a commit to niklasr22/airflow that referenced this pull request Feb 8, 2025
* Remove code that fails task upon pending pod deletion

* Remove clear_not_launched_queued_tasks

* Remove units tests for clear_not_launched_queued_tasks

* Remove worker_pods_queued_check_interval configuration

* Remove worker_pods_queued_check_interval from provider.yaml

---------

Co-authored-by: Ryan Hatter <[email protected]>
Co-authored-by: Daniel Imberman <[email protected]>
ambika-garg pushed a commit to ambika-garg/airflow that referenced this pull request Feb 17, 2025
* Remove code that fails task upon pending pod deletion

* Remove clear_not_launched_queued_tasks

* Remove units tests for clear_not_launched_queued_tasks

* Remove worker_pods_queued_check_interval configuration

* Remove worker_pods_queued_check_interval from provider.yaml

---------

Co-authored-by: Ryan Hatter <[email protected]>
Co-authored-by: Daniel Imberman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:providers changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..) provider:cncf-kubernetes Kubernetes provider related issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants