我们有一个与grpc相互通信的客户端和服务器。以前,服务器在Windows Server上运行,客户端在Linux或MacOS上运行。在我们将服务器从Windows server迁移到docker容器之前,一切都运行得很好。
然后,当我们从客户端向服务器发送大量请求时,我们观察到一些奇怪的tcp中断。
然后,我们深入grpc领域,使用GRPC_VERBOSITY=info和GRPC_TRACE=tcp运行我们的客户端和服务器。然后我们发现连接断开是由服务器端引起的,错误消息如下:
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"}所以我的问题是os_error: message too long到底是什么意思?我要调查的下一步是什么?
发布于 2020-07-10 23:29:27
"message too long“字符串是错误代码UV_EMSGSIZE的错误消息,对应于Linux错误代码EMSGSIZE。这似乎通常意味着gRPC正在尝试写一个对套接字来说太大的缓冲区,但我不确定到底是什么触发了这一点。
https://stackoverflow.com/questions/62829966
复制相似问题