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.
