Socket.Close() blocks indefinitely when Socket.ReceiveMessageFrom() is being called in another thread in Linux on .NET Core runtime v3.1.5.
The only way to release the block that I came up with is to send any UDP packet to the listening socket so that ReceiveMessageFrom() call returns and the socket closes.
Configuration
- .NET Core runtime v3.1.5.
- Tested on Ubuntu 18.04 LTS and Raspbian Buster.
- Tested on x64 and ARM32.
Regression?
This issue as far as I can tell did not come up when the original code was written and tested on .NET Core 2.2. It started to come up when the code was upgraded to .NET Core 3.1 and redeployed.
This issue does not affect Windows installations.
Socket.Close() blocks indefinitely when Socket.ReceiveMessageFrom() is being called in another thread in Linux on .NET Core runtime v3.1.5.
The only way to release the block that I came up with is to send any UDP packet to the listening socket so that ReceiveMessageFrom() call returns and the socket closes.
Configuration
Regression?
This issue as far as I can tell did not come up when the original code was written and tested on .NET Core 2.2. It started to come up when the code was upgraded to .NET Core 3.1 and redeployed.
This issue does not affect Windows installations.