0

We have a client and server communicating each other with grpc. Previously the server was running on Windows Server, and the client running on Linux or MacOS. Everything works perfectly until we migrate the server from Windows Server to a docker container.

Then we observed some weird tcp broken when we send a large amount of request from client to server.

Then we dig into the grpc arena and run our client and server with GRPC_VERBOSITY=info and GRPC_TRACE=tcp. Then we found that the disconnection was caused from the server side, with error message below:

tcp_custom.cc:218] write complete on 029FCC20: error={"created":"@1594210168.896000000","description":"TCP Write failed","file":"d:\a\grpc-node\grpc-node\packages\grpc-native-core\deps\grpc\src\core\lib\iomgr\tcp_uv.cc","file_line":72,"grpc_status":14,"os_error":"message too long"}

So my question is what does the os_error: message too long really means? What is the next step for me to investigate?

Linked issue

4

1 回答 1

1

字符串“message too long”是错误码的错误信息UV_EMSGSIZE,对应Linux的错误码EMSGSIZE。这似乎通常意味着 gRPC 正在尝试写入对套接字来说太大的缓冲区,但我不确定究竟是什么触发了这种情况。

于 2020-07-10T15:29:27.427 回答