v2.0和v2.1,where后面跟聚合函数,graph服务宕机

  • nebula 版本:v2.0.0和v2.0.1都有这个问题 v1.x没试

  • 部署方式 单机 :windows 10的ubuntu18 子系统

  • 是否为线上版本: N
    SSD固态,8代i7桌面版,8G运行内存

  • 相关的 meta / storage / graph info 日志信息:
    /usr/local/nebula/logs/* 所有文件没有该报错信息

  • 问题的具体描述
    在where里面使用sum,服务直接挂了,明明sum可以作用于列表和单个数字,sum放在with后面也没事,数据结构就tag:man(name),edge:hand(amount)。可以通过其他方式避免,但是重点是服务宕机。

挂的服务是graph,那个计算服务,3个中就这个挂了,也就是meta和stroge没挂

不止是sum,其它的也有,但是我忘了,这个确定会挂:
[man_test]> match p=(m)-[e:hand*0…9]->(c) where id(m)==76012734 and id(c)==183720010 with last(relationships(p)).amount as a,p as d where sum(a)>25 return a,d;

重新建过space,仍然有这个问题

这个问题可以把sum写在前面解决掉,但是问题是错误语句应该返回错误信息,而不是宕机

[man_test]> match p=(m)-[e:hand*0…9]->(c) where id(m)==76012734 and id(c)==183720010 with sumlast(relationships(p)).amount) as a,p as d where a>25 return a,d;

图片中有具体情况,包括数据结构

可以把你的硬件信息补充下吗?磁盘是 SSD 还是 HDD 呢,:thinking: 还有内存这块的一个数据。谢谢啦

更新了

graphd crash 的问题关注一下这个 pr https://github.com/vesoft-inc/nebula-graph/pull/1257

语句可以改成这样:

match p=(m)-[e:hand*0…9]->© where id(m)==76012734 and id©==183720010 with last(relationships§).amount as a,p as d ,sum(a) as sum where sum>25 return a,d;

with 子句中不带聚合函数的列会被隐式分组,聚合函数的过滤类似于 sql 中的 having。具体可以参考下 cypher-with-aggregating

嗯嗯,这个我知道,主要问题是宕机,错误语句应该返回错误信息

1 个赞

该话题在最后一个回复创建后30天后自动关闭。不再允许新的回复。