Skip to content

Server-side stream doesn't get cancelled #660

Open
@LowderPlay

Description

@LowderPlay

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

  1. Create a server with server-side streaming RPC.
  2. Connect to the server and invoke this RPC.
  3. Stop the server (or cancel the stream from the server).
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions