mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 18:02:01 +00:00
Merge pull request #114518 from Huang-Wei/bug-all-filters
Fix a regression that scheduler always go through all Filter plugins
This commit is contained in:
commit
3f6738b8e6
@ -730,11 +730,10 @@ func (f *frameworkImpl) RunFilterPlugins(
|
||||
if !pluginStatus.IsUnschedulable() {
|
||||
// Filter plugins are not supposed to return any status other than
|
||||
// Success or Unschedulable.
|
||||
errStatus := framework.AsStatus(fmt.Errorf("running %q filter plugin: %w", pl.Name(), pluginStatus.AsError())).WithFailedPlugin(pl.Name())
|
||||
return map[string]*framework.Status{pl.Name(): errStatus}
|
||||
pluginStatus = framework.AsStatus(fmt.Errorf("running %q filter plugin: %w", pl.Name(), pluginStatus.AsError()))
|
||||
}
|
||||
pluginStatus.SetFailedPlugin(pl.Name())
|
||||
statuses[pl.Name()] = pluginStatus
|
||||
return map[string]*framework.Status{pl.Name(): pluginStatus}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1506,7 +1506,6 @@ func TestFilterPlugins(t *testing.T) {
|
||||
name: "TestPlugin1",
|
||||
inj: injectedResult{FilterStatus: int(framework.Error)},
|
||||
},
|
||||
|
||||
{
|
||||
name: "TestPlugin2",
|
||||
inj: injectedResult{FilterStatus: int(framework.Error)},
|
||||
@ -1517,6 +1516,23 @@ func TestFilterPlugins(t *testing.T) {
|
||||
"TestPlugin1": framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus)).WithFailedPlugin("TestPlugin1"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "UnschedulableAndUnschedulableFilters",
|
||||
plugins: []*TestPlugin{
|
||||
{
|
||||
name: "TestPlugin1",
|
||||
inj: injectedResult{FilterStatus: int(framework.Unschedulable)},
|
||||
},
|
||||
{
|
||||
name: "TestPlugin2",
|
||||
inj: injectedResult{FilterStatus: int(framework.Unschedulable)},
|
||||
},
|
||||
},
|
||||
wantStatus: framework.NewStatus(framework.Unschedulable, injectFilterReason).WithFailedPlugin("TestPlugin1"),
|
||||
wantStatusMap: framework.PluginToStatus{
|
||||
"TestPlugin1": framework.NewStatus(framework.Unschedulable, injectFilterReason).WithFailedPlugin("TestPlugin1"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "SuccessAndSuccessFilters",
|
||||
plugins: []*TestPlugin{
|
||||
|
Loading…
Reference in New Issue
Block a user