Я пытаюсь связать свой код Erlang и код Go с gRPC, во время которого я обнаружил, что, если я подключаюсь к gRPC слишком много раз одновременно, мой сокет будет закрыт сервером Go, что еще больше остановит мой клиент Erlang (gen_server) . Мне не было предоставлено никакой информации об ошибке, только простой код в Erlang, показывающий, что http2_client socket closed by peer #Port<some port info>
.
Я уверен, что предел количества одновременных потоков, разрешенный gRPC, не достигнут (поскольку мой журнал отладки не показал, что мы достигли этого места), и после внимательного просмотра я обнаружил, что проблема возникла в google.golang.org \ grpc \ server.go serveStreams (line 830)
, и мои журналы показали, что все потоки успешно достиг var wg sync.WaitGroup
, но не смог закончить оставшиеся части, чтобы вернуться к defer st.Close()
.
Может ли кто-нибудь помочь мне с этой странной ошибкой или, по крайней мере, дать мне несколько советов, в которых я должен разобраться?
st.Close()
- person TehSphinX   schedule 01.09.2020