Work around invalid HTTP server behavior for status 204 and 304 responses#12635
Open
tschneidereit wants to merge 1 commit intobytecodealliance:mainfrom
Open
Work around invalid HTTP server behavior for status 204 and 304 responses#12635tschneidereit wants to merge 1 commit intobytecodealliance:mainfrom
tschneidereit wants to merge 1 commit intobytecodealliance:mainfrom
Conversation
…nses Per spec, an HTTP server isn't allowed to send a body for these status code. Nothing's stopping it from doing so nevertheless, though. This is admittedly very niche and might only actually happen in test suites. It does happen in those, leading to flaky results because whether we report an error here or not depends on whether the body is contained in the same packet as the headers or not.
Member
|
This is subtle enough that I think we'll probably want a test for this. Right now all wasi-http tests have access to a server running this in the background, so could that be updated with a few more paths, such as something upstream returning a 204 with a body, and that be used as part of the test? |
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.
Per spec, an HTTP server isn't allowed to send a body for these status code. Nothing's stopping it from doing so nevertheless, though. This is admittedly very niche and might only actually happen in test suites. It does happen in those, leading to flaky results because whether we report an error here or not depends on whether the body is contained in the same packet as the headers or not.
I think it'd also be okay to instead make these cases always error, though for all I know it's possible that there are niche compatibility concerns with that.
I'm not sure how to add a test to this, because it requires an external server and is flaky, but I put together a repro in a gist. Note that that uses the wasip3 crate, which targets
0.3.0-rc-2026-01-06, so this won't work as-is with Wasmtime'smain.