diff --git a/pkg/scheduler/core/equivalence_cache.go b/pkg/scheduler/core/equivalence_cache.go index 482119b7f67..8322936ff8b 100644 --- a/pkg/scheduler/core/equivalence_cache.go +++ b/pkg/scheduler/core/equivalence_cache.go @@ -17,6 +17,7 @@ limitations under the License. package core import ( + "fmt" "hash/fnv" "sync" @@ -73,6 +74,12 @@ func (ec *EquivalenceCache) RunPredicate( ) (bool, []algorithm.PredicateFailureReason, error) { ec.mu.Lock() defer ec.mu.Unlock() + + if nodeInfo == nil || nodeInfo.Node() == nil { + // This may happen during tests. + return false, []algorithm.PredicateFailureReason{}, fmt.Errorf("nodeInfo is nil or node is invalid") + } + fit, reasons, invalid := ec.lookupResult(pod.GetName(), nodeInfo.Node().GetName(), predicateKey, equivClassInfo.hash) if !invalid { return fit, reasons, nil