unsatisfy_() compared positional total/inuse/wanted arrays (entry i is resource wanted->idxs[i]) with uncomitted[i], but the allocation context's uncommitted vectors are dense and keyed by resource index. From the second primary of a COMPOUND/ALTER job on, the check ignored earlier primaries' claim on the same resource (over-admit) or charged another resource's (wrong pend), with the matching wrong shortfall in the pend reason. unsatisfy_() now takes the vector and reads entry wanted->idxs[i]; an index past its end (sim_loop.c's short all-zero vectors) or a NULL vector counts as nothing uncommitted. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| autoscaler | ||
| configs | ||
| controller | ||
| docs | ||
| frontend | ||
| harness | ||
| include | ||
| lib | ||
| nixSupport | ||
| scheduler | ||
| schema | ||
| tools | ||
| worker | ||
| xceadmin | ||
| flake.lock | ||
| flake.nix | ||
| meson.build | ||
| meson.options | ||