grpc / grpc/grpc-java

servlet: tomcat does not support trailer only

Offen
#10,124 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

gRPC version:
1.53.0
gRPC server transport: servlet
gRPC client transport: netty

### What is your environment?
MacOS 12.4 jdk11

### What did you expect to see?
This is a known behaviour where tomcat sends an empty data frame with a end_stream flag instead of a trailer only frame with end_stream flag. While it is a valid http2 behaviour, this is not supported by gRPC who expected end_stream frames to be sent in trailer or trailer-only frame.

### What did you see instead?
Internal status error because a data frame is end_stream

### Steps to reproduce the bug
The transport tests `earlyServerClose_noServerHeaders`, `earlyServerClose_serverFailure` and `earlyServerClose_serverFailure_withClientCancelOnListenerClosed` reproduce the problem

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Führe zunächst mit dem Servlet-Server-Transport die Transporttests earlyServerClose_noServerHeaders, earlyServerClose_serverFailure und earlyServerClose_serverFailure_withClientCancelOnListenerClosed aus. Verfolge, wie der Transport einen leeren Datenframe mit gesetztem end_stream-Flag verarbeitet; fertig ist die Änderung, wenn diese Reproduktionen keinen internen Statusfehler mehr erzeugen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
grpc, java
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.