From bf0ba68b221babf3f4e19ddb78f594490b8b1ab9 Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Wed, 30 Sep 2026 10:11:10 +0000 Subject: [PATCH] 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) --- .kiro/specs/scheduler-allocator-runner/tasks.md | 3 ++- issues/new_requirements.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) 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)