Skip to content

StdioServer: messages should be processed concurrently #572

@kpavlov

Description

@kpavlov

Stdio transport is the most convenient option in a distributed application, since you can pass a custom sink/source to it. However, the current implementation has critical issue:

Client messages are processed sequentially. This means there can't be 2 requests being processed at once.
If there's a pinger to check client liveness, the "pong" response from the client won't be handled before the previous, maybe very long-running, request handler is finished.
Also, it blocks advanced protocol features like elicitation.

This issue was originally reported in #564, but was extracted to a separate task. cc: @i1bro

Metadata

Metadata

Assignees

Labels

P1Significant bug affecting many usersbugSomething isn't workinginternal-usersRaised by internal usersready for workHas enough information to start

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions