I have some c# code that has worked for ages on windows but is suddenly failing when run on linux after dotnet core conversion.
The particular code involves manually opening a socket connection and implementing a timeout by temporarily setting the socket to non-blocking, to move past the Connect method, polling the socket until it's connected, but also with an exit path for a timeout.
When the non-blocking connect method is passed an exception is thrown which is saying "I would block here if I were a blocking socket" (technically referred to as "EAGAIN", for which the string "Resource temporarily unavailable" is tied). I catch that exception and if it's "WouldBlock", ignore the exception and move on (to polling for the connection to complete or the timeout to occur). On linux I am getting "Resource temporarily available" somehow even though I am catching this error code.