From 8df3ab75a4fbd814842541724bd30df10c80a702 Mon Sep 17 00:00:00 2001 From: Harry Zhang Date: Sat, 5 May 2018 22:48:56 +0800 Subject: [PATCH] Check nodeInfo before ecache --- pkg/scheduler/core/equivalence_cache.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/scheduler/core/equivalence_cache.go b/pkg/scheduler/core/equivalence_cache.go index 1b6183ba99f..a6257bf7e35 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" @@ -86,6 +87,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