grpc / grpc/grpc-java

binder: ServerCall.Listener.onComplete() is called prematurely when transport not ready

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

Beschreibung

Both SingleMessageServerStream and MultiMessageServerStream implement close() by asking Outbound to enqueue the status and trailers for sending, then calling Inbound#onCloseSent(). This method always calls ServerStreamListener.closed() even though the status and trailers may still be sitting in the Outbound queue due to transport-level flow control.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Lies SingleMessageServerStream.close(), MultiMessageServerStream.close() und Inbound#onCloseSent(); verfolge, wie Outbound unter der Flow-Control auf Transportebene Status und Trailer in die Warteschlange einreiht. Als erledigt gilt, dass ServerStreamListener.closed() nicht ausgelöst wird, solange diese Nachrichten in der Warteschlange verbleiben, sondern erst, nachdem der Close-Vorgang über die verfrühte Benachrichtigung hinaus fortgeschritten ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend, networking
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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