fix(http): prevent connection reuse when --fail skips response body (test 1328)#131
Merged
jonwiggins merged 1 commit intomainfrom Mar 28, 2026
Merged
Conversation
…test 1328) When --fail triggers on a 4xx response, the body read is skipped but the connection was still returned to the pool. If the response had body framing (Content-Length or chunked), the unread body data would corrupt the next request on a reused connection, causing a hang with URL globbing. Check for `fail_skip && has_body_framing` when computing `can_reuse` to prevent reusing connections with stale body data on the socket. Closes #122 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
--failtriggers on a 4xx response with URL globbing, the body read is skipped but the connection was returned to the pool with unread body data still on the socketfail_skip && has_body_framing(Content-Length or chunked) in thecan_reusecalculation to prevent reusing connections with undrained body dataCloses #122
Test plan
request_fail_on_error_no_reuse_with_bodyverifyingcan_reuse = falsewhen--failskips a 404 response with Content-Lengthcargo clippyandcargo fmtpass🤖 Generated with Claude Code