Skip to content

Wrong streams sequence #12

@carolcarolus

Description

@carolcarolus

Hi,

I noticed weird behavior of the grpc_client in my application.

I have a client-server application which uses grpc_client:unary(...) function and external msg encoder.

Unfortunately, after sending a large amount of messages in parallel, the server application receives streams in wrong sequence which causes a crash:
1 -> 3 -> 5 -> 7 -> 9 -> 11 -> 15 -> 19 -> 13 -> 21 -> crash
and this is incompatible with rfc7540.

I noticed that grpc_client reserves the new stream ID and after that stats to process message content, including encoding the message(grpc_client_stream.erl). If the sending message is very big it will be encoded(and send) later than the message from the next one streamID. In my opinion this is a bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions