provider-http: SSE Last-Event-ID can advance past undelivered events after an oversized event
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #188 di @dezlitz — integrata
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- networking
Direzione di ricerca
Start with packages/provider-http/src/channels.ts, especially SseChannel.consume and SseIdTracker, then find the existing SSE reconnect tests. Add the described same-chunk regression case and ensure the tracker uses config.maxBytes. Done means reconnecting after the oversized event does not send a Last-Event-ID past an undelivered event.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Follow-up from the #89 review (head 9002547).
packages/provider-http/src/channels.ts SseChannel.consume: each chunk goes to this.ids.feed(text) before parser.feed(text). When eventsource-parser hits max-buffer-size-exceeded, onError throws mid-chunk, so events after the oversized one in that chunk are never delivered, but SseIdTracker has already processed the whole chunk and moved lastEventId past them. On reconnect Last-Event-ID makes the server skip those events: silent data loss on resume.
Also, SseIdTracker's maxLineLength (1 MiB default) is not tied to config.maxBytes, so the two scanners can disagree about very long lines.
Fix: feed the parser first and the tracker only if it didn't throw (resuming from the previous chunk's id replays a few events, which is better than losing them), or advance the id from inside the parser's line callbacks. Pass maxBytes to SseIdTracker. Add a test: an oversized event, then a good event with an id, in one chunk; after reconnect, the Last-Event-ID must not be past the undelivered event.
- Lingua principale
- TypeScript
- Stelle
- 0
- Fork
- 0
- Merge medio
- 11h 21m
- PR unite (30g)
- 41
Preparare l'ambiente
- 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 hyperdrive-technology/holodeck
-
area:ci review-finding
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
hyperdrive-technology/holodeck#208 ·
I maintainer di solito rispondono entro 1 giorno
-
area:holodeck review-finding
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
hyperdrive-technology/holodeck#207 ·
I maintainer di solito rispondono entro 1 giorno
-
area:holodeck review-finding
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
hyperdrive-technology/holodeck#206 ·
I maintainer di solito rispondono entro 1 giorno
-
area:holodeck review-finding
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
hyperdrive-technology/holodeck#205 ·
I maintainer di solito rispondono entro 1 giorno
-
area:holodeck review-finding
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hyperdrive-technology/holodeck#201 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di hyperdrive-technology/holodeck
Issue simili
-
area:desktop bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
anthropics/claude-code#104801 ·
I maintainer di solito rispondono entro 1 giorno
-
Add: Halloween Non Stop SDApertacheck:passed streams:add
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
spudly/design-system#110 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixForse già presa @ItsDeadlyProgrammer l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
appsmithorg/appsmith#42471 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni