Skip to content

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 (k8s) 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 <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Daniel Imberman <daniel.imberman@gmail.com>
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 <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Daniel Imberman <daniel.imberman@gmail.com>
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 <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Daniel Imberman <daniel.imberman@gmail.com>
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 <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Daniel Imberman <daniel.imberman@gmail.com>
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 (k8s) provider related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants