On centos 6.5 , go version 1.8, stack: panic: reflect: call of reflect.Value.Int on ptr Value [recovered] panic: reflect: call of reflect.Value.Int on ptr Value
goroutine 52598456 [running]: encoding/gob.catchError(0xc4209e10d0) /root/go/src/encoding/gob/error.go:38 +0x95 panic(0xc40860, 0xc42606ad00) /root/go/src/runtime/panic.go:489 +0x2cf reflect.Value.Int(0xbcdec0, 0xc4251fe520, 0x196, 0x196) /root/go/src/reflect/value.go:902 +0xb5 encoding/gob.encInt(0xc423ab4ae0, 0xc422da1e40, 0xbcdec0, 0xc4251fe520, 0x196) /root/go/src/encoding/gob/encode.go:188 +0x43 encoding/gob.(*Encoder).encodeStruct(0xc4209e1040, 0xc4209e1078, 0xc421a28a20, 0xcc1be0, 0xc4251fe510, 0x199) /root/go/src/encoding/gob/encode.go:334 +0x256 encoding/gob.(*Encoder).encode(0xc4209e1040, 0xc4209e1078, 0xcc1be0, 0xc4251fe510, 0x199, 0xc4209c3480) /root/go/src/encoding/gob/encode.go:707 +0x1d3 encoding/gob.(*Encoder).EncodeValue(0xc4209e1040, 0xc95bc0, 0xc4251fe510, 0x16, 0x0, 0x0) /root/go/src/encoding/gob/encoder.go:250 +0x3ab encoding/gob.(*Encoder).Encode(0xc4209e1040, 0xc95bc0, 0xc4251fe510, 0x0, 0x0) /root/go/src/encoding/gob/encoder.go:175 +0x61 net/rpc.(*gobServerCodec).WriteResponse(0xc422b51ec0, 0xc422d737d0, 0xc95bc0, 0xc4251fe510, 0xc422b43a40, 0xc422b4a350) /root/go/src/net/rpc/server.go:424 +0x1dd net/rpc.(*Server).sendResponse(0xc420055680, 0xc422b45aa0, 0xc421c4ff00, 0xc95bc0, 0xc4251fe510, 0x1334ac0, 0xc422b51ec0, 0x0, 0x0) /root/go/src/net/rpc/server.go:366 +0x130 net/rpc.(*service).call(0xc422afe900, 0xc420055680, 0xc422b45aa0, 0xc422b4ec00, 0xc421c4ff00, 0xbc3800, 0xc427ab07e0, 0x16, 0xc95bc0, 0xc4251fe510, ...) /root/go/src/net/rpc/server.go:394 +0x22e created by net/rpc.(*Server).ServeCodec /root/go/src/net/rpc/server.go:481 +0x404 the source code just like below: type RpcArgs struct{ A string B int32 C string D int32 E String F int32 G int32 H int32 I bool J string K int32 L String M int32 N int32 O int32 P bool } func RPC1(args *RpcArgs, reply *int){ //some simple logic .... //do another async rpc call,and then painc in gob encode rpc.Client.Go(serviceMethod, args, reply, make(chan *rpc.Call, 1)) } I don't know why in encodeStruct function, encInt is called but its real type is ptr.The funcion RPC1 is called many many times well but panic suddenly.I'm learning source code of RPC and Gob to find reason now and hope someone can help me with this problem. Thank you very much. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.