feat(scheduler-snapshot-job-allocation): restore allocs/accounts on load
Task 2.2: xce_sched_core_load_snapshot() now restores job->allocs via dup_job_alloc() (never aliasing the wire job's own copy, since it belongs to a const, potentially-shared snapshot struct) and rebuilds job->accounts via the existing make_job_account(), positioned right after task 1.2's schedobj construction and before sched_add_job(). Independent of resreq parse success -- not nested inside that guard. Absent allocation data is the normal case: no WARN, no error. New tests prove a full cross-core round trip (save core_a, load into independent core_b): restored allocs/accounts content-match the source, with three-way pointer independence (restored vs source-core vs saved-wire) proving the deep-copy guarantee end to end. A companion test confirms a job with no allocation loads cleanly. Note: this task's implementation was completed directly after two implementer subagent dispatches hit transient API interruptions; one auto-resumed and reported a false READY_FOR_REVIEW (claiming 9/9 passing tests while the actual production code was never written, only the test file). Caught by fresh-evidence verification before trusting the report -- confirmed via an independent build+test run showing a genuine failure, then fixed and re-verified by an independent reviewer who reproduced RED-to-GREEN itself. Requirements: 1.1, 1.2, 1.3, 1.4, 3.5
This commit is contained in:
parent
6fa2d970f1
commit
182cb55574
3 changed files with 256 additions and 1 deletions
|
|
@ -27,7 +27,7 @@
|
|||
- _Boundary: snapshot save (allocation population)_
|
||||
- _Note: not marked parallel with 2.2 — both tasks' tests land in the same test file (test_snapshot_save_load.c), a shared-file conflict even though the production code they touch is disjoint._
|
||||
|
||||
- [ ] 2.2 Restore a job's resource allocation and accounting on the load side
|
||||
- [x] 2.2 Restore a job's resource allocation and accounting on the load side
|
||||
- Write a failing test first (TDD red) asserting that loading a saved job that carries a resource allocation reconstructs both the job's allocation and its per-host/per-resource accounting.
|
||||
- Restore the allocation via the deep-copy primitive from 1.1 (never sharing the saved representation's own copy), then rebuild the job's accounting from the restored allocation using the existing accounting constructor.
|
||||
- Position this restoration immediately after the scheduling-representation construction from 1.2 within the same job-reconstruction step, before the job becomes visible to the rest of the scheduler.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue