You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What happened:
Two nodes in the cluster, one is free, and the other is occupied by a low priority job. Submitting a high priority job requires 2 nodes, the high priority job keeps pending instead of preempting the low priority one.
What you expected to happen:
The low priority job should be preempted, and high priority job should run.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Both the preempt and allocate action contains similar logic to discard decision if job is not pipelined. In the case mentioned above, the high priority job will be discarded in the allocate action because there is only one available node, and in the preempt action, the empty node is not considered since there's no victim on that node, and after preempting the low priority job, the high priority job still missing one node to run, thus this decision is also discarded. Ideally in the preempt action, it is better to consider the empty node as well.
What happened:
Two nodes in the cluster, one is free, and the other is occupied by a low priority job. Submitting a high priority job requires 2 nodes, the high priority job keeps pending instead of preempting the low priority one.
What you expected to happen:
The low priority job should be preempted, and high priority job should run.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Both the preempt and allocate action contains similar logic to discard decision if job is not pipelined. In the case mentioned above, the high priority job will be discarded in the allocate action because there is only one available node, and in the preempt action, the empty node is not considered since there's no victim on that node, and after preempting the low priority job, the high priority job still missing one node to run, thus this decision is also discarded. Ideally in the preempt action, it is better to consider the empty node as well.
https://github.com/volcano-sh/volcano/blob/797e10c321550981dda5e765e652566a70a44254/pkg/scheduler/actions/preempt/preempt.go#L138C1-L144C5
https://github.com/volcano-sh/volcano/blob/master/pkg/scheduler/actions/allocate/allocate.go#L277-L284
Scheduler config:
Environment:
kubectl version
):uname -a
):The text was updated successfully, but these errors were encountered: