sessionPool的checkSession和updateSessionQueue并发执行导致报错
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia in SessionPool.java intorno alle righe 414-421 e leggi come checkSession e updateSessionQueue possano essere eseguiti contemporaneamente mentre le connessioni vengono controllate e rilasciate. Verifica la SocketException segnalata e lo scenario della richiesta corrotta, quindi conferma che la connessione non venga rilasciata tra il controllo della sessione e il ping; aggiungi o esegui una copertura mirata se il repository la fornisce.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
bug描述
nebula-sdk版本3.8.4,jdk版本1.8
客户端报错
--
(SessionPool.java:421) c.v.n.c.g.SessionPool - session ping error, java.net.SocketException: Socket closed, remove current session.
Graphd日志报错
E20250911 12:34:14.451815 1034223 HeaderServerChannel.cpp:127] Received corrupted request from client: (transport apache::thrift::PreReceivedDataAsyncTransportWrapper,
address ::ffff:xx.xx.xx.xx, port 49343). Corrupted payload in header message. In message header, protoId: 2, clientType: 0. First few bytes of payload: \026\252\254\2
33\325\315\237\237\006\000
原因定位
猜测是客户端主动关闭了连接
checkSession默认10分钟执行一次yield 1探活
updateSessionQueue默认1小时执行一次,回收状态为空闲的连接
这两个任务并发执行
这里仅判断连接是否空闲,就直接release掉了连接
此时checkSession的代码刚好执行,414行返回true,417行执行时,连接此时已经关闭了,服务端收到了一半的包,所以解析报错
修改方式
- Lingua principale
- Java
- Stelle
- 196
- Fork
- 127
- Merge medio
- 10h 56m
- PR unite (30g)
- 2
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 vesoft-inc/nebula-java
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
vesoft-inc/nebula-java#667 ·
-
【3.8】ScanEdgeResultIterator.next() 因重复释放 Storage 连接而阻塞Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
vesoft-inc/nebula-java#654 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 20/100
vesoft-inc/nebula-java#665 ·
-
【5.2.1】在获取连接时偶发报错Forse di nuovo libera @Nicole00 l’ha presa 222 giorni fa e non c’è nessuna pull request aperta. Apertaaffects/none severity/none type/bug
vesoft-inc/nebula-java#644 · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
vesoft-inc/nebula-java#629 · 1 commento ·
Tutte le issue di vesoft-inc/nebula-java
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
MetricsHub/metricshub-community#1474 ·
I maintainer di solito rispondono entro 1 giorno
-
Booking links: POST /api/booking-links with a null element in "availabilityRules" throws NullPointerException and answers 500 instead of 400Forse già presa @chibenwa l’ha presa oggi. Apertaai-driven-fuzzing bug claude Minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
linagora/twake-calendar-side-service#1322 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
PathnameExpander incorrectly interprets regex metacharacters in wildcard patternsForse già presa @jiteshkhatri11 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
javapathfinder/jpf-core#662 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
FasterXML/jackson-databind#6366 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ballerina-platform/ballerina-library#9437 ·
I maintainer di solito rispondono entro 1 giorno