Merge pull request #122068 from caohe/fix-multi-point

fix(scheduler): fix incorrect loop logic in MultiPoint to avoid a plugin being loaded multiple times
This commit is contained in:
Kubernetes Prow Robot
2023-12-14 05:10:37 +01:00
committed by GitHub
2 changed files with 51 additions and 1 deletions

View File

@@ -37,6 +37,7 @@ import (
"k8s.io/kubernetes/pkg/scheduler/framework"
"k8s.io/kubernetes/pkg/scheduler/framework/parallelize"
"k8s.io/kubernetes/pkg/scheduler/metrics"
"k8s.io/kubernetes/pkg/util/slice"
)
const (
@@ -536,7 +537,7 @@ func (f *frameworkImpl) expandMultiPointPlugins(logger klog.Logger, profile *con
// - part 3: other plugins (excluded by part 1 & 2) in regular extension point.
newPlugins := reflect.New(reflect.TypeOf(e.slicePtr).Elem()).Elem()
// part 1
for _, name := range enabledSet.list {
for _, name := range slice.CopyStrings(enabledSet.list) {
if overridePlugins.has(name) {
newPlugins = reflect.Append(newPlugins, reflect.ValueOf(pluginsMap[name]))
enabledSet.delete(name)