ballerina-platform / ballerina-library

The Ballerina Library
https://ballerina.io/learn/api-docs/ballerina/
Apache License 2.0
137 stars 58 forks source link

GRPC caller is not isolated and hence unable to make concurrent connections #6656

Closed ThaminduDilshan closed 3 months ago

ThaminduDilshan commented 3 months ago

Description:

I have created a grpc bi-directional client-server communication using the following proto file.

syntax = "proto3";

import "google/protobuf/struct.proto";

service RemoteUserStore {
    rpc communicate (stream RemoteMessage) returns (stream RemoteMessage);
}

message RemoteMessage {
    string id = 1;
    string operationType = 2;
    string organization = 3;
    google.protobuf.Struct data = 4;
}

The generated grpc caller (i.e. RemoteUserStoreRemoteMessageCaller) is not initialized as an isolated method and hence unable to make the communication method isolated to invoke concurrent requests.

Steps to reproduce:

Affected Versions:

OS, DB, other environment details and versions:

Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

dilanSachi commented 3 months ago

This has to be fixed in both runtime and also also the protoc-tool as well

dilanSachi commented 3 months ago

Closing since completed

github-actions[bot] commented 3 months ago

This issue is NOT closed with a proper Reason/ label. Make sure to add proper reason label before closing. Please add or leave a comment with the proper reason label now.

      - Reason/EngineeringMistake - The issue occurred due to a mistake made in the past.
      - Reason/Regression - The issue has introduced a regression.
      - Reason/MultipleComponentInteraction - Issue occured due to interactions in multiple components.
      - Reason/Complex - Issue occurred due to complex scenario.
      - Reason/Invalid - Issue is invalid.
      - Reason/Other - None of the above cases.