Skip to content

Attempting streaming service with swift server and non-swift client does not work. #2095

@ericdusel-tri

Description

@ericdusel-tri

Describe the bug

I have attempted to run the RouteGuide sample, specifically with the listFeatures server side streaming service. Everything works fine when I run it using a grpc-swift implementation for both client and server. However, I want to be able to stream from a Vision Pro to an ubuntu machine. I have implemented the code successfully from Vision Pro (server) to a macOS 15 machine (client). When I try and create a client using the master branch of gRPC, the stream breaks after a few seconds. I have tried both C++ and Python to create the client. I have also tried running server+client pairs that are local and remote. I have tried all combinations of:
-swift (on Vision Pro) -> python
-swift (on macOS) -> python
-swift (on macOS) -> C++
-swift (on Vision Pro) -> swift (on macOS).

I am using grpc-swift v 2.0.0-alpha.1.
For python I am using grpcio v 1.66.2 (I have even tried 1.67.0rc1)
For C++ I am using the master branch of gRPC built with bazel

To reproduce

Steps to reproduce the bug you've found:

  1. Create a RouteGuide service+server with grpc-swift v2.0.0-alpha.1 and implement the server side streaming function listFeatures
  2. Create a RouteGuide client for either C++ or python
  3. Prolong the stream by adding a try await Task.sleep(nanoseconds: 3_000_000_000) in listFeatures in RouteGuideService.swift before the try await writer.write(feature)
  4. Run the server then the client.

Expected behaviour

I would expect the stream to complete, but it always crashes after only a handful of features listed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugFeature doesn't work as expected.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions