fix(http): prevent connection reuse when --fail skips response body (test 1328)#126
Closed
jonwiggins wants to merge 1 commit intomainfrom
Closed
fix(http): prevent connection reuse when --fail skips response body (test 1328)#126jonwiggins wants to merge 1 commit intomainfrom
jonwiggins wants to merge 1 commit intomainfrom
Conversation
…test 1328) When --fail triggers on a 4xx response with URL globbing, the body is skipped but the connection was returned to the pool with unread data. The next URL would then read stale body bytes as HTTP headers, causing a hang. Disable connection reuse when fail_skip is true and the response has body framing (Content-Length or chunked). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
--failis used with URL globbing and the first URL returns a 4xx error, urlx hangs instead of continuing to the next URL (curl test 1328)fail_skip = true) but the connection is returned to the pool with unread data still on the socket, corrupting the next request's HTTP parse!(fail_skip && has_body_framing)to thecan_reusecondition inh1.rs, preventing connection reuse when the body was skipped but has Content-Length or chunked framingTest plan
cargo checkpassescargo fmt -- --checkpassescargo test— all 345 unit tests + 8 doc-tests pass, zero regressions./scripts/run-curl-tests.sh 1328— previously hung, should now pass🤖 Generated with Claude Code