py2neo连接阿里云图数据库GDB,非常小概率出现'>' not supported betwee
背景介绍
目前neo4j的python driver有两个: - py2neo - neo4j python driver
其中py2neo有很多版本, py2neo 4.3是19年版本,依赖neobolt 1.7版本
问题分析
该版本再处理回报时没有包后面跟noop的情况,noop相关信息如下: 可以看到再正常的包后面跟随noop是正常的情况。
neobolt 1.7再处理这种包时,第一次解析出正常包后(下图红色)是正常的 但是再处理完后,会解析最后一个00,此时frame_message的逻辑会导致panes为空,同时返回True,导致上层调用误以为还有新的结果,从而触发上述bug(注:add by qiaogong 部分是fix的片段)。 详细代码片段如下: frme_message的逻辑如下:
解决方法:
本质上是协议兼容性问题; - 用户期望保留py2neo,建议升级到最新版本,比如2021.1版本; - 不一定要py2neo,建议使用neo4j-python-driver标准库。
其他版本对比
neo4j-python-driver,请参考官网
py2neo 2021.1版本
赞0
踩0