Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
Description
While running Rb1Swap test case against SHA1 06771f6511796c66ec479e228dc559e5538c9059 of brett19/gocbcore, it spews this panic, while rebalancing
[5798.79 INFO] (SDKD log:137) panic: runtime error: invalid memory address or nil pointer dereference
[5798.79 INFO] (SDKD log:137) [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x622272]
[5798.79 INFO] (SDKD log:137)
[5798.79 INFO] (SDKD log:137) goroutine 676 [running]:
[5798.79 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdOpConsumer).Close(0x0)
[5798.79 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdopqueue.go:32 +0x22
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdPipelineClient).ReassignTo(0xc4210fcd20, 0xc420ae3a90)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdpipeline.go:166 +0x78
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdPipeline).Takeover(0xc420ae3a90, 0xc420331950)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdpipeline.go:118 +0xf0
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdClientMux).Takeover(0xc420526fe0, 0xc4210fc7e0)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdclientmux.go:84 +0x443
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*Agent).applyConfig(0xc420098d10, 0xc4200ce960)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/agentrouting.go:220 +0x445
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*Agent).updateConfig(0xc420098d10, 0xc420140480)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/agentrouting.go:262 +0x76
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*Agent).handleOpNmv(0xc420098d10, 0xc4207ec930, 0xc420720bb0)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/agentops.go:80 +0xc2
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*Agent).handleOpRoutingResp(0xc420098d10, 0xc4207ec930, 0xc420720bb0, 0xc420b68240)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/agentops.go:90 +0x60
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*Agent).(github.com/couchbase/gocbcore.handleOpRoutingResp)-fm(0xc4207ec930, 0xc420720bb0, 0xc420720bb0)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/agentops.go:98 +0x3e
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdClient).resolveRequest(0xc42079c700, 0xc4207ec930)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdclient.go:57 +0x206
[5798.80 INFO] (SDKD log:137) github.com/couchbase/gocbcore.(*memdClient).run.func1(0xc42079c700)
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdclient.go:88 +0x1ef
[5798.80 INFO] (SDKD log:137) created by github.com/couchbase/gocbcore.(*memdClient).run
[5798.80 INFO] (SDKD log:137) /root/jenkins/workspace/sdk-go-situational-release/go-sdk-situational-sherlock/src/github.com/couchbase/gocbcore/memdclient.go:102 +0x3f
maybe need null check on func (pipecli *memdPipelineClient) ReassignTo, like you did on func (pipecli *memdPipelineClient) Close() ?
func (pipecli *memdPipelineClient) ioLoop(client *memdClient) also calls consumer.Close() thus, maybe this need null check as well?