diff --git a/.kiro/specs/scheduler-allocator-runner/tasks.md b/.kiro/specs/scheduler-allocator-runner/tasks.md index 4ae2f41b..167845ee 100644 --- a/.kiro/specs/scheduler-allocator-runner/tasks.md +++ b/.kiro/specs/scheduler-allocator-runner/tasks.md @@ -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. diff --git a/issues/new_requirements.md b/issues/new_requirements.md index 39461a58..02285a77 100644 --- a/issues/new_requirements.md +++ b/issues/new_requirements.md @@ -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)