Title: Content-Length: 0 header breaking the gRPC HTTP/1.1 reverse bridge
Description:
Puma 6 and above introduced changes to HTTP/1.1 response headers. Specifically, a 0-byte response to an application/grpc request (i.e., a Protobuf object with no non-defaults set) from a Puma 5.X server has a Transfer-Encoding: chunked header set but no content length header, and a 0-byte response from a Puma 6.X server has a Content-Length: 0 header set but no transfer encoding header. The gRPC HTTP/1.1 reverse bridge fails to parse the Puma 6.X server response because it sees that the response cannot have a body and then optimizes away the encodeData response of the gRPC HTTP/1.1 reverse bridge.
Repro steps:
See this repo for a minimally-reproducing test case with a gRPC request against a both a working and broken upstream HTTP server example.
Title:
Content-Length: 0
header breaking the gRPC HTTP/1.1 reverse bridgeDescription:
Repro steps:
Admin and Stats Output:
Config:
Logs:
Call Stack: