先删除space再创建会导致session的spaecId错误

  • nebula 版本:3.6.0
  • 部署方式: 分布式
  • 安装方式:RPM
  • 是否上生产环境: N
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)


将已存在的space删掉之后,再次创建同名的space
如果使用其他已存在的session访问会出现spaceId对不上提示space not found错误。
新创建session没有问题。

1 个赞

因为重新创建的 space 即使是同一名称但是在数据库里的 id 变了,session 在 use space 的时候其实是根据 space 的 id 进行连接的。所以重新创建的 session 会获取到新创建的 space 的 id,而旧的 session 依然是旧的 id。

举个例子,加入数据库现在有3个 space,space1 对应 id 为 1,space2 对应 id 为 2,space3 对应 id 为 3。然后删掉 space1 在重新建立,新建立的 space1 的 id 会变成 4。space 的 id 估计为自增的数值。

1 个赞

我理解你说的原理,但是这个应该算bug吧,我们是用的java client,遇到这种情况这个space就暂时不能用了,只能等session过期了。

这个也不能算 bug,但是确实容易被忽略。因为从生产实际使用来讲,space 是不应该被删除的,就像数据库的 database 不会被删除一样。如果要清除数据但不改变 schema 重建,可以使用 clear space 命令。

另外,重建后的 space 只能说是名称一致了,本质上是两个不同的 space 所以我觉得 session 需要重建或者重新 use space 是说得过去的。

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