Open StefanBilliet opened 4 years ago
ConfigureAwait(false)
when doing async operations (Allowing the continuation to complete on different synchronization context).@StefanBilliet SumoLogic.Logging.Serilog: 1.0.1.2 has been released. Can you check if it fixes your issued?
Installed product versions
Description
After I make a RPC call via remoting and a timeout exception is thrown, when I log the exception using Log.Error, I get stuck in a deadlock.
Steps to recreate
Current behavior
After I noticed the above, I wrapped the Log.Error in a Task.Factory.StartNew which fixed the deadlock issue. I also tried using the buffered sink with a max messages of 5, this also did not deadlock. I took the liberty of looking at the code because we've had something similar in our own code a little while ago and I saw that you're using GetAwaiter().GetResult() to make an async task synchronous. This article makes a case of why this is a bad idea and provides a helper class to do this in a safer way. I realise this is not really an actionable issue because it's terribly hard to reproduce without having our code, but I thought that that article and the AsyncUtil helper class might be of help to you.
Expected behavior
Not deadlock