Sweep visibility: log and cancel over-budget requests whose client left - #19
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.