Skip to content

TLS: concurrent read and write deadlocks #330

Description

@pgit

When sending and receiving data concurrently from a TLS stream, neither operation makes progress:

co_await capy::when_all(reader(stream), writer(stream, "response payload"));

Doing both consecutively works:

   std::ignore = co_await writer(stream, "response payload");
   std::ignore = co_await reader(stream);

This is part of a minimal standalone repro made of a client and server that exchange a few bytes:

Corosio 31a078b

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions