You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
crux serve sweep: one timeout over the whole sweep + end-only plan.json discards every completed row #4341
scripts/crux_inference_dogfood.sh runs the whole serve sweep (scripts/lib/crux_serve_routes.py sweep) under a single timeout $TMO, and plan.json is written only at the end. On CPU (~12 s/request, about 285 requests), any per-request TMO kills the sweep with rc 124. The judge then refuses all rows ("the serve sweep wrote no plan.json"). Run #2 (TMO 2400) lost 199 completed apr rows this way.
done_when: plan.json is written before the first request (or appended per row), and the sweep gets its own budget separate from the per-request TMO. A case-table row shows that a killed sweep keeps its completed rows.
Fixed on feat/3797-crux-serve-verify @5264457e6, which folds after merge-back #4224. plan.json is now written before the first request and after every cell, via rename. rows refuses only the cells never driven, and each refusal names the kill. The sweep lines get CELL_TMO = TMO × requests. The fix is pinned by R5 and mutants M18/M19 in check_crux_serve_code.sh. Quorum 2/2 PASS (degraded: same-family).
Done on main @ 316dee2cd4. It landed in the 0.70 fold 989cb012e5 (#4655). Each done_when item, cited at that commit:
plan.json is on disk before the first request and is rewritten after every cell, by rename: scripts/lib/crux_serve_routes.py:512 in sweep, and :547 in save_plan.
The sweep has its own budget, CELL_TMO, separate from the per-request $TMO: scripts/crux_inference_dogfood.sh:386.
The case row is killed_sweep in scripts/check_crux_serve_code.sh:195. A sweep that its timeout kills keeps every cell it finished. Only the cells it never drove are refused, and each refusal names the kill.
Closing as the owner (la-0.73). Refs #3797, #3739.
Activity
fix(crux): #4341 a killed serve sweep keeps its finished rows — plan.…
noahgift commentedon Sep 24, 2026
Fixed on feat/3797-crux-serve-verify @5264457e6, which folds after merge-back #4224. plan.json is now written before the first request and after every cell, via rename.
rowsrefuses only the cells never driven, and each refusal names the kill. The sweep lines get CELL_TMO = TMO × requests. The fix is pinned by R5 and mutants M18/M19 in check_crux_serve_code.sh. Quorum 2/2 PASS (degraded: same-family).fix(crux): #4341 a killed serve sweep keeps its finished rows — plan.…
fix(crux): #4341 a killed serve sweep keeps its finished rows — plan.…
noahgift commentedon Oct 4, 2026
Done on main @
316dee2cd4. It landed in the 0.70 fold989cb012e5(#4655). Each done_when item, cited at that commit:scripts/lib/crux_serve_routes.py:512insweep, and:547insave_plan.CELL_TMO, separate from the per-request$TMO:scripts/crux_inference_dogfood.sh:386.killed_sweepinscripts/check_crux_serve_code.sh:195. A sweep that its timeout kills keeps every cell it finished. Only the cells it never drove are refused, and each refusal names the kill.Closing as the owner (la-0.73). Refs #3797, #3739.