pglite-socket: keep an extended-query batch on one connection until Sync
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 54/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, postgresql, typescript
Direzione di ricerca
Start by reading the @electric-sql/pglite-socket 0.2.17 source for QueryQueueManager and processQueue, then inspect the related work in issues #1046 and #977. Reproduce the interleaving and queue-stall cases with concurrent pg pools, and check how the proposed batch handling affects disconnect cleanup and transaction ownership. Done means a regression test covers the reported failures and the maintainers have chosen an approach.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This is a fix proposal for #1046. The problem is still present in @electric-sql/pglite-socket 0.2.17.
QueryQueueManagergives the backend to another handler after each message. Two clients that send Parse/Bind/Execute batches can interleave, which gives08P01(protocol violation) and34000(invalid cursor).- When
processQueuethrows, it returns without clearingprocessing, so the queue stops for good.
Change we run locally (patched 0.1.5 since 2026-10-26):
- A handler keeps the backend until its batch reaches Sync. Transaction ownership stays as it is.
- On disconnect, the cleanup syncs an unfinished batch, rolls back its transaction, and releases queued connections.
processingis cleared infinally.
This fixed concurrent HTTP 500s with 08P01 and 34000 from pg pools in our test suite. The simple-query COPY limitation is unchanged. #977 covers part of this. Which approach do you want? We can port the change to the 0.2.17 source and add a regression test with two concurrent pg pools.
- Lingua principale
- TypeScript
- Stelle
- 16.3k
- Fork
- 474
- Merge medio
- 23h 53m
- PR unite (30g)
- 53
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 electric-sql/pglite
-
Feature request: Nitro 3 support (`unwasm` export condition)Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
electric-sql/pglite#1120 · 16 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
electric-sql/pglite#1200 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG]: syncToFs() resolves immediately, without syncing, when another sync is already queuedForse già presa @PrabalParihar l’ha presa 11 giorni fa. Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
electric-sql/pglite#1191 ·
I maintainer di solito rispondono entro 1 giorno
-
Feature request: live: allow pausing the notify triggers during bulk writes (e.g. pglite-sync applies) and refresh once on resumeForse già presa @tdrz l’ha presa 13 giorni fa. Apertaenhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
electric-sql/pglite#1184 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
pglite-socket: handleData copies the whole buffer for every chunk (quadratic time for large messages)Forse già presa @benclmnt l’ha presa 10 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
electric-sql/pglite#1181 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di electric-sql/pglite
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
open-webui/tether#52 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
voidzero-dev/void#835 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
AykutSarac/jsoncrack.com#616 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
melgarafael/DeskcommCRM#4679 ·
I maintainer di solito rispondono entro 1 giorno