Skip to content

Make DisposeAsync fully async in failure case #876

@bgrainger

Description

@bgrainger

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions