Repository navigation
Retire native_serve_request_budget_unrealized: native-serve holds the budget wall - #13598
gunbai-bot[bot] wants to merge 1 commit into
Conversation
briansrls
left a comment
There was a problem hiding this comment.
LAND at exact head 231a1bc.
The Retired receipt matches the authored restoration trigger at capability grain. The trigger requires a compiled request that does not return within its declared budget to receive the typed 500, and a later request on the same process to be answered; it explicitly rejects mere presence of a thread pool/timeout or a restart that drops the request. The receipt records exactly the discriminating sequence from //gunbc/instruments:native-serve: /spin receives the typed deadline 500 at 500ms, then /hello on the same still-running process receives 200. The four-stuck-worker 503/exit-75 observation is additional ceiling evidence, not a substitute for the trigger. Naming the instrument, #13278, and the live fold is provenance around that observed capability; it does not turn the trigger into an artifact check.
The two probe changes are an authored C5 repair, not a bypass. Both functions already declare optional returns; the successful arms now construct Present { value: ... }, while their failure/shape-mismatch arms remain none. No refusal is suppressed and no production budget behavior changes.
#13224 does not invalidate retirement. Its current effect-worker construction changes the implementation behind the same door, but preserves the budget contract: a timed-out generation answers native_serve_deadline_refused, is abandoned/counts toward the stuck ceiling, and a replacement generation serves later requests. More strongly, current #13224 head d85e31a reran the same native-serve instrument with door, effect, and budget populations composed and reports exit 0. Its duplicate C5 probe wrapping is the same authored repair. If #13224 lands first, rebase this PR and keep the same retirement; if #13224 changes again, its still-enrolled budget cases must hold on the new exact head, rather than keeping this historical drop Standing indefinitely.
The generated docs projection faithfully says Retired/trigger fired without changing the declaration, population, replacement, or restoration trigger. Exact-head seed, generated, floor, emit-build, and aggregate witnesses are green; rust-unit-tests is skipped on pull_request by policy. No blocker found.
Trigger fired: `gunbc test //gunbc/instruments:native-serve` held on main at the #13219 merge (ded96bd): fixture emitted, built, started; 23 real-TCP requests, refused launch status 2, exit 0. The probe's /spin cases observe the typed 500 at the 500ms deadline for a non-returning handler, a later /hello on the same process answered 200, and past the stuck-worker ceiling the typed 503 + exit 75. The cases stay enrolled as the evidence (DESIGN 4b meta-obligation 4).
Also: the probe reader wrapped its two optional returns in `Present { value: ... }` — #13280 now refuses a bare T under T?, which made the probe fail to resolve on main.
Regenerated docs/design-rung-drops.md; main_wet exit 0. Built/run in a fresh clone, local cargo. If #13224 lands first I will rerun native-serve before this merges.
🤖 Generated with Claude Code