委屈
Kitex 作为一款性能优秀的 RPC 框架,它在各业务中任劳任怨的同时,也不可避免地频繁出没在 panic 的 stack trace 里,因此承受了一些它这个年龄本不该承受的质疑和压力。
为洗 Kitex 的不白之冤,下面介绍两个典型案例。
Case 1: Client Panic
业务同学遇到 panic 监控报警,查日志中发现:
[KITEX: panic, to_service=XXX, to_method=XXX, error=runtime error: invalid memory address or nil pointer dereference
再看 panic 的 stack stace,最内层的两条是:
<kitex/pkg/protocol/bthrift.binaryProtocol.WriteBinaryNocopy(...) kitex_gen/XXXRequest.fastWriteField2(...)