Open
Description
Describe the question
I have a unary gRPC connection between a client and a server, and when the server sends a large response (about 500MB) back to the client, the client throws an error
"reason": "no case clause matching: {:error, %GRPC.RPCError{status: 13, message: \":stream_error: {:stream_error, :no_error, :\\\"Stream reset by server.\\\"}\"}}"
And the stacktrace is to these two functions
"lib/grpc/stub.ex:456: Elixir.GRPC.Stub.recv_body/5",
"lib/grpc/stub.ex:427: Elixir.GRPC.Stub.do_recv/2",
We didn't see this error with a smaller response, so I'm wondering if there is any limit on the server's send message length like other languages (e.g. Golang)? If so, is it configurable?
Versions:
- OS: ubuntu
- Erlang: 26.1.2
- Elixir: 1.15.4-otp-26
- mix.lock(grpc, gun, cowboy, cowlib):
"grpc": {:git, "https://[email protected]/shorelinesoftware/elixir_grpc_priv.git", "65ff1d1b56f84017b34be5ed13c5b8fb3a4f801c", [branch: "grpc-stats-connection-deps"]},
"gun": {:hex, :grpc_gun, "2.0.1", "221b792df3a93e8fead96f697cbaf920120deacced85c6cd3329d2e67f0871f8", [:rebar3], [{:cowlib, "~> 2.11", [hex: :cowlib, repo: "hexpm", optional: false]}], "hexpm", "795a65eb9d0ba16697e6b0e1886009ce024799e43bb42753f0c59b029f592831"},