Preempted jobs are not put back to execution as expected


Let’s say there are three queues: “A” (low walltime, high priority), “B”, and “C”. Jobs in the “A” queue are allowed to preempt (by suspending) jobs in the “C” one. “B” jobs can neither preempt nor be preempted. Fairshare is not enabled.

Once an “A” job is queued, and there are no idle slots, one of the “C” jobs is suspended. That’s fine. However, when that high-priority job is finished, a queued “B” job enters there, and only after it’s done the preempted job is back again – while I would expect the suspended job to return to its normal execution right after the “A” job has been finished. So instead of being only shortly delayed by a quick high-priority job, the preempted job can be delayed by up to a max walltime allowed for the queue. Why is that?