Open
Description
I am creating server-side stream from Flutter client to Rust server (using tonic). When I'm gracefully stopping the server, it cancels all in-progress streams. However, grpc-dart client doesn't stop the streaming call when canceled from the server, thus making the server hang during shutdown.
This is not server implementation's fault. I verified that the stream gets cancelled by making the streaming call from Postman.
grpc-dart version: 3.2.3
Repro steps
- Create a server with server-side streaming RPC.
- Connect to the server and invoke this RPC.
- Stop the server (or cancel the stream from the server).
- Observe that grpc-dart client doesn't notice the cancellation and the server hangs.
Expected result: When the call is cancelled on the server, stream should close on the client side.
Actual result: Stream doesn't close when the call is cancelled from the server.