feat(scheduler-sim-decision-parity): add reconciliation trigger and lookup (task 2.2)
Adds sim_reconcile_unaccounted_jobs(xce_sched_sim_driver_t*, replay_session_t*) to sim_loop.c -- not yet wired into the round boundary (task 3). Once per call, finds every RUN-state job with job->accounts == NULL (the signature of a job already resolved before this replay's own live decision-making ever considered it) and searches this round's decoded recorded-decision stream for a matching DISPATCH entry by jobid. This task implements only the trigger + lookup + not-found path: when no match exists, the job's allocation is left unknown (not fabricated), no error is raised, and the job is safe to re-check next round (Requirement 4.1, 4.2). Match-found reconstruction (ownership transfer, freeing/ compacting the consumed entry, reporting) is tasks 2.3/2.4, not implemented here -- decoded_session's decisions are read but not yet mutated. 6 new tests cover: not-found leaves job unaccounted, cross-round safety, already-accounted jobs are skipped, a same-jobid PEND entry is correctly not mistaken for a DISPATCH match, non-RUN-state jobs are gated out, and NULL-argument safety. RED phase: compile-error-before/link-succeeds-after, the correct RED variant for genuinely new code with no prior behavior. 46/47 scheduler tests pass; the 1 failure is pre-existing bug-1560 (unrelated). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
134380b871
commit
81358b5231
4 changed files with 618 additions and 1 deletions
|
|
@ -27,7 +27,7 @@
|
|||
- _Depends: 1.1_
|
||||
- _Boundary: Sim Driver Round-Boundary Accounting_
|
||||
|
||||
- [ ] 2.2 Detect and locate already-resolved jobs needing reconciliation
|
||||
- [x] 2.2 Detect and locate already-resolved jobs needing reconciliation
|
||||
- Identify, once per round, every currently-running job that has no known resource allocation yet (this is the signature of a job that was already resolved earlier in the original recording, before this replay run's own live decision-making ever considered it)
|
||||
- For each such job, search this round's decoded recorded-decision data for the matching originating decision by job identity
|
||||
- When no matching recorded decision is found, leave the job's allocation unknown, report its usage as unavailable rather than fabricating a value, and continue processing the rest of the replay without treating this as an error
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue