mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-14 13:45:06 +00:00
fix: take QHint disable scenario into consideration
This commit is contained in:
@@ -417,12 +417,10 @@ func (p *PriorityQueue) isPodWorthRequeuing(logger klog.Logger, pInfo *framework
|
|||||||
// that indicates that the event wants to be effective for the Pod only.
|
// that indicates that the event wants to be effective for the Pod only.
|
||||||
// Specifically, EventForceActivate could have a target Pod in newObj.
|
// Specifically, EventForceActivate could have a target Pod in newObj.
|
||||||
if newObj != nil {
|
if newObj != nil {
|
||||||
if pod, ok := newObj.(*v1.Pod); ok && pod.UID == pInfo.Pod.UID {
|
if pod, ok := newObj.(*v1.Pod); !ok || pod.UID != pInfo.Pod.UID {
|
||||||
logger.V(6).Info("Worth requeuing because the event is wildcard", "pod", klog.KObj(pInfo.Pod))
|
// This wildcard event is not for this Pod.
|
||||||
return queueAfterBackoff
|
return queueSkip
|
||||||
}
|
}
|
||||||
// This wildcard event is not for this Pod.
|
|
||||||
return queueSkip
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the wildcard event is special one as someone wants to force all Pods to move to activeQ/backoffQ.
|
// If the wildcard event is special one as someone wants to force all Pods to move to activeQ/backoffQ.
|
||||||
@@ -620,10 +618,11 @@ func (p *PriorityQueue) Activate(logger klog.Logger, pods map[string]*v1.Pod) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this pod is in-flight, register the activation event so that the pod will be requeued when it comes back.
|
// If this pod is in-flight, register the activation event or update moveRequestCycle so that the pod will be requeued when it comes back.
|
||||||
// Specifically in the in-tree plugins, this is for the scenario with the preemption plugin
|
// Specifically in the in-tree plugins, this is for the scenario with the preemption plugin
|
||||||
// where the async preemption API calls are all done or fail at some point before the Pod comes back to the queue.
|
// where the async preemption API calls are all done or fail at some point before the Pod comes back to the queue.
|
||||||
p.activeQ.addEventsIfPodInFlight(nil, pod, []framework.ClusterEvent{framework.EventForceActivate})
|
p.activeQ.addEventsIfPodInFlight(nil, pod, []framework.ClusterEvent{framework.EventForceActivate})
|
||||||
|
p.moveRequestCycle = p.activeQ.schedulingCycle()
|
||||||
}
|
}
|
||||||
|
|
||||||
if activated {
|
if activated {
|
||||||
|
Reference in New Issue
Block a user