在修改或者查询并发较大时,nebula-graphd服务挂掉,出现IndexScanExecutor failed, error E_LEADER_CHANGED

提问参考模版:

  • nebula 版本:2.6.1
  • 部署方式:分布式
  • 安装方式:RPM
  • 是否为线上版本:Y
  • 硬件信息
    • 磁盘 SSD 960G
    • CPU 48C 、内存信息 256G

可以补充下你的查询语句,还有大概涉及到的数据量吗?

这么多 OR 连接条件, graph 退出的时候 有 core dump 文件产生吗,怀疑是栈溢出了

1 个赞

可以在语句前面加个explain, 然后把执行计划发出来看看

1 个赞

服务器挂掉是很严重的事情 :joy:,你们帮忙看看

在服务安装目录下有coredump文件吗

可以gdb ./bin/nebula-graphd core.190447 然后输入bt, 看一下报错栈

sudo dmesg | grep -i oom | grep nebula 检查一下有没有发生oom吧

没有出现OOM

如果把-i oom加进去日志为空

又出现了一次 我检查了crash的信息发现:

没指定二进制吗? gdb ./bin/nebula-graphd <core_file>

 () from /lib64/libc.so.6

嗯嗯,稍等哈,我和研发同学说下,谢谢 fliu63

执行一下这个看看 egrep -i -r 'killed process' /var/log

有进展了可以来更新下帖子哈

:thinking:数据量大出现E_LEADER_CHANGE不是很正常的事情吗。其实可以在graphd语句执行完这里加个重试机制,有些错误是可以sleep几百毫秒再重试就能成功执行。这样一来,客户端那边最多感觉慢一点,而且对服务器在线升级也有好处,不怕因为升级导致leader_change从而使查询失败。

1 个赞