From e8f98b1fc0c0c484400df206bab0cf1a7c865329 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Jul 2026 16:36:26 +0000 Subject: [PATCH 1/2] Initial plan From 02b8f9aa5e1525db9aefbc86abc7876d95477b4c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Jul 2026 16:39:31 +0000 Subject: [PATCH 2/2] Re-enable crossgen2 composite R2R benchmark scenarios --- build/crossgen2-scenarios.yml | 8 +------- build/nativeaot-scenarios.yml | 13 +++---------- build/singlefile-scenarios.yml | 15 ++++----------- 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/build/crossgen2-scenarios.yml b/build/crossgen2-scenarios.yml index 7ded1382f..7cdb757b4 100644 --- a/build/crossgen2-scenarios.yml +++ b/build/crossgen2-scenarios.yml @@ -33,15 +33,9 @@ parameters: - displayName: Default arguments: --property profile=default condition: 'true' - # Disabled: fails with ILCompiler.CodeGenerationFailedException (IndexOutOfRangeException - # in CorInfoImpl.HandleToModuleToken) during the crossgen2 composite publish, and on - # Windows runs causes crank to hang, blocking the rest of the jobs in the pipeline. - # Root cause fixed by dotnet/runtime#129053 (composite R2R token corruption for - # devirtualized async-variant callees, merged 2026-06-06). Re-enable once that fix - # flows into the .NET 11 SDK consumed by the benchmark agents. - displayName: CG2 composite # since 6.0-preview4 CG2 is the default when PublishReadyToRun=true is set arguments: --property profile=composite --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishReadyToRunUseCrossgen2=true \" - condition: 'false' + condition: 'true' - displayName: CG2 non-composite # /p:PublishReadyToRunComposite=false is the default arguments: --property profile=non-composite --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishReadyToRunUseCrossgen2=true /p:PublishReadyToRunComposite=false\" condition: 'true' diff --git a/build/nativeaot-scenarios.yml b/build/nativeaot-scenarios.yml index ec51167b8..50522ec98 100644 --- a/build/nativeaot-scenarios.yml +++ b/build/nativeaot-scenarios.yml @@ -34,10 +34,7 @@ parameters: - displayName: Goldilocks Stage 1 (CoreCLR - Trim R2R SingleFile) arguments: --scenario basicminimalapipublishtrimr2rsinglefile $(goldilocksJobs) --property scenario=Stage1TrimR2RSingleFile --property publish=coreclr --application.environmentVariables DOTNET_GCDynamicAdaptationMode=1 - # Disabled: hits dotnet/runtime crossgen2 composite R2R bug on async-variant callees - # (Kestrel Http1ChunkedEncodingMessageBody.PumpAsync). Re-enable once - # https://github.com/dotnet/runtime/pull/129053 flows into the .NET 11 SDK. - condition: 'false' + condition: 'true' - displayName: Goldilocks Stage 1 (NativeAOT) # workaround https://github.com/dotnet/runtime/issues/81382 by explicitly referencing a Microsoft.DotNet.ILCompiler version @@ -73,9 +70,7 @@ parameters: - displayName: Goldilocks Stage 2 (CoreCLR - Trim R2R SingleFile) arguments: --scenario todosapipublishtrimr2rsinglefile $(goldilocksJobs) --property scenario=Stage2TrimR2RSingleFile --property publish=coreclr --application.environmentVariables DOTNET_GCDynamicAdaptationMode=1 - # Disabled: see note on "Goldilocks Stage 1 (CoreCLR - Trim R2R SingleFile)" above. - # Re-enable once https://github.com/dotnet/runtime/pull/129053 flows into the .NET 11 SDK. - condition: 'false' + condition: 'true' - displayName: Goldilocks Stage 2 (NativeAOT) # workaround https://github.com/dotnet/runtime/issues/81382 by explicitly referencing a Microsoft.DotNet.ILCompiler version @@ -111,9 +106,7 @@ parameters: - displayName: Goldilocks gRPC Stage 1 (CoreCLR - Trim R2R SingleFile) arguments: --scenario basicgrpcpublishtrimr2rsinglefile $(goldilocksJobs) --property scenario=Stage1GrpcTrimR2RSingleFile --property publish=coreclr --application.environmentVariables DOTNET_GCDynamicAdaptationMode=1 - # Disabled: see note on "Goldilocks Stage 1 (CoreCLR - Trim R2R SingleFile)" above. - # Re-enable once https://github.com/dotnet/runtime/pull/129053 flows into the .NET 11 SDK. - condition: 'false' + condition: 'true' - displayName: Goldilocks gRPC Stage 1 (NativeAOT) # workaround https://github.com/dotnet/runtime/issues/81382 by explicitly referencing a Microsoft.DotNet.ILCompiler version diff --git a/build/singlefile-scenarios.yml b/build/singlefile-scenarios.yml index a1e954743..efc069af5 100644 --- a/build/singlefile-scenarios.yml +++ b/build/singlefile-scenarios.yml @@ -33,29 +33,22 @@ parameters: - displayName: Self-contained arguments: --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishSingleFile=false\" --property mode=SelfContained condition: 'true' - # Disabled: hangs / fails with ILCompiler.CodeGenerationFailedException - # (IndexOutOfRangeException in CorInfoImpl.HandleToModuleToken) during the - # crossgen2 composite publish on .NET 11 preview SDKs predating - # dotnet/runtime#129053 ("Fix composite R2R token corruption for devirtualized - # async-variant callees", merged 2026-06-06). Re-enable once that fix flows - # into the SDK consumed by the benchmark agents. - displayName: Single-file arguments: --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishSingleFile=true\" --property mode=SingleFile - condition: 'false' + condition: 'true' - displayName: Trimmed arguments: --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishSingleFile=true /p:PublishTrimmed=true\" --property mode=Trimmed - condition: 'false' + condition: 'true' - displayName: AOT # workaround https://github.com/dotnet/runtime/issues/81382 by explicitly referencing a Microsoft.DotNet.ILCompiler version arguments: --application.buildArguments \"/p:PublishAot=true /p:StripSymbols=true\" --property mode=Aot --application.packageReferences \"Microsoft.DotNet.ILCompiler=$(MicrosoftNETCoreAppPackageVersion)\" condition: 'true' - # Disabled: see note on "Single-file" above (dotnet/runtime#129053). - displayName: R2RComposite-Windows arguments: --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishSingleFile=true /p:RuntimeIdentifier=win-x64\" --property mode=R2RComposite --property rid=win-x64 --application.options.requiredOperatingSystem windows - condition: 'false' + condition: 'true' - displayName: R2RComposite-Linux arguments: --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishSingleFile=true /p:RuntimeIdentifier=linux-x64\" --property mode=R2RComposite --property rid=linux-x64 --application.options.requiredOperatingSystem linux - condition: 'false' + condition: 'true' steps: - ${{ each s in parameters.scenarios }}: