myxce/src/scheduler
Rongsong Shen 0fe27d4be3
fix(scheduler): never elect a job without a schedobj (bug-1897)
A job whose snapshot resreq fails to parse (any replay captured before
the bug-1888 fix) is kept by xce_sched_core_load_snapshot() with no
schedobj, but was still made a picker candidate -- by the loader and, in
simulation mode, by sim_bootstrap_picker()'s picker rebuild. The
allocator thread then dereferenced the NULL schedobj in
limit_job_election() and xce_scheduler --sim crashed.

Both push sites now skip such a job (it stays in the core so a restored
allocation is still charged), and sched_allocator() skips any picked job
without a schedobj as a backstop.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 03:45:51 +00:00
..
include refactor(scheduler-allocator-runner): describe the framework runner, not the removed my_alloc() (task 5.1) 2026-09-30 10:02:46 +00:00
src fix(scheduler): never elect a job without a schedobj (bug-1897) 2026-10-01 03:45:51 +00:00
testsuite fix(scheduler): never elect a job without a schedobj (bug-1897) 2026-10-01 03:45:51 +00:00
CLAUDE.md docs(scheduler): document driver-equivalence invariant, scope decision-parity fix spec 2026-08-22 02:52:00 +00:00
meson.build feat(scheduler-allocator-runner): runner guards and shared-resource precheck (task 3.1) 2026-09-30 08:58:07 +00:00