PBJ http/2 stream state transition breaks Helidon connection idle management
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
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- java
- Ambito
- networking
Direzione di ricerca
Inizia in PbjProtocolHandler.data(), intorno alle righe 468-476, e traccia come un frame DATA con endOfStream modifica lo stato dello stream di Helidon e activeStreamIds. Riproduci il caso di streaming da block-node a mirror-node e ispeziona i log intorno a idleConnectionTimeout di 30 minuti; è completato quando i frame WINDOW_UPDATE successivi mantengono efficace la gestione dell’inattività della connessione invece di causare una chiusura prematura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
PBJ overrides Helidon http/2 stream state transition to mark a stream as CLOSED unconditionally when a DATA frame with endOfStream set is received from the peer (in PbjProtocolHandler.data(), line 468-476).
In terms of block-node server streaming to a client, this would cause Helidon to immediately remove the stream from its activeStreamIds. This in turn disables the Helidon idle time refresh logic when later a good WINDOW_UPDATE frame is received for the affected stream from the peer. The consequence is Helidon will always close the HTTP/2 connection per the configured idleConnectionTimeout.
Steps to reproduce
Run MN to stream blocks from BN, check MN / BN logs for the pattern that the connection is always closed by the server around 30-minutes mark. Note BN's default idleConnectionTimeoutMinutes is 30.
Additional context
No response
Hedera network
No response
Version
N/A
Operating system
None
- Lingua principale
- Java
- Stelle
- 44
- Fork
- 16
- Merge medio
- 19h 4m
- PR unite (30g)
- 19
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 hashgraph/pbj
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
hashgraph/pbj#877 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
hashgraph/pbj#981 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Server-streaming calls never learn about client cancel or disconnect after the client half-closesAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Allow attaching Filter-style hooks to PbjRouting (mirror Helidon's HttpRouting.Builder.addFilter)Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di hashgraph/pbj
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
[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 1 giorno fa. 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
-
code-maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
bug priority: medium Review effort [1-5]: 3 status: needs-triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
carlos-emr/carlos#5258 ·
I maintainer di solito rispondono entro 1 giorno