binder: ServerCall.Listener.onComplete() is called prematurely when transport not ready
- 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
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