Client thread parked forever on Threadless executor after receiving RST_STREAM
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- java
- Bereich
- backend-api-design
Rechercherichtung
Start by reading ThreadlessExecutor.waitAndDrain and tracing how a received RST_STREAM with error code 8 signals completion after an RPC deadline expires. The report provides no stable reproduction steps, so first inspect the related issue #12648 and look for existing tests covering ThreadlessExecutor and stream resets. Done when the client call completes after the deadline and a regression test covers the empty task queue case.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What version of gRPC-Java are you using?
1.77.0
What is your environment?
OS: Linux (aarch64/ARM64 Amazon)
JDK: openjdk version 21.0.12.1
What did you expect to see?
The client should finish RPC call after deadline expired
What did you see instead?
The client stuck forever waiting in ThreadlessExecutor.waitAndDrain with tasks queue being empty.
Steps to reproduce the bug
There are no stable steps to reproduce the issue. It happens randomly under heavy load. The logs show that the client receives RST_STREAM with errorCode=8 from server side after deadline timeout expires, but the thread stays in waiting state. The issue is similar to https://github.com/grpc/grpc-java/issues/12648 but tasks queue is empty in our case.
Netty logs
Timestamp: 1792213442141
[id: 0x33655f63, L:/10.0.26.216:35698 - R:10.0.28.102/10.0.28.102:50051] OUTBOUND HEADERS: streamId=687
...
Timestamp: 1792213472142
[id: 0x33655f63, L:/10.0.26.216:35698 - R:10.0.28.102/10.0.28.102:50051] INBOUND RST_STREAM: streamId=687 errorCode=8
- Vorherrschende Sprache
- Java
- Sterne
- 12.1k
- Forks
- 4k
- Ø Merge
- 2 T. 9 Std.
- Gemergte PRs (30 T.)
- 44
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
-
channelz: ServerData `calls_failed` counter not incremented upon client cancellationEvtl. vergeben @JoeCqupt hat das vor 7 Tagen übernommen. Offenenhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
grpc/grpc-java#13063 · 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
-
question
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Maintainer antworten meist innerhalb von 1 Tag
-
xds: duplicate endpoint addresses across localities are ACKed and can panic outlier detectionEvtl. vergeben @valeter hat das vor 7 Tagen übernommen. Offen
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 1 Tag
-
binder: `ServerStream.close()` marks the stream closed before the suffix is sent, so a flow-control-deferred send failure leaks the callEvtl. vergeben @kkmurthyt21 hat das vor 9 Tagen übernommen. Offenbug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
grpc/grpc-java#13097 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ome/ome-codecs#48 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
tonihele/OpenKeeper#672 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Shaded google-api-client trust stores still include AAA Certificate Services (eMudhra CA compromise)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
snowflakedb/snowflake-jdbc#2763 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 79/100
java-native-access/jna#1746 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
ControlSystemStudio/phoebus#3983 ·
Maintainer antworten meist innerhalb von 2 Tagen