add pod info when failing to add pod to queue

This commit is contained in:
caiweidong 2019-11-19 20:43:42 +08:00
parent 6ff3b68d72
commit 81afa77e3b

View File

@ -260,16 +260,16 @@ func (p *PriorityQueue) Add(pod *v1.Pod) error {
defer p.lock.Unlock() defer p.lock.Unlock()
pInfo := p.newPodInfo(pod) pInfo := p.newPodInfo(pod)
if err := p.activeQ.Add(pInfo); err != nil { if err := p.activeQ.Add(pInfo); err != nil {
klog.Errorf("Error adding pod %v/%v to the scheduling queue: %v", pod.Namespace, pod.Name, err) klog.Errorf("Error adding pod %v to the scheduling queue: %v", nsNameForPod(pod), err)
return err return err
} }
if p.unschedulableQ.get(pod) != nil { if p.unschedulableQ.get(pod) != nil {
klog.Errorf("Error: pod %v/%v is already in the unschedulable queue.", pod.Namespace, pod.Name) klog.Errorf("Error: pod %v is already in the unschedulable queue.", nsNameForPod(pod))
p.unschedulableQ.delete(pod) p.unschedulableQ.delete(pod)
} }
// Delete pod from backoffQ if it is backing off // Delete pod from backoffQ if it is backing off
if err := p.podBackoffQ.Delete(pInfo); err == nil { if err := p.podBackoffQ.Delete(pInfo); err == nil {
klog.Errorf("Error: pod %v/%v is already in the podBackoff queue.", pod.Namespace, pod.Name) klog.Errorf("Error: pod %v is already in the podBackoff queue.", nsNameForPod(pod))
} }
metrics.SchedulerQueueIncomingPods.WithLabelValues("active", PodAdd).Inc() metrics.SchedulerQueueIncomingPods.WithLabelValues("active", PodAdd).Inc()
p.nominatedPods.add(pod, "") p.nominatedPods.add(pod, "")
@ -329,16 +329,16 @@ func (p *PriorityQueue) AddUnschedulableIfNotPresent(pInfo *framework.PodInfo, p
defer p.lock.Unlock() defer p.lock.Unlock()
pod := pInfo.Pod pod := pInfo.Pod
if p.unschedulableQ.get(pod) != nil { if p.unschedulableQ.get(pod) != nil {
return fmt.Errorf("pod is already present in unschedulableQ") return fmt.Errorf("pod: %v is already present in unschedulable queue", nsNameForPod(pod))
} }
// Refresh the timestamp since the pod is re-added. // Refresh the timestamp since the pod is re-added.
pInfo.Timestamp = p.clock.Now() pInfo.Timestamp = p.clock.Now()
if _, exists, _ := p.activeQ.Get(pInfo); exists { if _, exists, _ := p.activeQ.Get(pInfo); exists {
return fmt.Errorf("pod is already present in the activeQ") return fmt.Errorf("pod: %v is already present in the active queue", nsNameForPod(pod))
} }
if _, exists, _ := p.podBackoffQ.Get(pInfo); exists { if _, exists, _ := p.podBackoffQ.Get(pInfo); exists {
return fmt.Errorf("pod is already present in the backoffQ") return fmt.Errorf("pod %v is already present in the backoff queue", nsNameForPod(pod))
} }
// Every unschedulable pod is subject to backoff timers. // Every unschedulable pod is subject to backoff timers.
@ -373,7 +373,7 @@ func (p *PriorityQueue) flushBackoffQCompleted() {
pod := rawPodInfo.(*framework.PodInfo).Pod pod := rawPodInfo.(*framework.PodInfo).Pod
boTime, found := p.podBackoff.GetBackoffTime(nsNameForPod(pod)) boTime, found := p.podBackoff.GetBackoffTime(nsNameForPod(pod))
if !found { if !found {
klog.Errorf("Unable to find backoff value for pod %v in backoffQ", nsNameForPod(pod)) klog.Errorf("Unable to find backoff value for pod %v in backoff queue", nsNameForPod(pod))
p.podBackoffQ.Pop() p.podBackoffQ.Pop()
p.activeQ.Add(rawPodInfo) p.activeQ.Add(rawPodInfo)
metrics.SchedulerQueueIncomingPods.WithLabelValues("active", BackoffComplete).Inc() metrics.SchedulerQueueIncomingPods.WithLabelValues("active", BackoffComplete).Inc()
@ -386,7 +386,7 @@ func (p *PriorityQueue) flushBackoffQCompleted() {
} }
_, err := p.podBackoffQ.Pop() _, err := p.podBackoffQ.Pop()
if err != nil { if err != nil {
klog.Errorf("Unable to pop pod %v from backoffQ despite backoff completion.", nsNameForPod(pod)) klog.Errorf("Unable to pop pod %v from backoff queue despite backoff completion.", nsNameForPod(pod))
return return
} }
p.activeQ.Add(rawPodInfo) p.activeQ.Add(rawPodInfo)