Steps to reproduce 1. Start server 2. Send a client RPC to server 3. Restart server 4. Using the same client, send another RPC. The call will fail 5. Send another RPC, this call will success
Also I found that if the server is leave stopped for a long time before starting up again, the call in step 5 will return "channel is in state TRANSIENT_FAILURE" as well. Example code: https://github.com/whs/grpc-repro (Install from requirements.txt then run main.py) Expected result All call should success. Tested with Python grpcio==1.19.0 server/client and with go-grpc server. I tried setting grpc.max_connection_age_grace_ms, grpc.max_connection_age_ms, grpc.max_connection_idle_ms, grpc.keepalive_time_ms, grpc.keepalive_permit_without_calls but they doesn't seems to help. >From my own investigation, I believe that gRPC channels doesn't drop closed channels and tries to send calls in closed channel. There is also TCP RST sent. -- 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/e8465f2b-96f1-4ad1-816f-ee6521595179%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
