Any exception from Socket.Send() closes the connection:
SendTimeoutExpiredException does not do that.
This leaves the connection in the pool for quite a while. In our case the socket never recovers. Never throws an exception either. So, the connection stays in the pool and keeps causing timeout exceptions.
It’s pretty urgent issue here. Could you suggest any workarounds that I can implement in my code until you fix it?
You can configure the SDK to use a custom IConnection implementation or pool, but it’s fairly tricky. I would suggest pulling from above (you’ll need to create an account) and then seeing how well it works. Code in Gerrit is pre-merge into Github so it’s only partially tested.