Skip to content

[deps] DbOps: Update Microsoft.Data.SqlClient to v7.1.1 - #8718

Merged
mkincaid-bw merged 3 commits into
mainfrom
renovate/microsoft.data.sqlclient-7.x
Nov 6, 2026
Merged

mkincaid-bw merged 3 commits into
mainfrom
renovate/microsoft.data.sqlclient-7.x

Conversation

@renovate

@renovate renovate Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
Microsoft.Data.SqlClient (source) [7.0.2] → [7.1.1] age confidence

Release Notes

dotnet/sqlclient (Microsoft.Data.SqlClient)

v7.1.1

Fixed
  • Fixed an ArgumentException when sending zero-valued decimal or SqlDecimal parameters whose precision equals their scale. Nonzero precision validation and support for large decimal values are unchanged.
    (#​4715, #​4721, #​4732)

  • Fixed connection pool V2 handing out pooled connections with expired or nearly expired access tokens. This affects only applications that opt in to connection pool V2.
    (#​4734, #​4739)

  • Fixed connection opens failing when ClearPool or ClearAllPools races with an in-flight open. Requests already admitted to the cleared pool can finish, and connections returned to the retired pool are discarded rather than reused.
    (#​4714, #​4718, #​4740)

Companion packages
  • Released version-aligned Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider, Microsoft.Data.SqlClient.Extensions.Azure, Microsoft.Data.SqlClient.Extensions.Abstractions, and Microsoft.Data.SqlClient.Internal.Logging 7.1.1 with no functional or API changes. See the release notes.

v7.1.0

General availability of Microsoft.Data.SqlClient 7.1. The sections below list the changes since 7.1.0-preview3. See the 7.1.0 release notes for the cumulative list of changes since the 7.0.3 stable release.

Added
  • Added a RegisteredApplication enum and a matching SqlConnection.RegisteredApplication property that let a library or tool identify itself to SQL Server through version 2 of the TDS USERAGENT feature extension. The payload also carries a new driver-owned 64-bit Driver Properties flag field; bit 0 reports whether connection pool V2 is enabled for the process. Application identity is client-supplied telemetry and must never be used for authorization or any other security decision. The value must be set before Open/OpenAsync and is not part of the connection pool key.
    (#​3201, #​4632)
Changed
  • SqlConnectionStringBuilder.TransparentNetworkIPResolution is now marked [Obsolete], directing callers to MultiSubnetFailover. There is no runtime behavior change: connection string defaults are untouched and no new AppContext switches were introduced. The only visible effect is a CS0618 build warning for code that references the property.
    (#​4494, #​4576)

  • Unified the exception message raised when conflicting token-based and SSPI authentication properties are set on the same SqlConnection, and documented the complete set of properties that conflict with AccessToken.
    (#​4629)

  • Documentation corrections for SqlDataRecord, SqlMetaData, and the LCID 1033 locale name.
    (#​1805,
    #​4440,
    #​4646)

  • Updated Microsoft.Data.SqlClient.SNI and Microsoft.Data.SqlClient.SNI.runtime to v7.1.0 (was v7.1.0-preview3.26226.3).
    (#​4698)

Fixed
  • Fixed a pooled connection being returned to the pool in a broken state after a TransactionScope rollback — for example, when distributed transaction promotion fails on .NET 8+ where implicit distributed transactions are disabled by default. Connection reset now preserves the transaction when the pooled connection is either a delegated transaction root or enlisted in a transaction.
    (#​4001, #​4557)

  • Fixed GetSchema("DataTypes") never reporting the SQL Server 2025 json type against Azure SQL. The decision now uses the json support flag negotiated through the TDS FEATUREEXTACK token instead of a server version string comparison.
    (#​4592, #​4682)

  • Fixed a malformed UNC pipe path being composed for IPv6 literal server names over Named Pipes in managed SNI, which could trigger an access violation inside LSASS on Windows and force a reboot. IPv6 literals are now transcribed to their .ipv6-literal.net form. (net8.0/net9.0 only)
    (#​4523, #​4558)

  • Fixed configurable retry logic installing a permanent, process-wide assembly-resolution handler that could interfere with unrelated assembly loading. The handler is now installed only while an explicitly configured custom retry provider is resolved and constructed, and probes AppContext.BaseDirectory instead of the current working directory. (net8.0/net9.0 only)
    (#​2214, #​4547)

  • Fixed open/close throughput regressions in the opt-in connection pool V2 (Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2). The default pool is unaffected.
    (#​4543)

Companion packages
  • Released Microsoft.Data.SqlClient.Extensions.Azure 7.1.0 with an internal Entra ID authority parsing clarification and no behavior change. See release notes.
  • Released version-aligned Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider, Microsoft.Data.SqlClient.Extensions.Abstractions, and Microsoft.Data.SqlClient.Internal.Logging 7.1.0 with no functional or API changes since preview3. See the Azure Key Vault provider, Abstractions, and Logging release notes.

v7.0.3

General availability of Microsoft.Data.SqlClient 7.1. The sections below list the changes since 7.1.0-preview3. See the 7.1.0 release notes for the cumulative list of changes since the 7.0.3 stable release.

Added
  • Added a RegisteredApplication enum and a matching SqlConnection.RegisteredApplication property that let a library or tool identify itself to SQL Server through version 2 of the TDS USERAGENT feature extension. The payload also carries a new driver-owned 64-bit Driver Properties flag field; bit 0 reports whether connection pool V2 is enabled for the process. Application identity is client-supplied telemetry and must never be used for authorization or any other security decision. The value must be set before Open/OpenAsync and is not part of the connection pool key.
    (#​3201, #​4632)
Changed
  • SqlConnectionStringBuilder.TransparentNetworkIPResolution is now marked [Obsolete], directing callers to MultiSubnetFailover. There is no runtime behavior change: connection string defaults are untouched and no new AppContext switches were introduced. The only visible effect is a CS0618 build warning for code that references the property.
    (#​4494, #​4576)

  • Unified the exception message raised when conflicting token-based and SSPI authentication properties are set on the same SqlConnection, and documented the complete set of properties that conflict with AccessToken.
    (#​4629)

  • Documentation corrections for SqlDataRecord, SqlMetaData, and the LCID 1033 locale name.
    (#​1805,
    #​4440,
    #​4646)

  • Updated Microsoft.Data.SqlClient.SNI and Microsoft.Data.SqlClient.SNI.runtime to v7.1.0 (was v7.1.0-preview3.26226.3).
    (#​4698)

Fixed
  • Fixed a pooled connection being returned to the pool in a broken state after a TransactionScope rollback — for example, when distributed transaction promotion fails on .NET 8+ where implicit distributed transactions are disabled by default. Connection reset now preserves the transaction when the pooled connection is either a delegated transaction root or enlisted in a transaction.
    (#​4001, #​4557)

  • Fixed GetSchema("DataTypes") never reporting the SQL Server 2025 json type against Azure SQL. The decision now uses the json support flag negotiated through the TDS FEATUREEXTACK token instead of a server version string comparison.
    (#​4592, #​4682)

  • Fixed a malformed UNC pipe path being composed for IPv6 literal server names over Named Pipes in managed SNI, which could trigger an access violation inside LSASS on Windows and force a reboot. IPv6 literals are now transcribed to their .ipv6-literal.net form. (net8.0/net9.0 only)
    (#​4523, #​4558)

  • Fixed configurable retry logic installing a permanent, process-wide assembly-resolution handler that could interfere with unrelated assembly loading. The handler is now installed only while an explicitly configured custom retry provider is resolved and constructed, and probes AppContext.BaseDirectory instead of the current working directory. (net8.0/net9.0 only)
    (#​2214, #​4547)

  • Fixed open/close throughput regressions in the opt-in connection pool V2 (Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2). The default pool is unaffected.
    (#​4543)

Companion packages
  • Released Microsoft.Data.SqlClient.Extensions.Azure 7.1.0 with an internal Entra ID authority parsing clarification and no behavior change. See release notes.
  • Released version-aligned Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider, Microsoft.Data.SqlClient.Extensions.Abstractions, and Microsoft.Data.SqlClient.Internal.Logging 7.1.0 with no functional or API changes since preview3. See the Azure Key Vault provider, Abstractions, and Logging release notes.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every 2nd week starting on the 2 week of the year before 4am on Monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team October 26, 2026 03:30
@bitwarden-bot bitwarden-bot changed the title [deps] DbOps: Update Microsoft.Data.SqlClient to v7.1.1 [PM-45701] [deps] DbOps: Update Microsoft.Data.SqlClient to v7.1.1 Oct 26, 2026
@bitwarden-bot

Copy link
Copy Markdown
Collaborator

Internal tracking:

@codecov

codecov Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.83%. Comparing base (9e5b3ec) to head (1cb6372).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8718   +/-   ##
=======================================
  Coverage   74.83%   74.83%           
=======================================
  Files        2750     2750           
  Lines      117618   117618           
  Branches    10781    10781           
=======================================
  Hits        88025    88025           
  Misses      26936    26936           
  Partials     2657     2657           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@renovate renovate Bot changed the title [PM-45701] [deps] DbOps: Update Microsoft.Data.SqlClient to v7.1.1 [deps] DbOps: Update Microsoft.Data.SqlClient to v7.1.1 Oct 26, 2026
@renovate
renovate Bot force-pushed the renovate/microsoft.data.sqlclient-7.x branch 3 times, most recently from e375818 to 0e3061f Compare October 26, 2026 17:37
@mkincaid-bw

Copy link
Copy Markdown
Contributor

I tested this locally, here are the results:

  • Build: 0 errors, 541 warnings, identical to main.
  • Core.Test: 7192 passed, 0 failed, 21 skipped.
  • Smoke test (register, login, folder/cipher CRUD, sync): 16/16 on Postgres, MySQL, SQLite and SQL Server.
  • End-to-end (real browser plus bw CLI, with attachments, Sends and permanent delete): 15/15 on all four databases, 28 cross-client checks matched each time.
  • Infrastructure.IntegrationTest: Postgres, MySQL and SQLite pass except one test (see below). SQL Server also shows occasional deadlock-victim failures.

Two things in the integration tests that are not caused by this PR:

  1. SendRepositoryTests.GetByDeletionDateAsync_Works fails when run with the whole suite, on every provider including SQLite, which does not use SqlClient. It passes on its own. Another test in the same class leaves a year-old Send in the shared database, so the result depends on test order. The test even has a comment saying it runs best on a fresh database. The same PR code passes it when checked out in a different folder, so the order depends on the checkout path.
  2. SQL Server deadlock failures (about 1 to 6 per run in some runs) show up on main with SqlClient 7.0.2 as well: 8 deadlock messages in 6 runs on main vs 11 in 6 runs on the PR. This looks like parallel tests contending on one database, not the driver.

rkac-bw
rkac-bw previously approved these changes Oct 27, 2026

@rkac-bw rkac-bw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mkincaid-bw mkincaid-bw added the t:deps Change Type - Dependencies label Oct 28, 2026
@renovate
renovate Bot force-pushed the renovate/microsoft.data.sqlclient-7.x branch from 3bd6e76 to 1fd9d0d Compare November 5, 2026 15:44

@rkac-bw rkac-bw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mkincaid-bw
mkincaid-bw merged commit df91576 into main Nov 6, 2026
47 checks passed
@mkincaid-bw
mkincaid-bw deleted the renovate/microsoft.data.sqlclient-7.x branch November 6, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t:deps Change Type - Dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants