We are building a cross-platform app that consists of several 
interdependent processes that interact with each other.

One process starts a gRPC server and then spawns a child process. After 
having exchanged a few gRPC calls with yet another process it needs to 
close, but is unable to close the server gracefully - ShutdownAsync task 
never completes until the child process exits - but we need it to stay up.

Details regarding child processes:

   - The child that blocks the shutdown doesn't use gRPC. 
   - The peers for the interaction are also spawned by the main process, 
   but are closed by the time the main process starts closing. 
   - Children are spawned using .NET System.Diagnostics.Process API. If the 
   latter is replaced with CreateProcess P/Invoke with inheritHandles=false, 
   the problem disappears, but that would be a work-around, not the solution, 
   assuming we are aiming for cross-platform code. 

 

Could this be the same issue as the "fork() not supported" issue in Python 
version?

Does it mean that out scenario is not supported too?


-- 
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/30199c91-d6d4-4006-9320-e94afce179d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to