Do not close the inner reader when disposing wrapped data readers#2100
Merged
mgravell merged 1 commit intoDapperLib:mainfrom Jul 3, 2024
Merged
Do not close the inner reader when disposing wrapped data readers#2100mgravell merged 1 commit intoDapperLib:mainfrom
mgravell merged 1 commit intoDapperLib:mainfrom
Conversation
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() ```
Member
|
Seems fair; we can let the inner reader worry about what |
mgravell
approved these changes
Jul 3, 2024
Member
|
overriding appveyor, although the pgsql problem might prevent "main" deploy - that's not your problem, though; unrelated to this PR |
This was referenced Jul 24, 2025
This was referenced Aug 5, 2025
This was referenced Aug 20, 2025
This was referenced Nov 14, 2025
This was referenced Dec 1, 2025
This was referenced Dec 15, 2025
This was referenced Jan 11, 2026
This was referenced Feb 9, 2026
sloweyyy
added a commit
to sloweyyy/cloud-native-ecommerce-platform
that referenced
this pull request
Mar 22, 2026
Updated [Dapper](https://github.com/DapperLib/Dapper) from 2.1.35 to 2.1.66. <details> <summary>Release notes</summary> _Sourced from [Dapper's releases](https://github.com/DapperLib/Dapper/releases)._ ## 2.1.66 WARNING: `DateOnly` / `TimeOnly` support, added in 2.1.37, had multiple failure modes, and was quickly reverted pending finding the time to investigate what went wrong. The impacted packages were unlisted, with 2.1.35 being the last listed version. This is the first version *after* that debacle, which means if you are using the impacted 2.1.37 or similar: this version will effectively *remove* functionality (although it was actually disabled a very long time ago). --- ## What's Changed * TFM update; +net8 (LTS), -net5, -net7 by @mgravell in DapperLib/Dapper#2144 * normalize async API surface over all TFMs by @mgravell in DapperLib/Dapper#2144 * disable DateOnly / TimeOnly support by @mgravell in DapperLib/Dapper#2080 * change dapper-plus citation by @mgravell in DapperLib/Dapper#2083 * Do not close the inner reader when disposing wrapped data readers by @0xced in DapperLib/Dapper#2100 * CI - update pgsql to 13 by @mgravell in DapperLib/Dapper#2119 * Fix #2113 by @goerch in DapperLib/Dapper#2118 * update package refs and fixup by @mgravell in DapperLib/Dapper#2120 * add mention of MariaDB to Readme.md by @robertsilen in DapperLib/Dapper#2116 * Improve performance of "queryunbuffered", and correctness of "first" APIs by @mgravell in DapperLib/Dapper#2121 * Properly handle value types when setting properties on dynamic objects returned by Dapper queries by @alatanza in DapperLib/Dapper#2122 * Mark AddTypeHandlerImpl as obsolete and prevent lost updates via AddTypeHandler by @mgravell in DapperLib/Dapper#2129 * Build: Update Postgres script by @NickCraver in DapperLib/Dapper#2130 ## New Contributors * @goerch made their first contribution in DapperLib/Dapper#2118 * @robertsilen made their first contribution in DapperLib/Dapper#2116 * @alatanza made their first contribution in DapperLib/Dapper#2122 **Full Changelog**: DapperLib/Dapper@2.1.44...2.1.66 ## 2.1.44 (fixes NuGet readme) **Full Changelog**: DapperLib/Dapper@2.1.42...2.1.44 ## 2.1.42 ## What's Changed * revert #2050 - see #2049 for more details by @mgravell in DapperLib/Dapper#2070 * new sponsor: Dapper Plus by @mgravell in DapperLib/Dapper#2069 **Full Changelog**: DapperLib/Dapper@2.1.37...2.1.42 ## 2.1.37 ## What's Changed * string and byte[] : add UseGetFieldValue by @mgravell in DapperLib/Dapper#2050 * implement DateOnly/TimeOnly by @mgravell in DapperLib/Dapper#2051 **Full Changelog**: DapperLib/Dapper@2.1.35...2.1.37 Commits viewable in [compare view](DapperLib/Dapper@2.1.35...2.1.66). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
This was referenced Mar 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.