Star

nebula go 并发导致session无效,并报错bug

提问参考模版:

  • nebula 版本:v2-preview-nightly
  • nebula go 版本:最新
  • 部署方式(分布式 / 单机 / Docker / DBaaS):Docker
  • 问题的具体描述
    getSession后,并发执行Execute(sql),会报错,报错信息如下
    看session.go的33行代码,应该是并发导致session失效,查询结果为nil

报错信息:

2020/12/29 11:31:53 [ERROR] Error info: execute failed: out of sequence response

?[31m2020/12/29 11:31:53 [Recovery] 2020/12/29 - 11:31:53 panic recovered:
runtime error: invalid memory address or nil pointer dereference
D:/Go/src/runtime/panic.go:212 (0x74c3b5)
        panicmem: panic(memoryError)
D:/Go/src/runtime/signal_windows.go:246 (0x74c24d)
        sigpanic: panicmem()
/vendor/github.com/vesoft-inc/nebula-go/result_set.go:76 (0xafa90f)
        genResultSet: if resp.Data == nil { // if resp.Data != nil then resp.Data.row and resp.Data.colNames wont be nil
/vendor/github.com/vesoft-inc/nebula-go/session.go:55 (0xafe484)
        (*Session).Execute: return genResultSet(resp), err

session并不支持并发使用,连接池是线程安全的

浙ICP备20010487号