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
What happened: Current implementation of StreamClientInterceptor uses perCallContext which creates context with deadline, then streamer() is called with this context. This leads to stream closing from client side when context deadline (which is actually retry timeout) ends. I don't think this is good behavior when stream is closed automatically by retry middleware.
What you expected to happen: I expect to be able to close stream by myself or not close it at all. I see two possible solutions:
Do not pass context with deadline to stream initialization (streamer() call) at all. So we will have retries with timeouts on Recv() only.
Do not pass context with deadline to stream initialization, but somehow track stream success initialization and retry if it was not happen for defined retry timeout.
I can create PR with 1 solution, but I need approve from maintainers.
How to reproduce it (as minimally and precisely as possible):
-->
The text was updated successfully, but these errors were encountered:
Go version used: 1.21
What happened: Current implementation of
StreamClientInterceptor
uses perCallContext which creates context with deadline, then streamer() is called with this context. This leads to stream closing from client side when context deadline (which is actually retry timeout) ends. I don't think this is good behavior when stream is closed automatically by retry middleware.What you expected to happen: I expect to be able to close stream by myself or not close it at all. I see two possible solutions:
streamer()
call) at all. So we will have retries with timeouts onRecv()
only.I can create PR with 1 solution, but I need approve from maintainers.
How to reproduce it (as minimally and precisely as possible):
-->
The text was updated successfully, but these errors were encountered: