Skip to content

Conversation

jozkee
Copy link
Member

@jozkee jozkee commented Jun 10, 2025

MERGE COMMIT

thaystg and others added 24 commits May 19, 2025 16:36
…re enabled (dotnet#114932)

* backport 111408

* Fix compilation failure

* Fix compilation

* trying to fix compilation

* Trying to fix compilation
…ons. (dotnet#115076)

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
…ntrinsics (dotnet#114218)

* Backport the functionality fixes from 114087

* Fix the tests for net9.0

* Fix syntax error in PackedSimdTests.cs

* Fix typo in PackedSimd add assertion

* Fix typo in PackedSimd assertion

* Remove NativeUnsignedIntegerLoadStoreTest from PackedSimdTests
… methods without .localsinit (dotnet#115568)

If we skip storing a field local because we know it is dead, then assertions
about the struct local are no longer valid, so invalidate them in that case.

Without this change we could end up using the assertion about the struct local
to remove a future store to the particular field, which would leave no zeroing
of that field, and would be observable.
…ationToken Callback (dotnet#115840)

* Ignore ObjectDisposedException on CancellationToken Callback

* Update src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* Change wording in comment

* Update src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs

---------

Co-authored-by: Ahmet Ibrahim Aksoy <aaksoy@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
…ismatch (dotnet#116206)

* JIT: Fix SysV first/second return register GC info mismatch when generating calls

* Fix struct ReturnKind on SysV AMD64.

On SysV AMD64, structs returned in a float and int reg pair were being
classified as RT_Scalar_XX. This causes downstream consumers
(e.g., HijackFrame::GcScanRoots) to look for obj/byref's in
the second int reg. Per the ABI, however, the first float is passed
through a float reg and the obj/byref is passed through the _first_
int reg. We now detect and fix this case by skipping the first float
type in the ReturnKind encoding and moving the second type into the
first.

Fix dotnet#115815

---------

Co-authored-by: zengandrew <7494393+zengandrew@users.noreply.github.com>
…posed with a pending operation (dotnet#116188)

* Fix PipeStream cleanup on Windows when pipe is disposed with a pending operation

The same pattern occurs in a couple of other places, as well.

* Make dispose cancellation unconditional

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
…4682)

* Fix dump_processor_state debug code to compile and work on Android (dotnet#112970)

Fix typo in GC bridge comparison message (SCCS -> XREFS)

* [mono] Add a few bridge tests (dotnet#113703)

* [mono][sgen] Fix DUMP_GRAPH debug option build for tarjan bridge

* [mono][sgen] Don't create ScanData* during debug dumping of SCCs

It serves no purpose and it would later crash the runtime since we didn't patch the lockword back in place.

* [mono][sgen] Fix some null deref crashes in DUMP_GRAPH debug option

* [mono][tests] Add bridge tests

These are ported from some of the bridge tests we had on mono/mono. In order to test them we compare between the output of the new and the tarjan bridge.

* Fix an edge case in the Tarjan GC bridge that leads to losing xref information (dotnet#112825)

* Fix an edge case in the Tarjan SCC that lead to losing xref information

In the Tarjan SCC bridge processing there's a color graph used to find out
connections between SCCs. There was a rare case which only manifested when
a cycle in the object graph points to another cycle that points to a bridge
object. We only recognized direct bridge pointers but not pointers to other
non-bridge SCCs that in turn point to bridges and where we already calculated
the xrefs. These xrefs were then lost.

* Add test case to sgen-bridge-pathologies and add an assert to catch the original bug

* Add review

---------

Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>

* [SGen/Tarjan] Handle edge case with node heaviness changing due to deduplication (dotnet#113044)

* [SGen/Tarjan] Handle edge case with node heaviness changing due to deduplication

Do early deduplication

Fix Windows build

Add test cases to sgen-bridge-pathologies

* Move test code

* Remove old code

* Add extra check (no change to functionality)

* Disable test on wasm

* [mono][sgen] Fix initialization of can_reduce_color (dotnet#114637)

* [mono][sgen] Fix initialization of can_reduce_color

Mark it as true also in the case when the SCC contains bridge objects. Code populating other_colors for this SCC depends on it.

* Disable test on wasm and mobile

The test is meant to be run only on desktop.

---------

Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Šimon Rozsíval <simon@rozsival.com>
…dotnet#116244)

dotnet#99576 changed the host to first
resolve symlinks before resolving the application directory. This means
that relative loads happen relative to the pointed-at file, not the
symbolic link. This was a breaking change made to match the symbolic
link behavior on all platforms.

Unfortunately, it seems a number of users have taken a dependency on the
Windows-specific behavior. This PR reverts the change and puts back in
place the old Windows behavior.

* Adapt symbolic link tests

* Conditional behavior based on OS

* Add unit test for success with symlinks

* Add self-contained test as well

* Add test with split files

* Simplify dir handling

* Simplify test code

* Remove debugging line

---------

Co-authored-by: Andy Gocke <andy@commentout.net>
Co-authored-by: Andy Gocke <angocke@microsoft.com>
Co-authored-by: Thays Grazia <thtaglia@microsoft.com>
Co-authored-by: Tom McDonald <tommcdon@microsoft.com>
…g mode (dotnet#115695)

Co-authored-by: Raphael Catolino <raphael.catolino@ovhcloud.com>
Co-authored-by: Kevin Jones <kevin@vcsjones.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
…otnet#116132)

Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
…525.3 (dotnet#115984)

Microsoft.SourceBuild.Intermediate.roslyn , Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.12.0-3.25256.6 -> To Version 4.12.0-3.25275.3

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

* Update dependencies from https://github.com/dotnet/arcade build 20250521.1

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.XUnitAssert , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 9.0.0-beta.25255.5 -> To Version 9.0.0-beta.25271.1

* Update dependencies from https://github.com/dotnet/arcade build 20250602.2

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.XUnitAssert , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 9.0.0-beta.25255.5 -> To Version 9.0.0-beta.25302.2

---------

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

* Update dependencies from https://github.com/dotnet/icu build 20250514.2

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25264.2

* Update dependencies from https://github.com/dotnet/icu build 20250516.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25266.1

* Update dependencies from https://github.com/dotnet/icu build 20250519.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25269.1

* Update dependencies from https://github.com/dotnet/icu build 20250523.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25273.1

* Update dependencies from https://github.com/dotnet/icu build 20250526.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25276.1

* Update dependencies from https://github.com/dotnet/icu build 20250604.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 9.0.0-rtm.25258.1 -> To Version 9.0.0-rtm.25304.1

---------

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

* Update dependencies from https://github.com/dotnet/sdk build 20250518.4

Microsoft.SourceBuild.Intermediate.sdk , Microsoft.DotNet.ApiCompat.Task
 From Version 9.0.107-servicing.25261.2 -> To Version 9.0.107-servicing.25268.4

* Update dependencies from https://github.com/dotnet/sdk build 20250522.8

Microsoft.SourceBuild.Intermediate.sdk , Microsoft.DotNet.ApiCompat.Task
 From Version 9.0.107-servicing.25261.2 -> To Version 9.0.107-servicing.25272.8

---------

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

* Update dependencies from https://github.com/dotnet/cecil build 20250511.2

Microsoft.SourceBuild.Intermediate.cecil , Microsoft.DotNet.Cecil
 From Version 0.11.5-alpha.25228.2 -> To Version 0.11.5-alpha.25261.2

* Update dependencies from https://github.com/dotnet/cecil build 20250514.2

Microsoft.SourceBuild.Intermediate.cecil , Microsoft.DotNet.Cecil
 From Version 0.11.5-alpha.25228.2 -> To Version 0.11.5-alpha.25264.2

* Update dependencies from https://github.com/dotnet/cecil build 20250519.1

Microsoft.SourceBuild.Intermediate.cecil , Microsoft.DotNet.Cecil
 From Version 0.11.5-alpha.25228.2 -> To Version 0.11.5-alpha.25269.1

* Update dependencies from https://github.com/dotnet/cecil build 20250525.2

Microsoft.SourceBuild.Intermediate.cecil , Microsoft.DotNet.Cecil
 From Version 0.11.5-alpha.25228.2 -> To Version 0.11.5-alpha.25275.2

---------

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 9.0.0-prerelease.25228.2 -> To Version 9.0.0-prerelease.25262.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…ease/9.0-staging

[automated] Merge branch 'release/9.0' => 'release/9.0-staging'
…e handle (dotnet#115380)

* Link peer's X509 stack handle to parent SSL safe handle

* Update src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs

Co-authored-by: Kevin Jones <vcsjones@github.com>

* Add test for dispose parallel with handshake.

* Revert "Add test for dispose parallel with handshake."

This reverts commit abf96c8.

* Defer RemoteCertificate assignment after X509 Chain build (dotnet#114781)

* Defer RemoteCertificate assignment after X509 Chain build

* Add comment

* Fix SslStreamDisposeTest failures during parallel handshake (dotnet#113834)

* Fix SslStreamDisposeTest.Dispose_ParallelWithHandshake_ThrowsODE test failures

* Fix build

* Fix SslStreamDisposeTest for parallel handshake on Unix (dotnet#114100)

* [Test Failure] SslStreamDisposeTest.Dispose_ParallelWithHandshake_ThrowsODE on Unix
Fixes dotnet#113833

* fixup! [Test Failure] SslStreamDisposeTest.Dispose_ParallelWithHandshake_ThrowsODE on Unix Fixes dotnet#113833

* fixup! fixup! [Test Failure] SslStreamDisposeTest.Dispose_ParallelWithHandshake_ThrowsODE on Unix Fixes dotnet#113833

* Update src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamDisposeTest.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix build

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Radek Zikmund <r.zikmund.rz@gmail.com>
Co-authored-by: Radek Zikmund <32671551+rzikm@users.noreply.github.com>
Co-authored-by: Kevin Jones <vcsjones@github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@jozkee jozkee requested review from a team June 10, 2025 04:02
@jozkee jozkee self-assigned this Jun 10, 2025
@Copilot Copilot AI review requested due to automatic review settings June 10, 2025 04:02
@jozkee jozkee added NO-SQUASH The PR should not be squashed Servicing-approved Approved for servicing release labels Jun 10, 2025
Copy link
Contributor

@Copilot 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 performs a merge of the release/9.0-staging branch into release/9.0 and brings in various fixes and version bumps across core libraries, tests, and build definitions.

  • Updated tests to cover additional scenarios (e.g. symlink operations and SslStream handshakes)
  • Adjusted resource disposal and race handling in various PipeStream and SslStream related files
  • Made changes in the CoreCLR JIT and GC components while updating dependency versions in global build configuration files

Reviewed Changes

Copilot reviewed 42 out of 42 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamDisposeTest.cs Added new tests and minor cleanup for SslStream disposal behaviors
src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Protocol.cs Adjusted the certificate assignment and callback parameters
src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs Added defense against ObjectDisposedException for race conditions
src/libraries/System.IO.Pipes/src/System/IO/Pipes/PipeStream.cs Removed duplicate state assignment and improved disposal ordering
src/libraries/System.IO.Pipes/src/System/IO/Pipes/PipeStream.Windows.cs Updated instance disposal in the reuse logic
src/libraries/System.IO.Pipes/src/System/IO/Pipes/NamedPipeServerStream.Windows.cs Replaced direct overlapped disposal with a full dispose call
src/libraries/System.IO.Pipes/src/System/IO/Pipes/NamedPipeServerStream.Unix.cs Simplified disposal logic
src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs Refactored certificate chain retrieval with a private helper
src/installer/tests/HostActivation.Tests/SymbolicLinks.cs Added new tests to validate symbolic link behavior under various conditions
src/coreclr/vm/method.cpp Improved return kind parsing and added safety around IL version retrieval
src/coreclr/jit/morphblock.cpp Updated assertion cleanup when skipping dead fields
src/coreclr/jit/gentree.cpp Changed loop iteration to use a dynamic count instead of a fixed constant
src/coreclr/jit/gcencode.cpp Adjusted the handling of struct return kinds based on ABI on Unix
src/coreclr/jit/codegenxarch.cpp Corrected return register size expectations in call instructions
src/coreclr/gc/gc.cpp Added a guard check to prevent infinite loops due to GC holes
global.json, eng/Versions.props, eng/Version.Details.xml, NuGet.config, .config/dotnet-tools.json Updated dependency and tool versions for the 9.0 release

@jozkee
Copy link
Member Author

jozkee commented Jun 10, 2025

Failing test: System.Net.Security.Tests.SslStreamRemoteExecutorTests.SslKeyLogFile_IsCreatedAndFilled is #116473.
I believe the fix should be backported to 9.0-staging @rokonec @ManickaP @rzikm.

BrzVlad and others added 3 commits June 10, 2025 12:50
* [mono][interp] Add possibility to configure interp options from env var

* [mono][interp] Update var definition when inserting new instructions during cprop (dotnet#116179)

The definition was not updated, leading to invalid optimizations later on.

* [mono][interp] Fix broken code attempting to reapply superinstruction optimization (dotnet#116069)

For each instruction in a basic block we check for patterns. In a certain case, once we replaced the instruction with a new one, we were attempting to do a loop reiteration by setting `ins = ins->prev` so after the loop reincrements with `ins = ins->next` we check super instruction patterns again for the current instruction. This is broken if `ins` was the first instruction in a basic block, aka `ins->prev` is NULL. This used to be impossible before SSA optimizations, since super instruction pass was applying optimizations in a single basic block only.
…ld 20250516.2 (dotnet#115677)

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 9.0.0-beta.25211.3 -> To Version 9.0.0-beta.25266.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: David Cantú <dacantu@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
… CI runs (dotnet#116460)

* Disable the UTFStringConversionFailures test on CI runs as our Helix machines can't handle the load from allocating 2 2GB strings and the OOM killer was killing the process.

* Rename test as well

---------

Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
Copy link
Member

@ericstj ericstj left a comment

Choose a reason for hiding this comment

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

Change looks good - your call on builds

@jozkee
Copy link
Member Author

jozkee commented Jun 11, 2025

/ba-g failures on extra platforms have historically been ignored, got #116459 (comment) again, the rest are known issues.

@jozkee jozkee merged commit 15af865 into dotnet:release/9.0 Jun 11, 2025
264 of 291 checks passed
@jozkee jozkee deleted the release/9.0-staging branch June 11, 2025 03:26
@github-actions github-actions bot locked and limited conversation to collaborators Jul 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
NO-SQUASH The PR should not be squashed Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants