From #872 (comment):
The following call stack is possible:
MySqlConnection.DisposeAsync
MySqlConnection.CloseAsync
ServerSession.ReturnToPool
ConnectionPool.Return
ServerSession.DisposeAsync(IOBehavior.Synchronous, CancellationToken.None).GetAwaiter().GetResult();
The two non-Async methods eventually cause sync-over-async in the failure path.
From #872 (comment):
The following call stack is possible:
The two non-
Asyncmethods eventually cause sync-over-async in the failure path.