最近在使用golang grpc stream方式的时候,遇到一个问题。
接收方在收数据一段时间后,突然打印grpc: failed to unmarshal the received message proto: can't skip unknown wire type 7
并且后面再也恢复不了。
查看了下源码,发现出现这个报错,一般都是传入的报文出了问题,导致解析失败。
也有可能是用到的pb并没有更新,导致不能对齐,解析失败。
所以尝试了更新所有使用到的pb,发现并没有解决这个问题。
然后又把怀疑点放在报文出了问题上。
查看代码发现,发送方发送了数据后,这部分数据又被别的协程修改了!