Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not close the inner reader when disposing wrapped data readers #2100

Merged
merged 1 commit into from
Jul 3, 2024

Commits on Jul 3, 2024

  1. Do not close the inner reader when disposing wrapped data readers

    When disposing wrapped readers, only call Dispose() on the inner reader and let it catch exceptions if appropriate.
    
    Note: this actually happened with `Microsoft.Data.SqlClient`.
    
    ```
    Microsoft.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
     ---> System.ComponentModel.Win32Exception (258): The wait operation timed out.
       at void Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, bool breakConnection, Action<Action> wrapCloseInAction)
       at void Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, bool callerHasConnectionLock, bool asyncClose)
       at bool Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, out bool dataReady)
       at bool Microsoft.Data.SqlClient.SqlDataReader.TryCloseInternal(bool closeReader)
       at void Microsoft.Data.SqlClient.SqlDataReader.Close()
       at void Dapper.DbWrappedReader.Dispose(bool disposing) in /_/Dapper/WrappedReader.cs:line 149
       at ValueTask System.Data.Common.DbDataReader.DisposeAsync()
    ```
    0xced committed Jul 3, 2024
    Configuration menu
    Copy the full SHA
    81f4ba9 View commit details
    Browse the repository at this point in the history