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.

Reply via email to