Stream write error doesn't get returned to Send call. Send eventually hangs.

91 views
Skip to first unread message

Paul Breslin

unread,
Jun 29, 2016, 3:51:11 PM6/29/16
to grpc.io
I have a case (client and server both in Go) where the client opens a write stream and starts to send write requests. The server receives the first request and returns an error immediately. On the client side the Send calls continue to succeed and at some threshold they eventually hang (indefinitely? I haven't waited long enough to find out). Below that threshold if the client calls CloseAndRecv then the error is returned.

Is the server supposed to do something to shutdown the stream prior to returning an error?

(Go version is: go1.5.3.  I can't find a grpc release number anywhere.)

Qi Zhao

unread,
Jul 12, 2016, 7:56:55 PM7/12/16
to grpc.io
sounds a bug. fixing .... Thanks for reporting.

Paul Breslin

unread,
Sep 14, 2016, 12:02:12 PM9/14/16
to grpc.io
I see that this may now be fixed?  https://github.com/grpc/grpc-go/issues/764

Has this been released yet? If not any idea when?

Thanks!

Paul Breslin

unread,
Sep 14, 2016, 2:24:08 PM9/14/16
to grpc.io
I've even tried canceling the context on the server side when the error occurs but the writer still hangs!
This is a serious bug (at least for us).

Menghan Li

unread,
Sep 14, 2016, 3:19:29 PM9/14/16
to grpc.io
Hi Paul,

I believe the bug has been fixed in https://github.com/grpc/grpc-go/pull/766.
Can you update your gRPC-go and try again? If your issue is still not fixed, can you send us a test to reproduce?

(Note that the send() will get an io.EOF error, and you still need to call CloseAndRecv() to get the real error returned by server)

Thanks,
Menghan
Reply all
Reply to author
Forward
0 new messages