nebula执行时报出 Get sessionId failed: Session not found

nebula 版本:2.6.1
部署方式:分布式
安装方式: RPM
是否为线上版本:Y
硬件信息
磁盘 SSD
CPU、内存信息 32C 128G
问题描述:
查询出错:{Get sessionId[1659922154582538] failed: Session `1659922154582538’ not found: Session not existed!}

我们在使用nebula java客户端建立的session查询时,报出如上错误,我们每次用的时候,都去通过ping去校验session有效性,但似乎并没有起到什么作用,有大佬帮忙看看这个问题吗

不知道和开启了 kill query有没有关系

有没有大佬帮忙解答下

session ping() 方法检验的是 session 持有的连接的可用性, 不对 sessionID 作校验

这个报错是客户端发请求的 sessionID 在服务端找不到导致的, 可能是 session 在服务端过期被清理了

好的,大佬,你说的我明白了。 我也注意到了在ping方法里执行execute方法并不是当前session对象持有的sessionId,而是常量0. 我想知道什么情况下session 会被服务端清理,我们设置的应该是永不过期。我现在有两个猜想,一是 kill query的时候,session一并被kill掉。二是 服务器连接过多session,随机释放一些?

如何对sessionID 作校验呢?

来看下这篇,有针对 sessionID 校验部分的说明 :thinking:非正式全面解析 NebulaGraph 中 Session 管理

只能通过 execute() 的返回判断, 最简单的就是执行下 yield 1, 如果返回成功就说明 session 有效

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。