This is the integration point that makes the whole feature real end-to-end. Calls sim_reconcile_unaccounted_jobs() (tasks 2.2-2.4) at exactly the position design.md's mermaid diagram requires: after xce_core_begin_session()'s reset, strictly before sched_account_jobs() (so the same round's re-charge picks up every newly-reconstructed job, Req 1.3/1.4) and before xce_core_signal_go() unblocks the live picker (so still-pending jobs' capacity checks this round see correct resInUse, Req 2.1/2.2). decoded_session and record_ctx are the same per-round locals sched_sim_driver_run() already declares -- no new plumbing. sim_verify.c needs zero changes: reconciliation consumes/compacts decoded_session->decisions before the verify drain loop runs each round, which is what keeps the existing positional comparison correct (Req 5.2) -- confirmed by extending test_sim_verify.c with a no-false-mismatch test against a recording containing already-resolved jobs. New end-to-end test proves the ordering matters for real: a reconciled job's resInUse is charged before a live sched_check_host_satisfy() call for a different job in the same round correctly denies it (5.0 wanted vs 2.0 remaining) and grants an exact-fit request (2.0) -- using the real scheduler.c/resource.c accounting and capacity-check code, not stubs. Found and fixed a test-authoring bug (get_resvals() returns nres on success, not 0) during GREEN verification -- logged as bug-1622, a test bug, not production. 47/48 scheduler tests pass; the 1 failure is pre-existing bug-1560 (unrelated). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| settings | ||
| specs | ||
| steering | ||