servlet: tomcat does not support trailer only
- 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
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