This seems to still be an issue. We have a server side stream read implementation that is forced to manually timeout because the Done channel doesn't notify when the client side goes away.
On Tuesday, October 27, 2015 at 6:50:35 PM UTC-4, Aaron Beitch wrote: > > Hello, > > tl;dr: Does HTTP2 do any heartbeat with the client? Can a streaming rpc's > context.Done channel be closed if the client dies ungracefully? > > In my application I have bidirectional communication. I implement this > with one unary rpc for client-to-server messages and one streaming rpc for > server-to-client communications. When a client dies ungracefully my server > leaks resources because there is a goroutine sitting around waiting for > data to send to the client, but never notices the client disconnected. > > I was hoping that just waiting on the ctx.Done channel would notify me > when the client disappears, but that doesn't appear to work. I could add a > heartbeat mechanism, but I was hoping to not have to do that. Does HTTP2 do > any heartbeat with the client? Can a streaming rpc's context.Done channel > be closed if the client dies ungracefully? > > Thanks, > Aaron > > -- 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/af4f2bb6-07ac-43bf-9bd4-4f1b6ad72d72%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
