Skip to content

[Crossgen2 CI] crossgen2-comparison windows x86: Create cross-platform crossgen baseline fails with dotnet.exe not found #31

Description

@github-actions

Failure Details

  • Pipeline: runtime-coreclr crossgen2 outerloop
  • Build: 1361393
  • Job: Test crossgen2-comparison build windows x86 Release
  • Failed Task: Create cross-platform crossgen baseline
  • Configuration: windows / x86 / Release
  • Error Category: build-error

Failing Tests

Test Name Platform Error Type
crossgen2-comparison crossgen_framework windows-x86 Python script exit code 1

Error Output

The python script crossgen2_comparison.py processes all 236 framework assemblies but fails because dotnet.exe cannot be found.

Error details
[command]C:\python3\python.exe D:\a\_work\1\s\src\tests\Common\scripts\crossgen2_comparison.py crossgen_framework
  --crossgen D:\a\_work\1\s\artifacts\bin\crossgen2_inbuild\x86\Release\crossgen2.dll
  --dotnet D:\a\_work\1\s\dotnet.cmd
  --core_root D:\a\_work\1\s\artifacts\tests\coreclr\windows.x86.Release\Tests\CrossCompileRoot\dlls
  --result_dir D:\a\_work\1\s\artifacts\tests\coreclr\windows.x86.Release\Tests\CrossCompileRoot\log
  --target_os windows --target_arch x86 --compiler_arch_os windows_x64

D:\a\_work\1\s\src\tests\Common\scripts\crossgen2_comparison.py:250: DeprecationWarning: There is no current event loop
  loop = asyncio.get_event_loop()

' stderr'The system cannot find the file specified.

'"\dotnet.exe"' is not recognized as an internal or external command,
operable program or batch file.

[236:236]: D:\a\_work\1\s\artifacts\bin\crossgen2_inbuild\x86\Release\crossgen2.dll WindowsBase.dll

##[error]The process 'C:\python3\python.exe' failed with exit code 1

Regression Details

  • Previous outerloop build 1359430 (2026-03-31): Test crossgen2-comparison build windows x86 Release passed
  • Current build 1361393 (2026-04-01): fails

This is a new regression. A similar failure on windows x64 was previously tracked in #13 and appeared to have resolved; this x86 variant is new.

Analysis

The error '"\dotnet.exe"' is not recognized indicates a path resolution issue in the crossgen2 comparison infrastructure:

  1. The script is invoked with --dotnet D:\a\_work\1\s\dotnet.cmd (the repo-root wrapper)
  2. dotnet.cmd appears to resolve to a bare \dotnet.exe path that doesn't exist
  3. The script proceeds to process all 236 assemblies (some may succeed via a fallback path) but ultimately exits with code 1 due to the earlier error

The quoting pattern '"\dotnet.exe"' in the error suggests either:

  • The dotnet.cmd wrapper is producing a malformed path with double-quotes
  • The python script src/tests/Common/scripts/crossgen2_comparison.py is incorrectly quoting or resolving the --dotnet argument

Recommended Action

This failure requires investigation of the dotnet path resolution in the crossgen2 comparison pipeline:

  1. Check src/tests/Common/scripts/crossgen2_comparison.py around line 250 and wherever it invokes dotnet.cmd / dotnet.exe
  2. Examine dotnet.cmd at the repo root to understand how it resolves the actual dotnet SDK path
  3. Look for recent changes to the crossgen2-comparison pipeline YAML (eng/pipelines/coreclr/crossgen2-comparison.yml) or the python script that may have altered path handling
  4. Compare the PATH and environment between the passing build (1359430) and failing build (1361393)

CI Log

Generated by Crossgen2 CI Failure Triage ·

  • expires on May 1, 2026, 2:31 PM UTC

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions