bug: "Sent message larger than max" error is retryable
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 58/100
Línea de trabajo
Comienza con el manejo del servicio Query de DoTx y Exec en el YDB Java SDK y reproduce el problema con una consulta upsert cuyos parámetros superen el límite de mensajes de gRPC. Compara el comportamiento de reintento con los casos de BulkUpsert y Topic writer mencionados en el informe. Se considera terminado cuando el error ResourceExhausted relevante "message larger than max" se devuelve inmediatamente en lugar de reintentarse.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report
When sending a large payload (e.g. UPSERT with $data parameter exceeding gRPC message limit), the driver returns ResourceExhausted ("trying to send message larger than max"). The problem is that this error is currently treated as retryable. Retrying does not change the situation — the payload size is the same, so every retry fails again with the same error. From the caller's perspective the process effectively hangs (repeated retries until timeout or context cancel), instead of failing fast so the client can reduce batch size or handle the error.
A similar situation was addressed for BulkUpsert and Topic writer. For the Query service (DoTx / Exec with large params), this specific subtype of ResourceExhausted ("message larger than max") should be treated as non-retryable, so that the error is returned to the client immediately. Alternatively, the SDK could handle large messages (e.g. split or document the limit) like for BulkUpsert/Topic.
YDB Java SDK version:
Any version
Environment
Any environment
Current behavior:
Message retires according to retry configuration
Expected behavior:
- Option A (recommended): Treat ResourceExhausted with description "message larger than max" (and similar parameter size limits) as non-retryable, so the error is returned immediately and the client can reduce batch size or react.
- Option B: Or handle large messages in the SDK (e.g. split before send, or document the limit) like for BulkUpsert/Topic.
Steps to reproduce:
Create an upsert query with huge parameters size
Other information:
Similar issue for go SDK: https://github.com/ydb-platform/ydb-go-sdk/issues/2024
- Lenguaje dominante
- Java
- Estrellas
- 53
- Forks
- 41
- Merge medio
- 3 d 9 h
- PR fusionados (30 d)
- 34
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 ydb-platform/ydb-java-sdk
-
Batching writes to topicAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
ydb-platform/ydb-java-sdk#573 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Topic API control event orderingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#553 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
ydb-platform/ydb-java-sdk#551 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
ydb-platform/ydb-java-sdk#533 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ydb-platform/ydb-java-sdk#529 ·
Los mantenedores suelen responder en 2 días
Todos los issues de ydb-platform/ydb-java-sdk
Issues similares
-
bug web-server
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jooby-project/jooby#4035 ·
Los mantenedores suelen responder en 1 día
-
L: javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dependabot/dependabot-core#16744 ·
Los mantenedores suelen responder en 1 día
-
intake mcp-intake needs-human-review priority:high type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Ikalus1988/MisakaNet#3987 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
quarkiverse/quarkus-google-cloud-services#1187 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
locationtech/jts#1250 ·