diff --git a/pkg/scheduler/schedule_one.go b/pkg/scheduler/schedule_one.go index 42fd13eb38d..5b0032f312c 100644 --- a/pkg/scheduler/schedule_one.go +++ b/pkg/scheduler/schedule_one.go @@ -603,7 +603,7 @@ func (sched *Scheduler) findNodesThatPassFilters( node string status *framework.Status } - result := make([]*nodeStatus, len(feasibleNodes)) + result := make([]*nodeStatus, numAllNodes) checkNode := func(i int) { // We check the nodes starting from where we left off in the previous scheduling cycle, // this is to make sure all nodes have the same chance of being examined across pods. @@ -625,13 +625,6 @@ func (sched *Scheduler) findNodesThatPassFilters( result[i] = &nodeStatus{node: nodeInfo.Node().Name, status: status} } } - for _, item := range result { - if item == nil { - continue - } - diagnosis.NodeToStatusMap[item.node] = item.status - diagnosis.AddPluginStatus(item.status) - } beginCheckNode := time.Now() statusCode := framework.Success @@ -646,6 +639,13 @@ func (sched *Scheduler) findNodesThatPassFilters( // are found. fwk.Parallelizer().Until(ctx, numAllNodes, checkNode, metrics.Filter) feasibleNodes = feasibleNodes[:feasibleNodesLen] + for _, item := range result { + if item == nil { + continue + } + diagnosis.NodeToStatusMap[item.node] = item.status + diagnosis.AddPluginStatus(item.status) + } if err := errCh.ReceiveError(); err != nil { statusCode = framework.Error return feasibleNodes, err