callisto icon indicating copy to clipboard operation
callisto copied to clipboard

panic: invalid Go type math.LegacyDec for field cosmos.mint.v1beta1.QueryInflationResponse.inflation

Open civet148 opened this issue 2 years ago • 3 comments

Bug description

Hi, I just using the bdjuno (branch v0.47.x) to sync my test net in local (5 nodes 5 machines) , I added the mint module to config file, very day 12 PM, there was a panic when sync the infaltion from my node (Cosmos SDK v0.47.3) , I tried to downgrade the grpc/protobuf version, still has this problem.

above is the bug log


11:59PM DBG processing block height=104200 11:59PM DBG updating validators height=104200 module=staking 11:59PM DBG updating signing info height=104200 module=slashing 11:59PM DBG updating validators voting powers height=104200 module=staking 11:59PM DBG updating validators statuses height=104200 module=staking 11:59PM DBG updating double sign evidence height=104200 module=staking 11:59PM DBG enqueueing new block height=104201 11:59PM DBG processing block height=104201 11:59PM DBG updating validators height=104201 module=staking 11:59PM DBG updating signing info height=104201 module=slashing 11:59PM DBG updating double sign evidence height=104201 module=staking 11:59PM DBG updating validators statuses height=104201 module=staking 11:59PM DBG updating validators voting powers height=104201 module=staking 11:59PM DBG enqueueing new block height=104202 11:59PM DBG processing block height=104202 11:59PM DBG updating validators height=104202 module=staking 11:59PM DBG updating signing info height=104202 module=slashing 11:59PM DBG updating validators voting powers height=104202 module=staking 11:59PM DBG updating double sign evidence height=104202 module=staking 11:59PM DBG updating validators statuses height=104202 module=staking 12:00AM DBG getting inflation data module=mint operation=inflation panic: invalid Go type math.LegacyDec for field cosmos.mint.v1beta1.QueryInflationResponse.inflation

