You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setting a Supplier trailer means that, for HTTP/2 requests, an empty trailers frame is sent if the logic determines that there are no trailers to send. This is problematic for gRPC requests because gRPC servers fail whenever they see a trailers frame (even if it is empty) on incoming requests as the gRPC specification says incoming requests do not provide trailers.
Modified the sender logic to allow specific subclasses to decide
when to send the trailers, if any.
This allows HTTP/2 to correctly compute the end_stream flag and avoid
sending empty trailers frames with end_stream=true.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Setting a
Supplier
trailer means that, for HTTP/2 requests, an empty trailers frame is sent if the logic determines that there are no trailers to send. This is problematic for gRPC requests because gRPC servers fail whenever they see a trailers frame (even if it is empty) on incoming requests as the gRPC specification says incoming requests do not provide trailers.https://github.com/eclipse/jetty.project/blob/0e282eece2c32a16b24ca22b994b5327212a7425/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java#L73
https://github.com/eclipse/jetty.project/blob/0e282eece2c32a16b24ca22b994b5327212a7425/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpSenderOverHTTP2.java#L123
Additional discussion on this issue: #3753
The text was updated successfully, but these errors were encountered: