Recently, I encountered a problem when using golang grpc stream.
After receiving data for a period of time, the receiver suddenly prints grpc: failed to unmarshal the received message proto: can’t skip unknown wire type seven
And it’s not going to recover.
Check the source code, found that this error, generally is the incoming message out of the problem, resulting in parsing failure.
It is also possible that the Pb used is not updated, resulting in failure of alignment and parsing.
So I tried to update all the Pb used, and found that this problem has not been solved.
Then we put the doubt on the message.
Looking at the code, we found that after the sender sent the data, this part of the data was modified by other cooperators!