Previously[1] we thought we had things configured so that our Ruby grpc 
clients would ping our grpc-java server every 30 seconds to keep 
connections alive (and detect if they've gone bad) between calls.[2] This 
seems to mostly work, but after still seeing a fairly high rate of 
GRPC::Unavailable errors, we ran a tcpdump on a client machine and observed 
that it appears that processes will sometimes stop pinging even though the 
connection is still good. We believe the connection is still good because 
we'll sometimes see more traffic from the same client port, after which 
pings will restart, re-timed based on the time of that call. (Note that due 
to TLS we're inferring what's call-traffic and what's ping-traffic based on 
packet sizes and timing.) Other times we'll see pings stop and then (more 
than 30 seconds) later, at the configured maxConnectionIdle since the last 
call, see the server close the connection.

Does anyone know of a reason client keepalive pings would stop being sent 
when the connection is still healthy?

Our channel_args configuration is as follows.
    "grpc.initial_reconnect_backoff_ms" => 500,
    "grpc.min_reconnect_backoff_ms" => 500,
    "grpc.max_reconnect_backoff_ms" => 10_000,
    "grpc.keepalive_permit_without_calls" => 1,
    "grpc.http2.min_time_between_pings_ms" => 10_000,
    "grpc.keepalive_time_ms" => 30_000,
    "grpc.keepalive_timeout_ms" => timeout_seconds * 1_000,

Thanks.
-hume.

[1]: https://groups.google.com/forum/#!topic/grpc-io/if-q9zPuGOw
[2]: 
https://github.com/grpc/proposal/blob/master/A8-client-side-keepalive.md

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/d508cccc-2c93-4d2a-a35b-f41897db8dee%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to