binder: BinderChannelBuilder and BinderServerBuilder should implement maxInboundMessageSize()
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
- 48/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- java
- Bereich
- backend-api-design, networking
Rechercherichtung
Beginne bei BinderChannelBuilder und BinderServerBuilder und verfolge anschließend die Verarbeitung von grpc-binder-Streamtransaktionen für FLAG_MESSAGE_DATA_IS_PARTIAL. Ermittle das standardmäßige Limit für eingehende Nachrichten sowie den Empfängerpfad, der den Stream mit RESOURCE_EXHAUSTED schließen sollte, wenn die nächste Nachricht dieses Limit überschreiten würde. Als abgeschlossen gilt die Aufgabe, wenn beide Builder das Limit bereitstellen und Sequenzen übergroßer partieller Nachrichten abgewiesen werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Is your feature request related to a problem?
Yes. Senders can trivially OOM a peer with an unending sequence of non-empty stream transactions with the FLAG_MESSAGE_DATA_IS_PARTIAL flag set.
Describe the solution you'd like
grpc-binder should establish a default value for client and server maxInboundMessageSize(). If a receiver sees a transaction that would cause the next message to exceed this limit, it should "out of band close" the stream with RESOURCE_EXHAUSTED.
Describe alternatives you've considered
None
Additional context
Even with stream flow control receivers must ack transactions whenever the application has request()ed at least one message. That design had been relying on this message-layer limit but grpc-binder doesn't seem to implement one.
- Vorherrschende Sprache
- Java
- Sterne
- 12.1k
- Forks
- 4k
- Ø Merge
- 2 T. 1 Std.
- Gemergte PRs (30 T.)
- 31
Entwicklungsumgebung
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 4/5 3-5 Tage Anfängerfreundlichkeit 70/100
grpc/grpc-java#13078 · 1 Kommentar ·
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
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
github/copilot-sdk#2793 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Unify jpa4 into orm8Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
enhancement good first issue
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100