chore(wolf): checkpoint buglog.json (1004 bugs)

This commit is contained in:
Rongsong Shen 2026-08-22 12:48:23 +00:00
parent 88bed529a7
commit 5d194db9b1
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2

View file

@ -18209,6 +18209,28 @@
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-08-22T09:40:00Z"
},
{
"id": "bug-1623",
"timestamp": "2026-08-22T12:40:00Z",
"error_message": "Test-authoring bug while building scheduler-sim-decision-parity task 4.3 (test_sim_e2e_original_motivation.c): initial version asserted resInUse checkpoints of 17.00/18.00/20.00/12.00 (derived from the RECORDING driver own in-memory resInUse arithmetic) but the actual replay-side info worker output showed only 12.00 (ANCHOR own charge) at every checkpoint -- the first three assertions failed.",
"file": "src/scheduler/testsuite/test_sim_e2e_original_motivation.c",
"root_cause": "Recorded-Decision Reconciliation (sim_reconcile_unaccounted_jobs(), sim_loop.c, scheduler-sim-decision-parity tasks 2.2-2.4/3) matches a RUN-state, unaccounted job against a DISPATCH decision recorded in THAT SAME replayed round only -- never an earlier or later round (each round decoded_session is decoded fresh and freed immediately after that round own processing). A job that arrives PEND and is genuinely live-dispatched by a real allocator in round K, then confirmed RUN via a JOB_STATE_CHANGE event in a LATER round K+1, can never be reconciled during replay: round K+1 own decoded decisions do not contain a match (the real DISPATCH is in round K own data), so the job stays RUN+unaccounted forever (Requirement 4 graceful degradation, correctly, not a bug in production). This is structurally impossible to avoid for ANY organically-arriving job, since a job cannot simultaneously be a fresh PEND candidate for a live picker (required to ever get a real DISPATCH decision) AND already-RUN-before-the-picker-runs (required for reconciliation to even consider it) in the same round -- confirmed by direct source read of sim_loop.c/driver.c/builtin_fcfs.c before writing any test code, then independently reconfirmed empirically by running the real test binary. Only ONE job in the whole fixture (ANCHOR_ID) was deliberately engineered so its arrival+RUN-confirmation events AND its own injected DISPATCH decision land in the exact same round (round 1) -- every other churn job (J2-J12) arrives and is genuinely live-dispatched by the test own capacity-aware allocator thread in ITS OWN arrival round, so its dispatch can never be reconciled later, exactly like every other real production job whose confirmation lags its dispatch by more than zero rounds.",
"fix": "Changed all four info-worker checkpoint assertions from the RECORDING-side arithmetic (17.00/18.00/20.00/12.00, i.e. what a normal-mode continuation of the same session would show) to the REPLAY-side reality: a constant used=12.00 (ANCHOR_ID own charge only) at all four checkpoints spanning the 24-round replay, since no churn job dispatch is ever reconciled. Added an explicit non-tautology guard (used=0.00 never appears) and an extensive header-comment/round-table-comment explanation of why churn-job charges never surface during replay, so a future reader does not mistake this for an oversight. Also independently reconfirmed via a live discriminating-power check: commenting out sim_loop.c own sim_reconcile_unaccounted_jobs() call site made the ANCHOR_ID DISPATCH-visibility assertion fail for the right reason; restoring it (git diff clean on production files afterward) made the whole suite green again.",
"tags": [
"scheduler",
"sim",
"replay",
"reconciliation",
"test-authoring",
"scheduler-sim-decision-parity"
],
"related_bugs": [
"bug-1611",
"bug-1613"
],
"occurrences": 1,
"last_seen": "2026-08-22T12:40:00Z"
}
]
}
}