bug: "Sent message larger than max" error is retryable
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 58/100
Direzione di ricerca
Inizia dalla gestione del servizio Query di DoTx ed Exec nello YDB Java SDK, quindi riproduci il problema con una query di upsert i cui parametri superano il limite dei messaggi gRPC. Confronta il comportamento dei tentativi con i casi BulkUpsert e Topic writer menzionati nel report. Il lavoro è completo quando l’errore ResourceExhausted pertinente "message larger than max" viene restituito immediatamente invece di essere ritentato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Java
- Stelle
- 53
- Fork
- 41
- Merge medio
- 3g 9h
- PR unite (30g)
- 34
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ydb-platform/ydb-java-sdk
-
Batching writes to topicAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ydb-platform/ydb-java-sdk#573 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
ydb-platform/ydb-java-sdk#553 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
ydb-platform/ydb-java-sdk#551 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
ydb-platform/ydb-java-sdk#533 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
ydb-platform/ydb-java-sdk#529 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di ydb-platform/ydb-java-sdk
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
linagora/twake-calendar-side-service#1218 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] [Go] Ack returns nil when the server answers with a non-OK statusForse già presa @leizhiyuan l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
apache/rocketmq-clients#1465 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
pdfium-drift
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Stirling-Tools/JPDFium#188 ·
I maintainer di solito rispondono entro 1 giorno