删除文件夹,导致storage挂掉,使用exchange导数未报错

提问参考模版:

  • nebula 版本:2.5
  • 部署方式(分布式 / 单机 / Docker / DBaaS):分布式
  • 是否为线上版本:Y / N
  • 硬件信息
    • 磁盘( 推荐使用 SSD) HDD
    • CPU、内存信息 64G
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)

新建一个图,由于操作原因,已经导进去几十G的数据,想快速删除掉,于是手动删除了底层的文件目录。
然后新建了一个图,使用exchange向这个图导入数据。
但是由于删除文件夹,storage已经挂掉了,但是exchange依然在导数据,后台一直报错

E1009 20:18:01.645025 12225 StorageAccessExecutor.h:42]  InsertEdgesExecutor failed, error E_RPC_FAILURE, part 39

nebula-storaged.FATAL 日志如下

Log file created at: 2021/10/09 18:54:14
Running on machine: template
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
F1009 18:54:14.116302 12238 DiskManager.cpp:98] Invalid path: boost::filesystem::canonical: No such file or directory: "/home/frms/nebula-2.5/data/storage/nebula/143"

但是exchange未有任何异常。最后查看磁盘发现占用不对,才发现数据没有导入。

exchange的日志发出来看下,如果storage挂了, 给graph服务发送的数据插入请求应该都是失败的。

日志已经被我给覆盖掉了。 :sob: 但是我看spark的stage界面,每个stage都是执行完成了的。

看stage没用的,你要看日志。 最后日志中会有失败的批次和成功的批次。

好吧,那这样的话是不是应该会退出才对,但是stage还能接着执行,我的数据就有几亿条,那个error那里也配置了错误条数退出的。

error 配置了最大失败批次,达到max 值会退出的,退出也不是在stage中能体现出来的。