Repository navigation
fix(client): don't block on responses without headers - #553
Merged
Mzack9999 merged 3 commits intoNov 7, 2026
Merged
Conversation
ReadResponse peeked five bytes ahead while skipping duplicate status lines. A response with no headers - for example a proxy's "200 Connection established" reply to CONNECT - never supplies those bytes, so Peek blocked until the connection deadline, or forever when no deadline was set, as with the proxy dialer. Parse the header section line by line instead. Duplicate status lines are still skipped, and reading is driven by real lines rather than lookahead, so fragmented responses are handled as well.
The lint job timed out on cold runners: setup-go found no module or build
cache, and golangci-lint spent its whole 5m timeout in package loading
("go/packages: context deadline exceeded", exit code 4) before running
any analysis.
Download the module graph first so package loading does not spend the
lint budget on downloads, and raise the timeout to 10m for the cold build
cache.
dwisiswant0
reviewed
Nov 7, 2026
Comment on lines
+17
to
+21
| # Package loading downloads and type-checks every dependency. On a | ||
| # cold runner that can exceed the lint timeout, so warm the module | ||
| # cache first and allow more time. | ||
| - name: Download modules | ||
| run: go mod download |
Member
There was a problem hiding this comment.
Revert this. Let me rerun failed job instead.
Member
|
@coderabbitai review |
Mzack9999
approved these changes
Nov 7, 2026
Mzack9999
approved these changes
Nov 7, 2026
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.
Fixes #554
ReadResponsepeeked five bytes ahead while skipping duplicate status lines.A response without headers — for example a proxy's
200 Connection establishedreply to
CONNECT— never supplies those bytes, soPeekblocked until theconnection deadline, or forever when no deadline was set (the proxy dialer sets
none). This is a regression from #542.
Parse the header section line by line instead, still skipping duplicate status
lines. Reading is driven by lines that actually arrive, which also handles
status lines split across TCP writes.
Tests:
go test -race ./...passes, including new coverage for a headerlessresponse on a live connection and duplicate status lines arriving across writes.