Merge pull request #107816 from DuC-cnZj/master

fix flushBackoffQCompleted: remove defer
This commit is contained in:
Kubernetes Prow Robot 2022-01-28 10:16:31 -08:00 committed by GitHub
commit a5d28a638f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -411,24 +411,29 @@ func (p *PriorityQueue) AddUnschedulableIfNotPresent(pInfo *framework.QueuedPodI
func (p *PriorityQueue) flushBackoffQCompleted() {
p.lock.Lock()
defer p.lock.Unlock()
broadcast := false
for {
rawPodInfo := p.podBackoffQ.Peek()
if rawPodInfo == nil {
return
break
}
pod := rawPodInfo.(*framework.QueuedPodInfo).Pod
boTime := p.getBackoffTime(rawPodInfo.(*framework.QueuedPodInfo))
if boTime.After(p.clock.Now()) {
return
break
}
_, err := p.podBackoffQ.Pop()
if err != nil {
klog.ErrorS(err, "Unable to pop pod from backoff queue despite backoff completion", "pod", klog.KObj(pod))
return
break
}
p.activeQ.Add(rawPodInfo)
metrics.SchedulerQueueIncomingPods.WithLabelValues("active", BackoffComplete).Inc()
defer p.cond.Broadcast()
broadcast = true
}
if broadcast {
p.cond.Broadcast()
}
}