开发者社区 > 数据库 > NoSQL数据库 > 正文

py2neo连接阿里云图数据库GDB,非常小概率出现'>' not supported betwee

再使用py2neo 4.3.0版本有极小概率出现下面错误: "'>' not supported between instances of 'NoneType' and 'int'"

展开
收起
周健(花名:巧工) 2021-11-09 14:37:55 1672 0
2 条回答
写回答
取消 提交回答
  • 不建议使用py2neo 2021.1以前的版本,连接GDB还是通过阿里云官方SDK或者py2neo新版本。

    2021-11-09 15:43:06
    赞同 展开评论 打赏
  • 图数据库; 分布式存储

    背景介绍

    目前neo4j的python driver有两个: - py2neo - neo4j python driver

    其中py2neo有很多版本, py2neo 4.3是19年版本,依赖neobolt 1.7版本 image.png

    问题分析

    该版本再处理回报时没有包后面跟noop的情况,noop相关信息如下: image.png 可以看到再正常的包后面跟随noop是正常的情况。

    neobolt 1.7再处理这种包时,第一次解析出正常包后(下图红色)是正常的 image.png 但是再处理完后,会解析最后一个00,此时frame_message的逻辑会导致panes为空,同时返回True,导致上层调用误以为还有新的结果,从而触发上述bug(注:add by qiaogong 部分是fix的片段)。 详细代码片段如下: image.png frme_message的逻辑如下: image.png

    解决方法:

    本质上是协议兼容性问题; - 用户期望保留py2neo,建议升级到最新版本,比如2021.1版本; - 不一定要py2neo,建议使用neo4j-python-driver标准库。

    其他版本对比

    neo4j-python-driver,请参考官网

    image.png

    py2neo 2021.1版本

    image.png

    2021-11-09 15:14:42
    赞同 展开评论 打赏

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载