A request to a HTTP/2 server that was restarting resulted in a "Error in the HTTP2 framing layer" message despite the server behaving correctly. Further investigation shows that in the case of a GOAWAY frame with a fully processed 204 "No content" response the GOAWAY wins and an error is returned.
I expected the following
Since the response was received in its entirety, there should be no error. The connection should then be closed (since there was a GOAWAY frame).
This initially only looked reproducible for a 204, but further testing shows it also happens on a 200, so I've updated the code to do that instead (keep it as simple as possible, etc)
I did this
A request to a HTTP/2 server that was restarting resulted in a "Error in the HTTP2 framing layer" message despite the server behaving correctly. Further investigation shows that in the case of a GOAWAY frame with a fully processed 204 "No content" response the GOAWAY wins and an error is returned.
I expected the following
Since the response was received in its entirety, there should be no error. The connection should then be closed (since there was a GOAWAY frame).
curl/libcurl version
steps to reproduce
I have this little Go program that runs a webserver to return a 204 while also sending a goaway frame: https://gist.github.com/TvdW/4d12fc00f91175e379b15a079319d000 (running as
while ./test; do true; done
)For simplicity, I also have it running at https://domisc-01.server.tvdw.eu/
The text was updated successfully, but these errors were encountered: