Merge pull request #121632 from kerthcet/fix/runscoreplugins

Fix panic when process RunScorePlugins for cap out of range
This commit is contained in:
Kubernetes Prow Robot 2023-10-31 13:14:32 +01:00 committed by GitHub
commit d84ee0ba69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -1030,7 +1030,7 @@ func (f *frameworkImpl) RunScorePlugins(ctx context.Context, state *framework.Cy
metrics.FrameworkExtensionPointDuration.WithLabelValues(metrics.Score, status.Code().String(), f.profileName).Observe(metrics.SinceInSeconds(startTime))
}()
allNodePluginScores := make([]framework.NodePluginScores, len(nodes))
numPlugins := len(f.scorePlugins) - state.SkipScorePlugins.Len()
numPlugins := len(f.scorePlugins)
plugins := make([]framework.ScorePlugin, 0, numPlugins)
pluginToNodeScores := make(map[string]framework.NodeScoreList, numPlugins)
for _, pl := range f.scorePlugins {

View File

@ -1385,6 +1385,22 @@ func TestRunScorePlugins(t *testing.T) {
},
},
},
{
name: "skipped prescore plugin number greater than the number of score plugins",
plugins: buildScoreConfigDefaultWeights(scorePlugin1),
pluginConfigs: nil,
skippedPlugins: sets.New(scorePlugin1, "score-plugin-unknown"),
want: []framework.NodePluginScores{
{
Name: "node1",
Scores: []framework.PluginScore{},
},
{
Name: "node2",
Scores: []framework.PluginScore{},
},
},
},
}
for _, tt := range tests {