1fanwang commented on code in PR #66405:
URL: https://github.com/apache/airflow/pull/66405#discussion_r3678834923
##########
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py:
##########
@@ -329,18 +330,20 @@ def process_status(
# since kube server have received request to delete pod set TI
state failed
if event["type"] == "DELETED" and pod.metadata.deletion_timestamp:
self.log.info(
- "Event: Pod %s deleted before it could complete,
annotations: %s",
+ "Event: Pod %s deleted while running, annotations: %s",
pod_name,
annotations_string,
)
+ # An Airflow-initiated stop sets the TI terminal first, so the
scheduler
+ # excludes that case by state and only a real disruption
reaches here.
self.watcher_queue.put(
KubernetesWatch(
pod_name,
namespace,
TaskInstanceState.FAILED,
annotations,
resource_version,
- None,
+ {"pod_status": "Running", "pod_reason":
POD_DELETED_REASON},
Review Comment:
can we use kwargs, same everywhere in new / updated code path
##########
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py:
##########
@@ -409,6 +412,51 @@ def collect_pod_failure_details(pod: k8s.V1Pod, logger) ->
FailureDetails | None
}
+# A pod taken by the platform while its task ran: node drain, preemption, spot
reclaim,
+# or a force-delete. Distinct from a container that ran and exited on its own.
+POD_DELETED_REASON = "PodDeleted"
Review Comment:
type hint for all vars and methods pls, same everywhere for updated / added
code path
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]