Skip to content

[manual] Merge release/9.0-staging into release/9.0#128183

Open
svick wants to merge 18 commits into
dotnet:release/9.0from
svick:9.0-staging-merge
Open

[manual] Merge release/9.0-staging into release/9.0#128183
svick wants to merge 18 commits into
dotnet:release/9.0from
svick:9.0-staging-merge

Conversation

@svick
Copy link
Copy Markdown
Member

@svick svick commented May 14, 2026

No description provided.

github-actions Bot and others added 18 commits March 12, 2026 17:30
dotnet#123661)

Backport of dotnet#123485 to release/9.0-staging

/cc @liveans

Increasing RFC compliance for WebSocket

## Customer Impact

RFC compliance

## Regression

No

## Testing

Manual verification + automated tests

## Risk

Low, the change only affects non‑compliant WebSocket clients sending
unmasked frames, which is explicitly disallowed by RFC 6455. No behavior
change is expected for compliant clients.

---------

Co-authored-by: Ahmet İbrahim Aksoy <aaksoy@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…t#125603)

This pull request updates the following dependencies

[marker]: <> (Begin:077f423f-1332-4108-a2ea-08dcc66548e6)
## From https://github.com/dotnet/xharness
- **Subscription**:
[077f423f-1332-4108-a2ea-08dcc66548e6](https://maestro.dot.net/subscriptions?search=077f423f-1332-4108-a2ea-08dcc66548e6)
- **Build**:
[20260318.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2929517)
([306735](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/306735))
- **Date Produced**: March 18, 2026 9:51:17 AM UTC
- **Commit**:
[607b3de9cf2dbfec6734e686e68d2813b40b2b51](dotnet/xharness@607b3de)
- **Branch**: [main](https://github.com/dotnet/xharness/tree/main)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [11.0.0-prerelease.26117.1 to 11.0.0-prerelease.26168.1][3]
     - Microsoft.DotNet.XHarness.CLI
     - Microsoft.DotNet.XHarness.TestRunners.Common
     - Microsoft.DotNet.XHarness.TestRunners.Xunit

[3]: dotnet/xharness@0eeaa60...607b3de

[DependencyUpdate]: <> (End)


[marker]: <> (End:077f423f-1332-4108-a2ea-08dcc66548e6)

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…25715)

Backport of dotnet#125544 to release/9.0-staging

/cc @akoeplinger @wfurt

---------

Co-authored-by: wfurt <tweinfurt@yahoo.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com>
…et#125151)

I detected changes in the release/9.0 branch which have not been merged
yet to release/9.0-staging. I'm a robot and am configured to help you
automatically keep release/9.0-staging up to date, so I've opened this
PR.

This PR merges commits made on release/9.0 by the following committers:

* vseanreesermsft
* Copilot
* hoyosjs
* rbhanda
* jozkee
* dotnet-maestro[bot]
* wfurt
* bartonjs

## Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete
this PR by creating a merge commit, *not* a squash or rebase commit.

<img alt="merge button instructions"
src="https://i.imgur.com/GepcNJV.png" width="300" />

If this repo does not allow creating merge commits from the GitHub UI,
use command line instructions.

## Instructions for merging via command line

Run these commands to merge this pull request from the command line.

``` sh
git fetch
git checkout release/9.0
git pull --ff-only
git checkout release/9.0-staging
git pull --ff-only
git merge --no-ff release/9.0

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
<summary>or if you are using SSH</summary>

```
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>


After PR checks are complete push the branch
```
git push
```

## Instructions for resolving conflicts

:warning: If there are merge conflicts, you will need to resolve them
manually before merging. You can do this [using GitHub][resolve-github]
or using the [command line][resolve-cli].

[resolve-github]:
https://help.github.com/articles/resolving-a-merge-conflict-on-github/
[resolve-cli]:
https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

## Instructions for updating this pull request

Contributors to this repo have permission update this pull request by
pushing to the branch 'merge/release/9.0-to-release/9.0-staging'. This
can be done to resolve conflicts or make other changes to this pull
request before it is merged.
The provided examples assume that the remote is named 'origin'. If you
have a different remote name, please replace 'origin' with the name of
your remote.

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull https://github.com/dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
    <summary>or if you are using SSH</summary>

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull git@github.com:dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or
issues.
Also, if this PR was generated incorrectly, help us fix it. See
https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
… loops (dotnet#126913)

Backport of dotnet#126770 to release/9.0-staging

/cc @AndyAyersMS

## Customer Impact

- [x] Customer reported
- [ ] Found internally

JIT optimizations can cause certain down-counting loops to bypass a
bounds check. Code that normally would throw index out of bounds
exceptions on an array store might instead corrupt the heap.

In particular the loop must have unknown upper bound and have a shape
like:

```c#
for (int i = N; i > 0; i--)
{
    a[i] = ...;
}
```
and then be invoked in a context where `N` is exactly `a.Length`. The
loop exiting predicate must be `>` and not `>=`.

In such cases the code will write to `a[N]` which is beyond the extent
of `a`.

Customer impact is likely low. Correct behavior here is to throw an
exception.

## Regression

- [x] Yes
- [ ] No

Introduced in .NET 7 with dotnet#67930.

## Testing

Verified fix on repro case. SPMI had 132 method contexts with diffs from
the fix change. Inspected a few and most either had redundant guards
beforehand or else were only reading from the arrays.

## Risk

Low, changes the code that decides at runtime if execution can use a
"cloned" loop that omits bounds checks; now we are correctly cautious
about running the fully checked loop.

Co-authored-by: Andy Ayers <andya@microsoft.com>
Analog of dotnet#126945 to
release/9.0-staging.

## Customer Impact

- [ ] Customer reported
- [X] Found internally

## Regression

- [ ] Yes
- [X] No

## Testing

Standard CI.

## Risk

Low, there's no product code change, only minor version upgrade of
MsQuic library.
dotnet#123609)

This pull request updates the following dependencies

[marker]: <> (Begin:85dd9958-87d4-4ed4-addf-58b6aa848692)
## From https://github.com/dotnet/roslyn-analyzers
- **Subscription**:
[85dd9958-87d4-4ed4-addf-58b6aa848692](https://maestro.dot.net/subscriptions?search=85dd9958-87d4-4ed4-addf-58b6aa848692)
- **Build**:
[20260125.3](https://dev.azure.com/dnceng/internal/_build/results?buildId=2887164)
([298761](https://maestro.dot.net/channel/3884/github:dotnet:roslyn-analyzers/build/298761))
- **Date Produced**: January 25, 2026 8:33:47 AM UTC
- **Commit**:
[5ef1abb57ce3df89eae65ecadeb1ddbab323ae05](dotnet/roslyn-analyzers@5ef1abb)
- **Branch**:
[release/9.0.1xx](https://github.com/dotnet/roslyn-analyzers/tree/release/9.0.1xx)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [3.11.0-beta1.26057.1 to 3.11.0-beta1.26075.3][1]
     - Microsoft.CodeAnalysis.Analyzers
  - From [9.0.0-preview.26057.1 to 9.0.0-preview.26075.3][1]
     - Microsoft.CodeAnalysis.NetAnalyzers

[1]:
dotnet/roslyn-analyzers@5ef1abb...5ef1abb

[DependencyUpdate]: <> (End)


[marker]: <> (End:85dd9958-87d4-4ed4-addf-58b6aa848692)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Steve Pfister <steveisok@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
)

This pull request updates the following dependencies

[marker]: <> (Begin:5e3f9b88-faad-436c-a580-ac009d20bb33)
## From https://github.com/dotnet/icu
- **Subscription**:
[5e3f9b88-faad-436c-a580-ac009d20bb33](https://maestro.dot.net/subscriptions?search=5e3f9b88-faad-436c-a580-ac009d20bb33)
- **Build**:
[20260410.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2947989)
([309841](https://maestro.dot.net/channel/3883/github:dotnet:icu/build/309841))
- **Date Produced**: April 10, 2026 11:35:45 AM UTC
- **Commit**:
[852e53da554204ceeeec22f3d9653fd0745b2d71](dotnet/icu@852e53d)
- **Branch**:
[dotnet/release/9.0](https://github.com/dotnet/icu/tree/dotnet/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.0-rtm.25627.1 to 9.0.0-rtm.26210.1][25]
     - Microsoft.NETCore.Runtime.ICU.Transport

[25]: dotnet/icu@cda39b5...852e53d

[DependencyUpdate]: <> (End)


[marker]: <> (End:5e3f9b88-faad-436c-a580-ac009d20bb33)

---------

Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Petr Onderka <petronderka@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
`source-build-reference-packages` repo was renamed to
`source-build-assets`. To enable VMR/source-build scenarios this
reference needs to be updated. This also updates the version as the new
repo produced a new package.
Manual backport/cherry-pick of dotnet#123562 to release/9.0-staging

## Customer Impact

- [X] Customer reported
- [ ] Found internally

Customers have been reporting "memory leaks" on Linux related to CRL
processing for quite a while. These "leaks" aren't actual leaks, but an
interaction with how OpenSSL processes CRLs (using many small calls to
malloc), and glibc memory arenas and small-allocation caching -- glibc
holds onto the small allocs from free so it can hand them out again
later.

Because we handle CRLs by loading them, checking them, and discarding
them, a process that does a lot of revocation checks will end up
checking the CRL on every thread, and thus can end up with large
"reserved" memory for their process. As the size of the CRL goes up, the
number of threads goes up, and memory limits come down (e.g. Kubernetes)
the reserved memory becomes more of a potential problem.

This change (originally introduced for 11 preview 3) changes the CRL
processing to use an in-memory bounded MRU cache with GC cooperation.
So, a process that repeatedly hits the same endpoints over and over (or
even multiple endpoints from the same CA+CRL) ideally only ever has to
load the CRL once (unless it expires). Since it isn't freed while still
in use, it doesn't contribute to small-allocation accumulation.

## Regression

- [ ] Yes
- [X] No

## Testing

As with the PR into main, most of the tests are existing tests. A new
test is included to show cross-process disk cache recovery.

## Risk

Medium-Low. The MRU cache isn't just a drop-in layering piece, so the
volume of code carries inherent risk. The risk is largely mitigated by a
large amount of coverage from unit tests, and manual stress tests
against the feature when it was written in main (cycling through a few
hundred HTTPS hosts randomly across several threads while doing a large
amount of background memory allocation/deallocation).

Users experiencing the high RES memory problem on Linux have reported
that .NET 11 Preview 3 ameliorated the problem. Otherwise, no feedback
has been received regarding the change (implying that it has not
_caused_ a problem for anyone).

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…125097)

This pull request updates the following dependencies

[marker]: <> (Begin:943c2154-7e47-4fed-bb40-3e772747daf7)
## From https://github.com/dotnet/arcade
- **Subscription**:
[943c2154-7e47-4fed-bb40-3e772747daf7](https://maestro.dot.net/subscriptions?search=943c2154-7e47-4fed-bb40-3e772747daf7)
- **Build**:
[20260511.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2971953)
([313780](https://maestro.dot.net/channel/5175/github:dotnet:arcade/build/313780))
- **Date Produced**: May 11, 2026 12:20:02 PM UTC
- **Commit**:
[6c1a2a69259c3f66af6176c9c70021b3d9989504](dotnet/arcade@6c1a2a6)
- **Branch**:
[release/9.0](https://github.com/dotnet/arcade/tree/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.0-beta.26123.3 to 9.0.0-beta.26261.1][8]
     - Microsoft.SourceBuild.Intermediate.arcade
     - Microsoft.DotNet.Arcade.Sdk
     - Microsoft.DotNet.Build.Tasks.Archives
     - Microsoft.DotNet.Build.Tasks.Feed
     - Microsoft.DotNet.Build.Tasks.Installers
     - Microsoft.DotNet.Build.Tasks.Packaging
     - Microsoft.DotNet.Build.Tasks.TargetFramework
     - Microsoft.DotNet.Build.Tasks.Templating
     - Microsoft.DotNet.Build.Tasks.Workloads
     - Microsoft.DotNet.CodeAnalysis
     - Microsoft.DotNet.GenAPI
     - Microsoft.DotNet.GenFacades
     - Microsoft.DotNet.Helix.Sdk
     - Microsoft.DotNet.PackageTesting
     - Microsoft.DotNet.RemoteExecutor
     - Microsoft.DotNet.SharedFramework.Sdk
     - Microsoft.DotNet.VersionTools.Tasks
     - Microsoft.DotNet.XliffTasks
     - Microsoft.DotNet.XUnitExtensions
  - From [2.9.0-beta.26123.3 to 2.9.0-beta.26261.1][8]
     - Microsoft.DotNet.XUnitAssert
     - Microsoft.DotNet.XUnitConsoleRunner

[8]: dotnet/arcade@29a2184...6c1a2a6

[DependencyUpdate]: <> (End)


[marker]: <> (End:943c2154-7e47-4fed-bb40-3e772747daf7)

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Petr Onderka <petronderka@microsoft.com>
)

This pull request updates the following dependencies

[marker]: <> (Begin:5e3f9b88-faad-436c-a580-ac009d20bb33)
## From https://github.com/dotnet/icu
- **Subscription**:
[5e3f9b88-faad-436c-a580-ac009d20bb33](https://maestro.dot.net/subscriptions?search=5e3f9b88-faad-436c-a580-ac009d20bb33)
- **Build**:
[20260511.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2971930)
([313775](https://maestro.dot.net/channel/3883/github:dotnet:icu/build/313775))
- **Date Produced**: May 11, 2026 11:50:43 AM UTC
- **Commit**:
[67d0db7e61ed6ba212622a174bed04ef47aa2118](dotnet/icu@67d0db7)
- **Branch**:
[dotnet/release/9.0](https://github.com/dotnet/icu/tree/dotnet/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.0-rtm.26210.1 to 9.0.0-rtm.26261.1][4]
     - Microsoft.NETCore.Runtime.ICU.Transport

[4]: dotnet/icu@852e53d...67d0db7

[DependencyUpdate]: <> (End)


[marker]: <> (End:5e3f9b88-faad-436c-a580-ac009d20bb33)

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…t#125945)

This pull request updates the following dependencies

[marker]: <> (Begin:077f423f-1332-4108-a2ea-08dcc66548e6)
## From https://github.com/dotnet/xharness
- **Subscription**:
[077f423f-1332-4108-a2ea-08dcc66548e6](https://maestro.dot.net/subscriptions?search=077f423f-1332-4108-a2ea-08dcc66548e6)
- **Build**:
[20260404.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2943687)
([309231](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/309231))
- **Date Produced**: April 4, 2026 10:33:51 AM UTC
- **Commit**:
[0668c80ec27851f3c7f1b3e4536110a1d39af587](dotnet/xharness@0668c80)
- **Branch**: [main](https://github.com/dotnet/xharness/tree/main)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [11.0.0-prerelease.26168.1 to 11.0.0-prerelease.26204.1][3]
     - Microsoft.DotNet.XHarness.CLI
     - Microsoft.DotNet.XHarness.TestRunners.Common
     - Microsoft.DotNet.XHarness.TestRunners.Xunit

[3]: dotnet/xharness@607b3de...0668c80

[DependencyUpdate]: <> (End)


[marker]: <> (End:077f423f-1332-4108-a2ea-08dcc66548e6)

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Vitek Karas <10670590+vitek-karas@users.noreply.github.com>
…et#126136)

I detected changes in the release/9.0 branch which have not been merged
yet to release/9.0-staging. I'm a robot and am configured to help you
automatically keep release/9.0-staging up to date, so I've opened this
PR.

This PR merges commits made on release/9.0 by the following committers:

* vseanreesermsft

## Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete
this PR by creating a merge commit, *not* a squash or rebase commit.

<img alt="merge button instructions"
src="https://i.imgur.com/GepcNJV.png" width="300" />

If this repo does not allow creating merge commits from the GitHub UI,
use command line instructions.

## Instructions for merging via command line

Run these commands to merge this pull request from the command line.

``` sh
git fetch
git checkout release/9.0
git pull --ff-only
git checkout release/9.0-staging
git pull --ff-only
git merge --no-ff release/9.0

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
<summary>or if you are using SSH</summary>

```
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>


After PR checks are complete push the branch
```
git push
```

## Instructions for resolving conflicts

:warning: If there are merge conflicts, you will need to resolve them
manually before merging. You can do this [using GitHub][resolve-github]
or using the [command line][resolve-cli].

[resolve-github]:
https://help.github.com/articles/resolving-a-merge-conflict-on-github/
[resolve-cli]:
https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

## Instructions for updating this pull request

Contributors to this repo have permission update this pull request by
pushing to the branch 'merge/release/9.0-to-release/9.0-staging'. This
can be done to resolve conflicts or make other changes to this pull
request before it is merged.
The provided examples assume that the remote is named 'origin'. If you
have a different remote name, please replace 'origin' with the name of
your remote.

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull https://github.com/dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
    <summary>or if you are using SSH</summary>

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull git@github.com:dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or
issues.
Also, if this PR was generated incorrectly, help us fix it. See
https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
…et#128153)

I detected changes in the release/9.0 branch which have not been merged
yet to release/9.0-staging. I'm a robot and am configured to help you
automatically keep release/9.0-staging up to date, so I've opened this
PR.

This PR merges commits made on release/9.0 by the following committers:

* svick
* dotnet-maestro[bot]
* vseanreesermsft
* rzikm
* alinpahontu2912
* iremyux

## Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete
this PR by creating a merge commit, *not* a squash or rebase commit.

<img alt="merge button instructions"
src="https://i.imgur.com/GepcNJV.png" width="300" />

If this repo does not allow creating merge commits from the GitHub UI,
use command line instructions.

## Instructions for merging via command line

Run these commands to merge this pull request from the command line.

``` sh
git fetch
git checkout release/9.0
git pull --ff-only
git checkout release/9.0-staging
git pull --ff-only
git merge --no-ff release/9.0

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
<summary>or if you are using SSH</summary>

```
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>


After PR checks are complete push the branch
```
git push
```

## Instructions for resolving conflicts

:warning: If there are merge conflicts, you will need to resolve them
manually before merging. You can do this [using GitHub][resolve-github]
or using the [command line][resolve-cli].

[resolve-github]:
https://help.github.com/articles/resolving-a-merge-conflict-on-github/
[resolve-cli]:
https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

## Instructions for updating this pull request

Contributors to this repo have permission update this pull request by
pushing to the branch 'merge/release/9.0-to-release/9.0-staging'. This
can be done to resolve conflicts or make other changes to this pull
request before it is merged.
The provided examples assume that the remote is named 'origin'. If you
have a different remote name, please replace 'origin' with the name of
your remote.

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull https://github.com/dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

<details>
    <summary>or if you are using SSH</summary>

```
git fetch
git checkout -b merge/release/9.0-to-release/9.0-staging origin/release/9.0-staging
git pull git@github.com:dotnet/runtime merge/release/9.0-to-release/9.0-staging
(make changes)
git commit -m "Updated PR with my changes"
git push git@github.com:dotnet/runtime HEAD:merge/release/9.0-to-release/9.0-staging
```

</details>

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or
issues.
Also, if this PR was generated incorrectly, help us fix it. See
https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
…otnet#128132)

Backport of dotnet#108178 to
release/9.0-staging

Fixes dotnet#128130

Co-authored-by: Pavel Savara <pavel.savara@gmail.com>
Copilot AI review requested due to automatic review settings May 14, 2026 09:03
@github-actions github-actions Bot added the area-codeflow for labeling automated codeflow label May 14, 2026
@svick svick requested review from a team May 14, 2026 09:03
@svick svick added the NO-SQUASH The PR should not be squashed label May 14, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR merges release/staging updates into release/9.0, covering dependency flow updates, removal of wasm debugger test pipeline integration, a JIT loop cloning fix with regression coverage, and CRL cache changes for Unix X509 chain handling.

Changes:

  • Updates SDK/toolset/runtime-assets/xharness/ICU dependency versions.
  • Removes wasm debugger test Helix/pipeline plumbing.
  • Adds CRL in-memory cache behavior and recovery test coverage, plus a JIT loop cloning regression test.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.config/dotnet-tools.json Updates xharness CLI tool version.
eng/Version.Details.xml Updates dependency versions and source-build dependency metadata.
eng/Versions.props Updates package/toolset/runtime-assets version properties.
eng/pipelines/common/evaluate-default-paths.yml Removes wasm debugger test path subset.
eng/pipelines/common/templates/wasm-debugger-tests.yml Deletes wasm debugger test pipeline template.
eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml Removes wasm debugger test jobs.
eng/pipelines/runtime.yml Removes default wasm debugger test jobs.
eng/testing/tests.browser.targets Removes WasmDebuggerTests as a supported browser test scenario.
global.json Updates SDK and Arcade SDK versions.
src/coreclr/jit/loopcloning.cpp Adjusts loop cloning condition derivation for decreasing loops.
src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslCrlCache.cs Adds an in-memory MRU CRL cache and refactors disk/download CRL cache handling.
src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslX509ChainEventSource.cs Updates CRL cache event messages and adds in-memory cache events.
src/libraries/System.Security.Cryptography/tests/X509Certificates/X509FilesystemTests.Unix.cs Adds a CRL disk-cache recovery test and event listener helper.
src/libraries/sendtohelix-browser.targets Removes wasm debugger test scenario support.
src/libraries/sendtohelix.proj Removes wasm debugger test scenario project expansion.
src/libraries/tests.proj Stops building wasm debugger test projects and updates sample exclusion logic.
src/mono/browser/Makefile Removes browser wasm debugger Helix targets.
src/mono/browser/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj Removes custom Helix targets file reference.
src/mono/browser/debugger/Wasm.Debugger.Tests/wasm.helix.targets Deletes wasm debugger Helix work item target definitions.
src/mono/wasi/Makefile Removes WASI debugger Helix submission target.
src/tests/JIT/opt/Cloning/DownCounted.cs Adds array/span regression tests for down-counted loop cloning bounds checks.
src/tests/JIT/opt/Cloning/DownCounted.csproj Adds project file for the new JIT regression test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +109 to +128
await File.WriteAllTextAsync(crlFile, crlPem.AsMemory(0, crlPem.Length / 2)).ConfigureAwait(false);

RemoteExecutor.Invoke(
static base64Cert =>
{
using (X509Certificate2 cert = X509CertificateLoader.LoadCertificate(Convert.FromBase64String(base64Cert)))
using (ChainHolder chainHolder = new ChainHolder())
{
bool valid = chainHolder.Chain.Build(cert);

return valid ? RemoteExecutor.SuccessExitCode : 0;
}
},
Convert.ToBase64String(getDotNetCert.RawDataMemory.Span))
.Dispose();

string pem2 = await File.ReadAllTextAsync(crlFile).ConfigureAwait(false);

// Rather than assert the CRL didn't change, just check that it's a valid CRL:
CertificateRevocationListBuilder.LoadPem(pem2, out _);
EventId_CrlCacheExpired,
Level = EventLevel.Verbose,
Message = "The cached CRL's nextUpdate value ({1:O}) is not after the verification time ({0:O}).")]
Message = "The CRL cached on disk has a nextUpdate value ({1:O}) that is before the verification time ({0:O}).")]
@hoyosjs hoyosjs enabled auto-merge May 14, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-codeflow for labeling automated codeflow NO-SQUASH The PR should not be squashed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants