apache / rocketmq-client-go

Apache RocketMQ go client
https://rocketmq.apache.org/
Apache License 2.0
1.3k stars 421 forks source link

服务突然无法启动了。CallStack挂在remote_client.doRequest函数上。 #1086

Closed wangxingge closed 1 year ago

wangxingge commented 1 year ago

个人电脑新装的环境,go mod 重新下载的库,在编译后启动服务发现服务无法启动了。 之前一版本的服务还在生产环境正常运行中。

查看了一下在 internal/remote/codec.go 中的 encodeHeader函数,在调用jsoniter进行序列化发生的null pointer. 不知道是不是哪个依赖包更新导致的这个问题。

runtime.throw (panic.go:1043) runtime runtime.sigpanic (signal_windows.go:270) runtime reflect2.(UnsafeMapIterator).HasNext (unsafe_map.go:125) github.com/modern-go/reflect2 jsoniter.(mapEncoder).Encode (reflect_map.go:258) github.com/json-iterator/go jsoniter.(structFieldEncoder).Encode (reflect_struct_encoder.go:110) github.com/json-iterator/go jsoniter.(structEncoder).Encode (reflect_struct_encoder.go:158) github.com/json-iterator/go jsoniter.(OptionalEncoder).Encode (reflect_optional.go:70) github.com/json-iterator/go jsoniter.(onePtrEncoder).Encode (reflect.go:219) github.com/json-iterator/go jsoniter.(Stream).WriteVal (reflect.go:98) github.com/json-iterator/go jsoniter.(frozenConfig).Marshal (config.go:299) github.com/json-iterator/go jsoniter.Marshal (adapter.go:34) github.com/json-iterator/go remote.(jsonCodec).encodeHeader (codec.go:281) github.com/apache/rocketmq-client-go/v2/internal/remote remote.(RemotingCommand).WriteTo (codec.go:144) github.com/apache/rocketmq-client-go/v2/internal/remote remote.(remotingClient).doRequest (remote_client.go:277) github.com/apache/rocketmq-client-go/v2/internal/remote remote.(remotingClient).sendRequest (remote_client.go:269) github.com/apache/rocketmq-client-go/v2/internal/remote remote.(remotingClient).InvokeSync (remote_client.go:79) github.com/apache/rocketmq-client-go/v2/internal/remote internal.(namesrvs).queryTopicRouteInfoFromServer (route.go:355) github.com/apache/rocketmq-client-go/v2/internal internal.(namesrvs).UpdateTopicRouteInfoWithDefault (route.go:132) github.com/apache/rocketmq-client-go/v2/internal internal.(namesrvs).UpdateTopicRouteInfo (route.go:116) github.com/apache/rocketmq-client-go/v2/internal internal.(rmqClient).UpdateTopicRouteInfo (client.go:581) github.com/apache/rocketmq-client-go/v2/internal consumer.(pushConsumer).Start (push_consumer.go:196) github.com/apache/rocketmq-client-go/v2/consumer alarm.InitConsumer (alarm.go:34) alarm/cmd/web/alarm main.main (main.go:17) main runtime.main (proc.go:250) runtime runtime.goexit (asm_amd64.s:1598) runtime

wangxingge commented 1 year ago

原go mod version是 github.com/apache/rocketmq-client-go/v2 v2.1.0,这个版本有问题。 使用最新版本后运行正常了。 github.com/apache/rocketmq-client-go/v2 v2.1.1