Remove duplicate errors from an aggregate error input.

Helps with some scheduler errors that fill the log enormously.
This commit is contained in:
Avesh Agarwal
2017-06-05 19:24:05 -04:00
parent d3146080b4
commit 667ed4ef51
3 changed files with 59 additions and 3 deletions

View File

@@ -178,7 +178,7 @@ func findNodesThatFit(
// Create filtered list with enough space to avoid growing it
// and allow assigning.
filtered = make([]*v1.Node, len(nodes))
errs := []error{}
errs := errors.MessageCountMap{}
var predicateResultLock sync.Mutex
var filteredLen int32
@@ -189,7 +189,7 @@ func findNodesThatFit(
fits, failedPredicates, err := podFitsOnNode(pod, meta, nodeNameToInfo[nodeName], predicateFuncs, ecache)
if err != nil {
predicateResultLock.Lock()
errs = append(errs, err)
errs[err.Error()]++
predicateResultLock.Unlock()
return
}
@@ -204,7 +204,7 @@ func findNodesThatFit(
workqueue.Parallelize(16, len(nodes), checkNode)
filtered = filtered[:filteredLen]
if len(errs) > 0 {
return []*v1.Node{}, FailedPredicateMap{}, errors.NewAggregate(errs)
return []*v1.Node{}, FailedPredicateMap{}, errors.CreateAggregateFromMessageCountMap(errs)
}
}