My C++ gRPC client makes a long-lived RPC call at program start. The 
messages I receive from this through the asynchronous callback API are 
handled in a separate thread. In the main thread, I make synchronous unary 
RPC calls with a deadline. After exactly an hour, I see a TRANSIENT_FAILURE 
in the GRPC_TRACE log on the channel, and then the unary RPC succeeds 
(likely due to a retry). In my application, I don't notice any issues. 
However, there is now a problem with the long-lived RPC I had previously 
started; I am no longer receiving messages from it.

My question is how to handle this situation, as I can find little 
information about it in the documentation. Should the gRPC library 
automatically resolve this, or should I monitor the channel state in my 
application and, in the case of a TRANSIENT_FAILURE, stop and restart the 
long-lived RPC? Why does this problem always occur after exactly one hour, 
is this some default client or server timeout?

By the way, I see with 'netstat' that an additional socket has been added 
after the TRANSIENT_FAILURE.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/c9698c54-3e0a-488b-8f1d-610b9d9395f8n%40googlegroups.com.

Reply via email to