You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Dian-Xuan Yang (Jira)" <ji...@apache.org> on 2026/10/02 13:25:00 UTC
[jira] [Created] (YUNIKORN-3487) Cancel pod condition updates on shim shutdown
Dian-Xuan Yang created YUNIKORN-3487:
----------------------------------------
Summary: Cancel pod condition updates on shim shutdown
Key: YUNIKORN-3487
URL: https://issues.apache.org/jira/browse/YUNIKORN-3487
Project: Apache YuniKorn
Issue Type: Sub-task
Components: shim - kubernetes
Reporter: Dian-Xuan Yang
Assignee: Dian-Xuan Yang
{{Context.updatePodCondition()}} calls {{KubeClient.UpdateStatus()}}, which runs its Get and UpdateStatus under {{context.Background()}} inside {{retry.RetryOnConflict}} (site 8 in the YUNIKORN-3437 audit).
The call chain is driven synchronously from the core's {{inspectOutstandingRequests()}} loop, one ask at a time:
{{AsyncRMCallback.UpdateContainerSchedulingState()}} -> {{Context.HandleContainerStateUpdate()}} -> {{Context.updatePodCondition()}} -> {{KubeClient.UpdateStatus()}}
{{AsyncRMCallback}} already holds {{stopCtx}} (YUNIKORN-3369), but it is not passed down, so a slow API server keeps this path blocked after shutdown has been signalled.
Thread {{stopCtx}} through:
* {{KubeClient.UpdateStatus(ctx, pod)}} in {{pkg/client/interfaces.go}}, {{pkg/client/kubeclient.go}} and {{pkg/client/kubeclient_mock.go}}
* {{Context.HandleContainerStateUpdate()}} and {{Context.updatePodCondition()}} in {{pkg/cache/context.go}}
* {{AsyncRMCallback.UpdateContainerSchedulingState()}} passes {{callback.stopCtx}}
{{Task.UpdateTaskPodStatus()}} (site 3) keeps {{context.Background()}}; its cancellation is left to that site's own issue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org