volcano-sh / volcano

A Cloud Native Batch System (Project under CNCF)
https://volcano.sh
Apache License 2.0
4.11k stars 949 forks source link

[bug] NodeVolumeLimits directly return in predicate, result in VolumeZone and PodTopologySpread predicate not works #3726

Closed JesseStutler closed 2 weeks ago

JesseStutler commented 2 weeks ago

Description

When I want to test pod topology spread constraints, I found that only prefilter worked fine, but filter in PodToplogySpread did not work. By adding some logs, finally I found that it was because in predicateFn, nodeVolumeLimits is enabled by default, and it directly returns, didn't check whether the status is api.Success. Introduced by #3553 image

Steps to reproduce the issue

  1. Directly install volcano, not change any configuration file
  2. Deploy a topology spread constraints deployment
  3. Pod won't be scheduled evenly

Describe the results you received and expected

Received

By adding some logs, I found that there was no VolumeZone and PodTopologySpread predicting, but entered NodeVolumeLimits. image

Expected

VolumeZone and PodTopologySpread predicting should work fine. But if NodeVolumeLimits is enabled, VolumeZone and PodTopologySpread can't work.

What version of Volcano are you using?

1.10

Any other relevant information

No response