RPC freezes when intensively calling delegates with WatsonTCP
Describe the bug
After updating WatsonTCP to revision 9c27fc97fb4195f21ef2044f53ada9f3323731e0, part of the RPC began to hang with infinite SendTimeout and frequent RPCs. If I replace the channel with WebSocketClientChannel, then no RPC hangs.
Send waits on server side in WatsonTcpServer.cs at
await client.WriteLock.WaitAsync(token).ConfigureAwait(false);
It's a deadlock. This seems to happen when processing RPC with intensive delegate calls, which leads to frequent sending of data from the server. As a result, many tasks are hanging on wait, but they do not continue due to thread pool exhaustion.
Expected behavior RPCs don't hang.
Additional notes WatsonTCP creates a lot of problems, and is also not actively supported by the developer. Maybe we should leave WebSocketClientChannel as the main one? And maybe you should abandon WatsonTCP?