1.grpc调用方和提供方的proto必须保持一致,比如grpc调用方的proto中String name 21 但是提供方String name 20可能会出现name字段在请求的时候一直是空的情况
2.grpc响应错误是: "origin_message": "grpc: error while marshaling: proto: Marshal called with nil" 是因为rpc方法结果直接返回return nil,需要检查逻辑
- `mac升级到14.6版本之后,grpc dns发现报错 go 编译报错 panic: runtime error: slice bounds out of range [33554436:73]
goroutine 690 [running]: internal/poll.(*FD).Write(0xc00069a800, {0xc0001d0242, 0x49, 0x200}) /usr/local/go/src/internal/poll/fd_unix.go:380 +0x467 net.(*netFD).Write(0xc00069a800, {0xc0001d0242?, 0xc00006e770?, 0x105896f55?}) /usr/local/go/src/net/fd_posix.go:96 +0x25 net.(*conn).Write(0xc008740208, {0xc0001d0242?, 0xc00006e6e0?, 0x1056c0849?}) /usr/local/go/src/net/net.go:197 +0x45 net.dnsPacketRoundTrip({_, }, , {{{0x5f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x63, ...}, ...}, ...}, ...) /usr/local/go/src/net/dnsclient_unix.go:109 +0x8a net.(*Resolver).exchange(, {, }, {, _}, {{{0x5f, 0x67, 0x72, 0x70, 0x63, ...}, ...}, ...}, ...) /usr/local/go/src/net/dnsclient_unix.go:194 +0x4e5 net.(*Resolver).tryOneName(0x1084e2f00, {0x107544170, 0xc006b20a80}, 0x0?, {0xc0006aaba0, 0x2d}, 0x10) /usr/local/go/src/net/dnsclient_unix.go:305 +0x44b net.(*Resolver).lookup(0x1084e2f00, {0x107544170, 0xc006b20a80}, {0xc0006aab40, 0x2c}, 0x10, 0x0) /usr/local/go/src/net/dnsclient_unix.go:472 +0x28d net.(*Resolver).goLookupTXT(0xc1af75b15eda9ee0?, {0x107544170?, 0xc006b20a80?}, {0xc0006aab40, 0x2c}) /usr/local/go/src/net/lookup.go:857 +0x70 net.(*Resolver).lookupTXT(...) /usr/local/go/src/net/lookup_unix.go:112 net.(*Resolver).LookupTXT(0x40?, {0x107544170?, 0xc006b20a80?}, {0xc0006aab40?, 0xc009e775c0?}) /usr/local/go/src/net/lookup.go:640 +0x25 google.golang.org/grpc/internal/resolver/dns.(*dnsResolver).lookupTXT(0xc00069a300, {0x107544170, 0xc006b20a80}) /Users/peanut/apps/works/go/pkg/mod/google.golang.org/grpc@v1.64.0/internal/resolver/dns/dns_resolver.go:286 +0x72 google.golang.org/grpc/internal/resolver/dns.(*dnsResolver).lookup(0xc00069a300) /Users/peanut/apps/works/go/pkg/mod/google.golang.org/grpc@v1.64.0/internal/resolver/dns/dns_resolver.go:345 +0x312 google.golang.org/grpc/internal/resolver/dns.(*dnsResolver).watcher(0xc00069a300) /Users/peanut/apps/works/go/pkg/mod/google.golang.org/grpc@v1.64.0/internal/resolver/dns/dns_resolver.go:204 +0x8d created by google.golang.org/grpc/internal/resolver/dns.(*dnsBuilder).Build in goroutine 12 /Users/peanut/apps/works/go/pkg/mod/google.golang.org/grpc@v1.64.0/internal/resolver/dns/dns_resolver.go:147 +0x3e9 exit status 2`
解决办法:
试下是否可以