调用client.Connect时候,因为读包失败,导致了response是nil
err: Invalid data length
github.com/vesoft-inc/nebula-go/nebula/graph.(*AuthResponse).GetErrorCode(…)
/Users/yech/codehub/go/gopath/src/github.com/vesoft-inc/nebula-go/nebula/graph/ttypes.go:2184
github.com/vesoft-inc/nebula-go.(*GraphClient).Connect(0xc0000943c0, 0x8b68ca, 0x4, 0x8b9d25, 0x8, 0xc0000943c0, 0x0)
/Users/yech/codehub/go/gopath/src/github.com/vesoft-inc/nebula-go/client.go:69 +0x391
client和nebula的版本对应么
查了好久,发现是fbthrift的版本问题,用v2020.03.09.00tag是没问题的。之后的版本都会发生这个问题。希望可以修复。
应该不需要升级,是go client的错误处理有点问题,已经修复了,你可以用最新的go client试试。
1 个赞
哦,明白为啥你没出这个问题而我出了。我没用gomod,go get拿到的是最新的fbthrift。而在nebula-go的gomod里,定义了
module GitHub - vesoft-inc/nebula-go: Nebula client in Golang
require GitHub - facebook/fbthrift: Facebook's branch of Apache Thrift, including a new C++ server. v0.0.0-20190922225929-2f9839604e25
go 1.13
这里要求了fbthrift的版本。在2020年3月9号之前的版本都是没问题的,之后的版本有协议的问题,会导致解包失败。
所以3.9之后的thrift版本现在依旧有问题是吧?
是的,还是有问题。
另外这个客户端包,功能上感觉还是有点薄弱了,比如没有定时心跳检测长连接保活、连接池的使用、失败重连重试等等机制。如果想用于生产环境,还是不太放心,需要使用者自己做很多保障机制。
嗯,客户端的系列问题近期已经开始跟进了,后面会制定一个标准,然后各语言版本来支持,也欢迎给我们提pr和意见
1 个赞
这里由于我们服务端的fbthrift使用了一个比较老的版本(18年的版本),因此新的fbthrift会和老的不兼容.