From df5fc0941185167d4f86472491381de1cb4c4849 Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Mon, 12 Feb 2018 10:10:20 -0800 Subject: [PATCH] compare Pods by UID, not by name and namespace --- pkg/scheduler/core/scheduling_queue.go | 6 +++--- pkg/scheduler/core/scheduling_queue_test.go | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/scheduler/core/scheduling_queue.go b/pkg/scheduler/core/scheduling_queue.go index 21bbaf23af6..330aaa12c60 100644 --- a/pkg/scheduler/core/scheduling_queue.go +++ b/pkg/scheduler/core/scheduling_queue.go @@ -202,8 +202,8 @@ func NewPriorityQueue() *PriorityQueue { func (p *PriorityQueue) addNominatedPodIfNeeded(pod *v1.Pod) { nnn := NominatedNodeName(pod) if len(nnn) > 0 { - for _, p := range p.nominatedPods[nnn] { - if p.Name == pod.Name && p.Namespace == pod.Namespace { + for _, np := range p.nominatedPods[nnn] { + if np.UID == pod.UID { glog.Errorf("Pod %v/%v already exists in the nominated map!", pod.Namespace, pod.Name) return } @@ -217,7 +217,7 @@ func (p *PriorityQueue) deleteNominatedPodIfExists(pod *v1.Pod) { nnn := NominatedNodeName(pod) if len(nnn) > 0 { for i, np := range p.nominatedPods[nnn] { - if np.Name == pod.Name && np.Namespace == pod.Namespace { + if np.UID == pod.UID { p.nominatedPods[nnn] = append(p.nominatedPods[nnn][:i], p.nominatedPods[nnn][i+1:]...) if len(p.nominatedPods[nnn]) == 0 { delete(p.nominatedPods, nnn) diff --git a/pkg/scheduler/core/scheduling_queue_test.go b/pkg/scheduler/core/scheduling_queue_test.go index bae5a606eac..05c293fde03 100644 --- a/pkg/scheduler/core/scheduling_queue_test.go +++ b/pkg/scheduler/core/scheduling_queue_test.go @@ -31,6 +31,7 @@ var highPriorityPod, highPriNominatedPod, medPriorityPod, unschedulablePod = v1. ObjectMeta: metav1.ObjectMeta{ Name: "hpp", Namespace: "ns1", + UID: "hppns1", }, Spec: v1.PodSpec{ Priority: &highPriority, @@ -40,6 +41,7 @@ var highPriorityPod, highPriNominatedPod, medPriorityPod, unschedulablePod = v1. ObjectMeta: metav1.ObjectMeta{ Name: "hpp", Namespace: "ns1", + UID: "hppns1", }, Spec: v1.PodSpec{ Priority: &highPriority, @@ -52,6 +54,7 @@ var highPriorityPod, highPriNominatedPod, medPriorityPod, unschedulablePod = v1. ObjectMeta: metav1.ObjectMeta{ Name: "mpp", Namespace: "ns2", + UID: "mppns2", Annotations: map[string]string{ "annot2": "val2", }, @@ -67,6 +70,7 @@ var highPriorityPod, highPriNominatedPod, medPriorityPod, unschedulablePod = v1. ObjectMeta: metav1.ObjectMeta{ Name: "up", Namespace: "ns1", + UID: "upns1", Annotations: map[string]string{ "annot2": "val2", },