chore(scheduler-allocator-runner): validation passed; new_requirements item 4 resolved (task 5.2)

Clean ASAN scheduler suite 96/96 with no expectation changes in existing
tests beyond wiring; scheduler invariant audit of the allocation path
clean (driver state-equivalence, core I/O isolation, picker/allocator
rendezvous, snapshot parity). issues/new_requirements.md item 4 marked
resolved.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-09-30 10:11:10 +00:00
parent d006de3853
commit bf0ba68b22
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
2 changed files with 4 additions and 1 deletions

View file

@ -84,7 +84,7 @@
- Done when no scheduler source or test comment presents the removed routines as current code, and the suite still passes
- _Requirements: 1.5_
- [ ] 5.2 Prove equivalence across modes and close the tracked item
- [x] 5.2 Prove equivalence across modes and close the tracked item
- Run the full scheduler ASAN suite and confirm the existing allocation, task-count wiring, unsatisfiable-cache dispatch, simulation parity, simulation live-allocation, limit fan-out, election fixture and snapshot-load allocator tests pass with unchanged expectations
- Run the scheduler invariant audit and confirm no new violations in the allocation path (driver state-equivalence between normal and simulation mode included)
- Mark `issues/new_requirements.md` item 4 resolved with a reference to this spec
@ -105,3 +105,4 @@
- Incremental rebuilds in `src/build.alloc` can miss a file restored after a temporary RED edit if its mtime ends up older than the object; `touch` restored files before the GREEN run (seen in 3.1).
- Stale references for 5.1 (from 4.1 review): test_parjob_combinatorial.c lines ~6, 56, 106, 668, 806 and helper `drive_my_alloc`; scheduler.h:415; sim_alloc.c:48; test_host_iter.c:665; test_parjob_e2e_multislot.c:138 (plus seqjob ones after 4.2).
- Stale references for 5.1 (from 4.2 review): sim_alloc.c:36-175, scheduler.c:166, test names `test_my_alloc_*` and helper `drive_my_alloc` in test_seqjob_allocator.c / test_seqjob_rewrap_equivalence.c, and their my_alloc() comments.
- Follow-up (pre-existing gap, 5.2 review): no simulation-mode parity test drives parjob through allocation (sim parity fixtures pin maxTasks=1). Equivalence holds by construction (same factory + runner in both modes); a sim-driver parjob multi-host parity fixture would close the gap.

View file

@ -110,6 +110,8 @@ we prefer to make jobinfo to also show resreq and pending reason information and
According the design of scheduler-allocation project we can make a general allocation function in plugin framework to make sequential and parallel allocation plugins do not need to export my_alloc().
Resolved (2026-09-30): see `.kiro/specs/scheduler-allocator-runner/`. The framework routine `sched_allocator_run()` (src/scheduler/src/alloc_runner.c) is now the single allocation entry point (`job_alloc_fn`) for both allocator plugins; seqjob and parjob supply only their policy via `allocator_iface` (plan generator, optional acceptance guard), and both private `my_alloc()` routines were removed.
5. Enhance controller to clean up jobs which meet following conditions:
- pre-defined parameter in cluster configuration for how long to keep a job before it can be clean uped
- Job is completed until not exceed a period (say job clean up period)