binder: BinderChannelBuilder and BinderServerBuilder should implement maxInboundMessageSize()
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- java
- Área
- backend-api-design, networking
Línea de trabajo
Comienza en BinderChannelBuilder y BinderServerBuilder; después, sigue el manejo de transacciones de stream de grpc-binder para FLAG_MESSAGE_DATA_IS_PARTIAL. Determina el límite predeterminado de mensajes entrantes y la ruta del receptor que debería cerrar el stream con RESOURCE_EXHAUSTED cuando el siguiente mensaje superaría ese límite. Se considera terminado cuando ambos builders exponen el límite y se rechazan las secuencias de mensajes parciales cuyo tamaño exceda el límite.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Java
- Estrellas
- 12.1k
- Forks
- 4k
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 30
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de grpc/grpc-java
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
grpc/grpc-java#13063 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
grpc/grpc-java#13052 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Support of `dns:name` URIsAbiertodocs enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
grpc/grpc-java#10824 · 8 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
Todos los issues de grpc/grpc-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
refinedmods/refinedstorage2#1414 · 1 comentario ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
In Java's `LongBoundedSum`, setting `lower` to `Long.MIN_VALUE` under-estimates the sensitivityAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
google/differential-privacy#489 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
ScyllaDB Manual: 3 broken linksAbiertolink-check link-check:manual
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100