You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
We're using the connect protocol to stream messages from a server to a client. I seem to have misconfigured the reverse proxy in between them, so the connection drops after 30 seconds.
What surprised me, though, was that in this case (*ServerStreamForClient).Err() returns nil, even though the client never received the end-of-stream message.
It seems like when the connection dropped unexpectedly, the client receives an io.EOF, which is suppressed.
If the server closed the stream and the client received the end-of-stream message, then the error is errSpecialEnvelope, which is also suppressed since it wraps io.EOF.
It seems like it's not possible to distinguish between "the server ended the stream" and "the connection dropped unexpectedly".
Describe the solution you'd like
I would like (*ServerStreamForClient).Err() to only return nil if the client received the end-of-stream message from the server. If the client received io.EOF before receiving the end-of-stream message, then I would like it to return the error.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
We're using the connect protocol to stream messages from a server to a client. I seem to have misconfigured the reverse proxy in between them, so the connection drops after 30 seconds.
What surprised me, though, was that in this case
(*ServerStreamForClient).Err()
returns nil, even though the client never received the end-of-stream message.It seems like when the connection dropped unexpectedly, the client receives an
io.EOF
, which is suppressed.If the server closed the stream and the client received the end-of-stream message, then the error is
errSpecialEnvelope
, which is also suppressed since it wrapsio.EOF
.It seems like it's not possible to distinguish between "the server ended the stream" and "the connection dropped unexpectedly".
Describe the solution you'd like
I would like
(*ServerStreamForClient).Err()
to only return nil if the client received the end-of-stream message from the server. If the client receivedio.EOF
before receiving the end-of-stream message, then I would like it to return the error.The text was updated successfully, but these errors were encountered: