diff --git a/plugin/pkg/scheduler/factory/factory.go b/plugin/pkg/scheduler/factory/factory.go index d5264223a53..89743e375ad 100644 --- a/plugin/pkg/scheduler/factory/factory.go +++ b/plugin/pkg/scheduler/factory/factory.go @@ -532,10 +532,13 @@ func (factory *ConfigFactory) makeDefaultErrorFunc(backoff *podBackoff, podQueue return } // Get the pod again; it may have changed/been scheduled already. - pod = &api.Pod{} getBackoff := initialGetBackoff for { - if err := factory.Client.Get().Namespace(podID.Namespace).Resource("pods").Name(podID.Name).Do().Into(pod); err == nil { + pod, err := factory.Client.Pods(podID.Namespace).Get(podID.Name) + if err == nil { + if len(pod.Spec.NodeName) == 0 { + podQueue.AddIfNotPresent(pod) + } break } if errors.IsNotFound(err) { @@ -548,9 +551,6 @@ func (factory *ConfigFactory) makeDefaultErrorFunc(backoff *podBackoff, podQueue } time.Sleep(getBackoff) } - if pod.Spec.NodeName == "" { - podQueue.AddIfNotPresent(pod) - } }() } }