Каковы причины os_error: слишком длинное сообщение - PullRequest
0 голосов
/ 10 июля 2020

У нас есть клиент и сервер, взаимодействующие друг с другом с помощью grp c. Раньше сервер работал на сервере Windows, а клиент - на Linux или MacOS. Все работает отлично, пока мы не перенесем сервер с Windows Server в docker контейнер.

Затем мы наблюдали странные поломки TCP, когда мы отправляем большой объем запросов от клиента к серверу.

Затем мы копаемся в арене grp c и запускаем наш клиент и сервер с 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? Что мне делать дальше для расследования?

Связанная проблема

1 Ответ

1 голос
/ 10 июля 2020

Строка «слишком длинное сообщение» является сообщением об ошибке для кода ошибки UV_EMSGSIZE, что соответствует коду ошибки Linux EMSGSIZE. Как правило, это означает, что gRP C пытается записать слишком большой буфер для сокета, но я не уверен, что именно могло вызвать это.

...