Skip to content

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jul 29, 2025

Backport of #62531 to release/9.0

/cc @MackinnonBuck @jashook

Dispose the certificate chain elements with the chain

Fixes an issue in certificate authentication where certificates within a certificate chain were not getting directly disposed.

Description

Failing to dispose each certificate within an X509 chain can create significant GC pressure for applications that frequently perform TLS handshakes. While the previous disposal logic only disposed the X509Chain itself, this PR updates the logic to first enumerate and dispose each certificate in the chain directly.

Customer Impact

The original contribution was from a customer who determined that this issue has a severe negative performance impact on their large scale web application. See #62531 (comment).

Regression?

  • Yes
  • No

Risk

  • High
  • Medium
  • Low

The change is straightforward and follows an established disposal pattern.

Verification

  • Manual (required)
  • Automated

Packaging changes reviewed?

  • Yes
  • No
  • N/A

@dotnet-policy-service dotnet-policy-service bot added this to the 9.0.x milestone Jul 29, 2025
@MackinnonBuck MackinnonBuck added the Servicing-consider Shiproom approval is required for the issue label Jul 29, 2025
@artl93 artl93 added Servicing-approved Shiproom has approved the issue and removed Servicing-consider Shiproom approval is required for the issue labels Jul 30, 2025
@wtgodbe wtgodbe merged commit 02b126e into release/9.0 Aug 4, 2025
25 checks passed
@wtgodbe wtgodbe deleted the backport/pr-62531-to-release/9.0 branch August 4, 2025 20:36
@dotnet-policy-service dotnet-policy-service bot modified the milestones: 9.0.x, 9.0.9 Aug 4, 2025
This was referenced Sep 9, 2025
github-actions bot pushed a commit to saan800/saansoft-correlationid that referenced this pull request Sep 13, 2025
Updated
[Microsoft.AspNetCore.TestHost](https://github.com/dotnet/aspnetcore)
from 9.0.8 to 9.0.9.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.AspNetCore.TestHost's
releases](https://github.com/dotnet/aspnetcore/releases)._

## 9.0.9

[Release](https://github.com/dotnet/core/releases/tag/v9.0.9)

## What's Changed
* Update branding to 9.0.9 by @​vseanreesermsft in
dotnet/aspnetcore#63107
* [release/9.0] (deps): Bump src/submodules/googletest from `c67de11` to
`373af2e` by @​dependabot[bot] in
dotnet/aspnetcore#63035
* [release/9.0] Dispose the certificate chain elements with the chain by
@​github-actions[bot] in dotnet/aspnetcore#62992
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#62702
* [release/9.0] Update Microsoft.Build versions by @​wtgodbe in
dotnet/aspnetcore#62505
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#62832
* [release/9.0] Update SignalR Redis tests to use internal Docker Hub
mirror by @​github-actions[bot] in
dotnet/aspnetcore#63116
* [release/9.0] [SignalR] Don't throw for message headers in Java client
by @​github-actions[bot] in
dotnet/aspnetcore#62783
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#63151
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63190
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63214


**Full Changelog**:
dotnet/aspnetcore@v9.0.8...v9.0.9

Commits viewable in [compare
view](https://github.com/dotnet/aspnetcore/commits/v9.0.9).
</details>

Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/runtime)
from 9.0.8 to 9.0.9.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/runtime/releases)._

## 9.0.9

[Release](https://github.com/dotnet/runtime/releases/tag/v9.0.9)

## What's Changed
* [automated] Merge branch 'release/9.0' => 'release/9.0-staging' by
@​github-actions[bot] in dotnet/runtime#117671
* [release/9.0-staging] [Test Only] Fix BuildChainCustomTrustStore test
by @​github-actions[bot] in
dotnet/runtime#117761
* [release/9.0-staging] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/runtime#117742
* [release/9.0-staging] Update dependencies from dotnet/xharness by
@​dotnet-maestro[bot] in dotnet/runtime#117872
* [release/9.0-staging] Update dependencies from dotnet/sdk by
@​dotnet-maestro[bot] in dotnet/runtime#117873
* Revert "[release/9.0-staging] Update dependencies from dotnet/sdk" by
@​lewing in dotnet/runtime#118001
* [release/9.0-staging] Update dependencies from dotnet/cecil by
@​dotnet-maestro[bot] in dotnet/runtime#117910
* [release/9.0-staging] Update dependencies from dotnet/icu by
@​dotnet-maestro[bot] in dotnet/runtime#117962
* [release/9.0-staging] Update dependencies from dotnet/roslyn by
@​dotnet-maestro[bot] in dotnet/runtime#118080
* [release/9.0-staging] Update dependencies from dotnet/xharness by
@​dotnet-maestro[bot] in dotnet/runtime#118114
* [release/9.0-staging] Fix broken debugger/debuggee startup handshake
protocol on macOS26. by @​github-actions[bot] in
dotnet/runtime#118212
* [release/9.0-staging] [NRBF] Allow the users to decode
System.Nullable<UserStruct> by @​github-actions[bot] in
dotnet/runtime#118328
* [release/9.0-staging] [Test Only] Disable/modify some
TimeZoneInfoTests on Android by @​github-actions[bot] in
dotnet/runtime#118455
* Update branding to 9.0.9 by @​vseanreesermsft in
dotnet/runtime#118349
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/runtime#118451
* [release/9.0-staging] Revert "Remove custom allocator." by
@​github-actions[bot] in dotnet/runtime#118279
* [release/9.0] Merge release/9.0-staging changes by @​krwq in
dotnet/runtime#118764
* [release/9.0] Update dependencies from dotnet/emsdk by
@​dotnet-maestro[bot] in dotnet/runtime#117879


**Full Changelog**:
dotnet/runtime@v9.0.8...v9.0.9

Commits viewable in [compare
view](dotnet/runtime@v9.0.8...v9.0.9).
</details>

Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 17.11.1 to 17.14.1.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._

## 17.14.1

## What's Changed
* Error on unsupported target frameworks to prevent silently not running
tests by @​nohwnd in microsoft/vstest#15072 and
microsoft/vstest#15078
* Revert writing additional properties to TRX by @​nohwnd in
microsoft/vstest@47eb51b

**Full Changelog**:
microsoft/vstest@v17.14.0...v17.14.1

## 17.14.0

## What's Changed

### .NET versions updated

This version of VS Test upgraded .NET to net8 and net9. All projects
targeting net6.0 (or other end-of-life .NET target frameworks) should
pin their version of Microsoft.NET.Test.SDK to 17.13.0, or update the
projects to net8 or newer. We remain backwards compatible with previous
versions of Microsoft.NET.Test.SDK. This change does **NOT** prevent you
from:

- Updating to the latest VS, and running tests from net6.0 test
projects.
- Updating to the latest .NET SDK, and running tests from net6.0 test
projects.

It also has no impact on .NET Framework projects, where we continue
targeting .NET Framework 4.6.2.

* Drop unsupported frameworks by @​nohwnd in
microsoft/vstest#10565

### Changes

* Adding Process Query Flag For UWP .NET 9 Support by @​adstep in
microsoft/vstest#15003
* Fix builds on WinUI and UWP .NET 9 projects by @​Sergio0694 in
microsoft/vstest#15004
* don't report communication error on discovery abort by @​nohwnd in
microsoft/vstest#14992
* Add dump minitool to vsix by @​nohwnd in
microsoft/vstest#14707
* Make test runners long-path aware (#​5179) by @​peetw in
microsoft/vstest#15014
* Fix trace in DataCollectionRequestSender.cs by @​stan-sz in
microsoft/vstest#15025
* Fix/readme grammar parallelism by @​dellch in
microsoft/vstest#15030
* Add binding redirects by @​nohwnd in
microsoft/vstest#15041
* Write props of tests into trx by @​nohwnd in
microsoft/vstest#14905

### Internal version updates and fixes

* Update io.redist by @​nohwnd in
microsoft/vstest#13872
* Use preview image for public build by @​nohwnd in
microsoft/vstest#13888
* Remove xcopy-msbuild by @​nohwnd in
microsoft/vstest#14138
* Move to macos14 by @​nohwnd in
microsoft/vstest#14137
* Update diagnose.md by @​nohwnd in
microsoft/vstest#14776
* hash with sha2 for mutex lock by @​nohwnd in
microsoft/vstest#14777
* Update test projects for vmr by @​nohwnd in
microsoft/vstest#14894
* 17.14 branding by @​nohwnd in
microsoft/vstest#14903
* Update filter.md for NUnit by @​OsirisTerje in
microsoft/vstest#14987
* Flag netstandard1.x dependencies in source-build by @​ViktorHofer in
microsoft/vstest#14986
* Use VS dependencies versions from release VS to have archived symbols
by @​nohwnd in microsoft/vstest#14991
* Remove extra ; by @​nohwnd in
microsoft/vstest#14995
* Use dependencymodel 6.0.2 by @​nohwnd in
microsoft/vstest#14996
* Make Testhost packable only on Windows by @​mmitche in
microsoft/vstest#15001
* Add system text json to vsix by @​nohwnd in
microsoft/vstest#15034
* Add more files to vsix by @​nohwnd in
microsoft/vstest#15038
* Remove unnecessary CA2022 suppressions by @​Winniexu01 in
microsoft/vstest#15035
* Update package project url by @​mmitche in
microsoft/vstest#15040
 
## New Contributors

* @​OsirisTerje made their first contribution in
microsoft/vstest#14987
* @​adstep made their first contribution in
microsoft/vstest#15003
 ... (truncated)

## 17.14.0-preview-25107-01

## What's Changed

### .NET versions updated

This version of VS Test upgraded .NET to net8 and net9. All projects
targeting net6.0 (or other end-of-life .NET target frameworks) should
pin their version of Microsoft.NET.Test.SDK to 17.13.0, or update the
projects to net8 or newer. We remain backwards compatible with previous
versions of Microsoft.NET.Test.SDK. This change does **NOT** prevent you
from:

- Updating to the latest VS, and running tests from net6.0 test
projects.
- Updating to the latest .NET SDK, and running tests from net6.0 test
projects.

It also has no impact on .NET Framework projects, where we continue
targeting .NET Framework 4.6.2.

* Drop unsupported frameworks by @​nohwnd in
microsoft/vstest#10565


### Changes

* Adding Process Query Flag For UWP .NET 9 Support by @​adstep in
microsoft/vstest#15003
* Fix builds on WinUI and UWP .NET 9 projects by @​Sergio0694 in
microsoft/vstest#15004
* don't report communication error on discovery abort by @​nohwnd in
microsoft/vstest#14992
* Add dump minitool to vsix by @​nohwnd in
microsoft/vstest#14707

### Internal version updates and fixes

* Update io.redist by @​nohwnd in
microsoft/vstest#13872
* Use preview image for public build by @​nohwnd in
microsoft/vstest#13888
* Remove xcopy-msbuild by @​nohwnd in
microsoft/vstest#14138
* Move to macos14 by @​nohwnd in
microsoft/vstest#14137
* Update diagnose.md by @​nohwnd in
microsoft/vstest#14776
* hash with sha2 for mutex lock by @​nohwnd in
microsoft/vstest#14777
* Update test projects for vmr by @​nohwnd in
microsoft/vstest#14894
* 17.14 branding by @​nohwnd in
microsoft/vstest#14903
* Update filter.md for NUnit by @​OsirisTerje in
microsoft/vstest#14987
* Flag netstandard1.x dependencies in source-build by @​ViktorHofer in
microsoft/vstest#14986
* Use VS dependencies versions from release VS to have archived symbols
by @​nohwnd in microsoft/vstest#14991
* Remove extra ; by @​nohwnd in
microsoft/vstest#14995
* Use dependencymodel 6.0.2 by @​nohwnd in
microsoft/vstest#14996
* Make Testhost packable only on Windows by @​mmitche in
microsoft/vstest#15001


### Will probably revert before release:

* Write props of tests into trx by @​nohwnd in
microsoft/vstest#14905
 
## New Contributors

* @​OsirisTerje made their first contribution in
microsoft/vstest#14987
* @​adstep made their first contribution in
microsoft/vstest#15003
* @​Sergio0694 made their first contribution in
microsoft/vstest#15004

**Full Changelog**:
microsoft/vstest@v17.13.0...v17.14.0-preview-25107-01

## 17.13.0

## What's Changed

* Add letter number among valid identifiers in class name by @​nohwnd in
microsoft/vstest#13868
* Fix formatting in Runner by @​mthalman in
microsoft/vstest#13871
* Downgrade xunit skip warning to info by @​nohwnd in
microsoft/vstest#10381
* Add msdia for arm64 into nuget by @​nohwnd in
microsoft/vstest#10382
* Enable native debugging for vstest.console by @​ocitrev in
microsoft/vstest#10401

* Fix RFCs links by @​Youssef1313 in
microsoft/vstest#10424
* Convert to auto property by @​nohwnd in
microsoft/vstest#10365
* Update Versions.props by @​nohwnd in
microsoft/vstest#10378
* Enable TSA by @​jakubch1 in
microsoft/vstest#10385
* Arm64 dia by @​nohwnd in
microsoft/vstest#10390
* Update source-build team references by @​MichaelSimons in
microsoft/vstest#10388
* Exclude .signature.p7s from nupkg file count by @​ellahathaway in
microsoft/vstest#10418
* Set NetCurrent so that it doesn't roll forward automatically by
@​ViktorHofer in microsoft/vstest#10622

## New Contributors
* @​ocitrev made their first contribution in
microsoft/vstest#10401
* @​Youssef1313 made their first contribution in
microsoft/vstest#10424

**Full Changelog**:
microsoft/vstest@v17.12.0...v17.13.0

## 17.12.0

## What's Changed

* Dispose IDisposables in HtmlTransformer by @​omajid in
microsoft/vstest#5099
* Dipose XmlReaders in Microsoft.TestPlatform.Common.RunSettings by
@​omajid in microsoft/vstest#5100
* use some collection expressions by @​SimonCropp in
microsoft/vstest#5055
* Fix Reference typos by @​SimonCropp in
microsoft/vstest#5155
* Add option to overwrite trx without warning by @​nohwnd in
microsoft/vstest#5141

## Internal and infrastructure fixes:

* Downgrade xunit skip warning to info by @​nohwnd in
microsoft/vstest#10379
* Fallback to latest runtimeconfig when none is found by @​nohwnd in
microsoft/vstest#5136
* Verify architecture and version of produced exes by @​nohwnd in
microsoft/vstest#5134
* Fix runtime config tests by @​nohwnd in
microsoft/vstest#5137
* Dispose helper when parsing args by @​nohwnd in
microsoft/vstest#5126
* Cleanup and bump required runtimes by @​Evangelink in
microsoft/vstest#5139
* Fix help warnings by @​nohwnd in
microsoft/vstest#5140
* Fix timing in simple log by @​nohwnd in
microsoft/vstest#5143
* Check vstest.console.dll instead of .exe by @​nohwnd in
microsoft/vstest#5149
* Report version from nuget check by @​nohwnd in
microsoft/vstest#5161
* Move IncludeSourceRevisionInInformationalVersion by @​nohwnd in
microsoft/vstest#5166
* Enable or disable new logger based on TL flag by @​nohwnd in
microsoft/vstest#5167
* Updating Microsoft.CodeCoverage package structure by @​fhnaseer in
microsoft/vstest#5169
* Wait for Discovery to initialize before Cancelling it by @​nohwnd in
microsoft/vstest#5177
* Adding condition to disable MsCoverage refrenced path maps by
@​fhnaseer in microsoft/vstest#5189
* Forward error output from testhost as info by @​nohwnd in
microsoft/vstest#5192
* Update Microsoft.Extensions.DependencyModel to 3.1.0 by @​nohwnd in
microsoft/vstest#5188
* ExcludeFromSourceBuild->ExcludeFromSourceOnlyBuild by @​mmitche in
microsoft/vstest#10354
* Enable policheck by @​jakubch1 in
microsoft/vstest#10363



**Full Changelog**:
microsoft/vstest@v17.11.1...v17.12.0

Commits viewable in [compare
view](microsoft/vstest@v17.11.1...v17.14.1).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually 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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Sep 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Servicing-approved Shiproom has approved the issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants