Skip to content

Sweep visibility: log and cancel over-budget requests whose client left - #19

Merged
adhikjoshi merged 1 commit into
mainfrom
fix/timeout-sweep-visibility
Aug 21, 2026
Merged

adhikjoshi merged 1 commit into
mainfrom
fix/timeout-sweep-visibility

Conversation

@adhikjoshi

@adhikjoshi adhikjoshi commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Chasing the frontend 210s stalls exposed a sweep blind spot: when the client fd is already gone (nginx gave up first), the sweep continued before its log line — so over-budget workers burned invisibly and prod showed zero sweep logs ever. Now: both cases log with age/worker/fd, and abandoned requests get their coroutine cancelled instead of running out the clock. E2E-verified both paths. Suite 190 green.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

The timeout sweep skipped silently when the request's fd was already
closed - exactly what happens when a downstream proxy (nginx at 210s)
gives up before octane's budget: the worker kept burning to completion
and nothing was ever logged, making a whole class of production stalls
invisible. Both over-budget cases now log (with age, worker pid, fd),
and the client-gone case cancels the coroutine instead of letting it
run out the clock. E2E: alive-fd hang -> 408 + log; abandoned hang ->
'(client gone)' log + cancel.
@adhikjoshi
adhikjoshi merged commit 9c622df into main Aug 21, 2026
2 checks passed
@adhikjoshi
adhikjoshi deleted the fix/timeout-sweep-visibility branch August 21, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant