cronet: when trailers are missing, gRPC reuses the headers
Maintainer antworten meist innerhalb von 1 Tag
@kannanjgithub arbeitet bereits daran.
Seit 12.2.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
What version of gRPC-Java are you using?
1.78.0
What is your environment?
Server: Cloudflare with HTTP/3 enabled
Client: Android 16 / gRPC with CronetChannelBuilder
What did you expect to see?
gRPC works properly.
What did you see instead?
gRPC fails with the following exception.
io.grpc.StatusException: UNKNOWN: missing GRPC status in response
at io.grpc.Status.asException(Status.java:547)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:264)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:566)
at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:734)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:715)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
This issue doesn't always happen, and when I logged the protocols of the requests (RequestFinishedInfo.getResponseInfo().getNegotiatedProtocol()) by CronetEngine.addRequestFinishedListener(), I found that all the successful request were using h2 protocol, and all the failed requests were using quic/1+spdy/3.
Steps to reproduce the bug
Use CronetChannelBuilder to request a backend with QUIC enabled.
- Vorherrschende Sprache
- Java
- Sterne
- 12.1k
- Forks
- 4k
- Ø Merge
- 2 T. 3 Std.
- Gemergte PRs (30 T.)
- 32
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus grpc/grpc-java
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
grpc/grpc-java#13063 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
grpc/grpc-java#13052 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
docs enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
grpc/grpc-java#10824 · 8 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
grpc/grpc-java#13075 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
grpc/grpc-java#13066 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
apache/arrow-java#1311 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
security
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
IBM/networking-java-sdk#204 ·
-
bug Technical Debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
avniproject/avni-server#1080 ·