grpc-go client disconnect in 60 seconds
mdounin at mdounin.ru
Tue Nov 10 13:41:50 UTC 2020
On Tue, Nov 10, 2020 at 07:56:36AM -0500, aagrawal wrote:
> Hi ,
> I am using grpc-go client for grpc subscription, and in every 60 seconds
> after subscription , it is disconnecting.
> I run nginx in debug mode, and found following logs where i see that "408"
> error happened , because "client_body_timeout is default value 60 seconds."
> I tried increasing this client_body_timeout directive to 360 seconds, i see
> that grpc-go client disconnect in 360 seconds.
> Same issue was not observed when i run grpc-java client or grpc-python
> client .
> Can you please help me to know why this issue may happen ?
As long as your gRPC call uses client-to-server streaming, from
HTTP point of view it essentially sends the request body in a
small chunks. As long as no data are sent for a long time, the
client body timeout will occur. This is what you seems to
observe in your tests.
Similarly, grpc_read_timeout might occur for server-to-client
streaming if no data are sent for a long time.
To fix this, make sure that at least some data are sent in gRPC
streams periodically, and configure timeouts to something larger
than the period in question. Alternatively, consider avoiding
gRPC streams and/or make sure streams are properly closed when
they are no longer needed.
More information about the nginx