[ 
https://issues.apache.org/jira/browse/YUNIKORN-3317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18095142#comment-18095142
 ] 

Wilfred Spiegelenburg commented on YUNIKORN-3317:
-------------------------------------------------

The impact of this problem is that the core thinks the node has space left 
while the predicates will fail with an out of resource message.

It only shows up detectable if the node is almost full and if the cluster is 
almost full. Otherwise the only way to track it down is by the DEBUG log as 
shown in the description.

> Foreign allocations not tracked in core
> ---------------------------------------
>
>                 Key: YUNIKORN-3317
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3317
>             Project: Apache YuniKorn
>          Issue Type: Bug
>    Affects Versions: 1.7.0, 1.8.0, 1.9.0
>            Reporter: Wilfred Spiegelenburg
>            Assignee: Wilfred Spiegelenburg
>            Priority: Blocker
>
> Foreign allocations are pods managed by either the node (static pods) or by a 
> different scheduler in the cluster (not YuniKorn). The pods can show up in 
> the informer as an update without a create event. This breaks foreign pod 
> tracking in the core:
> {code:java}
>  
> {"stream":"stdout","log":"2026-07-08T11:08:44.202Z\tDEBUG\tshim.cache.external\texternal/scheduler_cache.go:672\tScheduler
>  cache state (UpdatePod.Pre)\t{\"nodes\": 10, \"pods\": 217, \"assumed\": 45, 
> \"pendingAllocs\": 0, \"inProgressAllocs\": 0, \"podsAssigned\": 179, 
> \"schedulingTasks\": 38, \"phases\": {\"Pending\":64,\"Running\":153}}"}
> {"stream":"stdout","log":"2026-07-08T11:08:44.202Z\tDEBUG\tshim.cache.external\texternal/scheduler_cache.go:467\tPutting
>  pod in cache\t{\"podName\": \"calico-node-b46nq\", \"podKey\": 
> \"ac73ed90-8216-418c-b312-ec16c747f2c8\"}"}
> {"stream":"stdout","log":"2026-07-08T11:08:44.202Z\tDEBUG\tshim.cache.external\texternal/scheduler_cache.go:672\tScheduler
>  cache state (UpdatePod.Post)\t{\"nodes\": 10, \"pods\": 218, \"assumed\": 
> 45, \"pendingAllocs\": 0, \"inProgressAllocs\": 0, \"podsAssigned\": 180, 
> \"schedulingTasks\": 38, \"phases\": {\"Pending\":65,\"Running\":153}}"}
> {"stream":"stdout","log":"2026-07-08T11:08:44.202Z\tDEBUG\tshim.context\tcache/context.go:405\tpod
>  is assigned to a node, trigger foreign resource update\t{\"namespace\": 
> \"kube-system\", \"podName\": \"calico-node-b46nq\", \"podStatusBefore\": 
> \"Pending\", \"podStatusCurrent\": \"Pending\"}"}
> {{code}
>  
> The log shows:
>  * adding a new pod to the cache: 217 to218
>  * already assigned: 179 to 180
>  * podStatusBefore is {{Pending}} which means we have an “old” and “new” pod 
> which only happens for an update event.
> That means we see a new pod but it came in as an update from the informer.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to