goroutine 38856 [running]: google.golang.org/protobuf/internal/impl.newSingularConverter({0x306d510?, 0x24a7fa0}, {0x306e948, 0xc000381770}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/convert.go:142 +0xaa8 google.golang.org/protobuf/internal/impl.NewConverter({0x306d510, 0x24a7fa0}, {0x306e948?, 0xc000381770?}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/convert.go:60 +0x9d google.golang.org/protobuf/internal/impl.fieldInfoForScalar({0x306e948, 0xc000381770}, {{0x21e0dbe, 0x9}, {0x0, 0x0}, {0x306d510, 0x24a7fa0}, {0x21e0dc8, 0x6f}, ...}, ...) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message_reflect_field.go:270 +0x17c google.golang.org/protobuf/internal/impl.(*MessageInfo).makeKnownFieldsFunc(0xc000d586e0, {0xffffffffffffffff, {0x0, 0x0}, 0xffffffffffffffff, {0x0, 0x0}, 0xffffffffffffffff, {0x0, 0x0}, ...})
/mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message_reflect.go:80 +0x78a google.golang.org/protobuf/internal/impl.(*MessageInfo).makeReflectFuncs(0xc000d586e0, {0x306d510, 0x21a9c80}, {0xffffffffffffffff, {0x0, 0x0}, 0xffffffffffffffff, {0x0, 0x0}, 0xffffffffffffffff, ...} ) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message_reflect.go:42 +0x58 google.golang.org/protobuf/internal/impl.(*MessageInfo).initOnce(0xc000d586e0) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message.go:90 +0x1b0 google.golang.org/protobuf/internal/impl.(*MessageInfo).init(...) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message.go:72 google.golang.org/protobuf/internal/impl.(*messageReflectWrapper).ProtoMethods(0xc000b70a40) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/internal/impl/message_reflect_gen.go:150 +0x28 google.golang.org/protobuf/proto.protoMethods(...) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/proto/proto_methods.go:19 google.golang.org/protobuf/proto.UnmarshalOptions.unmarshal({{}, 0x1, 0x1, 0x0, {0x3023938, 0xc000119b30}, 0x2710}, {0xc00097fdd0, 0x14, 0x14}, ...) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/proto/decode.go:93 +0xe8 google.golang.org/protobuf/proto.UnmarshalOptions.UnmarshalState({{}, 0x1, 0x1, 0x0, {0x0, 0x0}, 0x2710}, {{}, {0x3061418, 0xc000b70a40}, ...}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/proto/decode.go:77 +0xa8 github.com/golang/protobuf/proto.UnmarshalMerge({0xc00097fdd0, 0x14, 0x14}, {0x30301e0?, 0xc000eacd60?}) /mnt/e/code/pkg/mod/github.com/golang/[email protected]/proto/wire.go:67 +0x12b github.com/golang/protobuf/proto.Unmarshal({0xc00097fdd0, 0x14, 0x14}, {0x30301e0, 0xc000eacd60?}) /mnt/e/code/pkg/mod/github.com/golang/[email protected]/proto/wire.go:58 +0x53 google.golang.org/grpc/encoding/proto.codec.Unmarshal({}, {0xc00097fdd0, 0x14, 0x14}, {0x23a6040, 0xc000eacd60}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/encoding/proto/proto.go:53 +0x5f google.golang.org/grpc.recv(0xc000571d40, {0x7fe0681e9a68, 0x4538c00}, 0xc000eacd70?, {0x0, 0x0}, {0x23a6040, 0xc000eacd60}, 0x23a62c0?, 0x0, ...) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/rpc_util.go:800 +0x10a google.golang.org/grpc.(*csAttempt).recvMsg(0xc000df1450, {0x23a6040?, 0xc000eacd60}, 0x4538c00?) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/stream.go:1079 +0x27d google.golang.org/grpc.(*clientStream).RecvMsg.func1(0x0?) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/stream.go:922 +0x1f google.golang.org/grpc.(*clientStream).withRetry(0xc000de0360, 0xc000b63cc8, 0xc000b63cb8) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/stream.go:771 +0x13a google.golang.org/grpc.(*clientStream).RecvMsg(0xc000de0360, {0x23a6040?, 0xc000eacd60?}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/stream.go:921 +0x113 google.golang.org/grpc.invoke({0x3040448?, 0xc000571bc0?}, {0x2512e7a?, 0x4123a5?}, {0x23a62c0, 0x4538c00}, {0x23a6040, 0xc000eacd60}, 0x0?, {0x0, ...}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/call.go:78 +0xcb google.golang.org/grpc.(*ClientConn).Invoke(0xc000b5cc00, {0x3040448, 0xc000571bc0}, {0x2512e7a, 0x24}, {0x23a62c0, 0x4538c00}, {0x23a6040, 0xc000eacd60}, {0x0, ...}) /mnt/e/code/pkg/mod/google.golang.org/[email protected]/call.go:42 +0x2cb github.com/cosmos/cosmos-sdk/x/mint/types.(*queryClient).Inflation(0xc000b714e0, {0x3040448, 0xc000571bc0}, 0xc000b63f40?, {0x0, 0x0, 0x0}) /mnt/e/code/pkg/mod/github.com/cosmos/[email protected]/x/mint/types/query.pb.go:356 +0xcb github.com/forbole/bdjuno/v4/modules/mint/source/remote.Source.GetInflation({0xc0007ed260?, {0x3030240?, 0xc000b714e0?}}, 0xc000dadb18?) /home/libin/coeus-labs/cosmos-explorer/bdjuno/modules/mint/source/remote/source.go:31 +0x62 github.com/forbole/bdjuno/v4/modules/mint.(*Module).UpdateInflation(0xc0005d3980) /home/libin/coeus-labs/cosmos-explorer/bdjuno/modules/mint/handle_periodic_operations.go:38 +0xad github.com/forbole/bdjuno/v4/modules/utils.WatchMethod.func1() /home/libin/coeus-labs/cosmos-explorer/bdjuno/modules/utils/errors.go:11 +0x17 created by github.com/forbole/bdjuno/v4/modules/utils.WatchMethod in goroutine 38855 /home/libin/coeus-labs/cosmos-explorer/bdjuno/modules/utils/errors.go:10 +0x4f

civet148 avatar Sep 23 '23 01:09 civet148

fyi: the error is thrown in here: https://github.com/protocolbuffers/protobuf-go/blob/master/internal/impl/convert.go#L142

vladimir-trifonov avatar Sep 27 '23 12:09 vladimir-trifonov

fyi: the error is thrown in here: https://github.com/protocolbuffers/protobuf-go/blob/master/internal/impl/convert.go#L142

yes, I tried cosmos-sdk simd in command line

# It's crashed
simd query mint inflation --grpc-addr 192.168.1.26:9090 --grpc-insecure
# It's works
simd query mint inflation --node tcp://192.168.1.26:26657

civet148 avatar Oct 09 '23 03:10 civet148

Hey yes I believe this is a bug inside the cosmos-sdk and it actually occurs in several chains we support. Until this is fixed you can try to query API endpoint instead to get the latest inflation value, here is an example thanks :)

MonikaCat avatar Feb 02 '24 10:02 MonikaCat