[CI] SOS.UnitTests desktop.cli tests fail with 'Failed to load data access module' (mscordacwks.dll mismatch)

Đang mở
#5,757 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

  • #5758 của @steveisok — đã đóng, không merge

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Lĩnh vực
ci-cd, devops, testing-qa

Hướng nghiên cứu

Bắt đầu với các artifact bị lỗi SOS.UnitTests_net8.0_x64.log và SOS.UnitTests_net8.0_x86.log, tập trung vào các cấu hình desktop.cli và DualRuntimes. Xác minh phiên bản .NET Framework trên các tác nhân CI và liệu đường dẫn symbol đã cấu hình có cung cấp mscordacwks.dll tương ứng hay không; đồng thời kiểm tra phiên bản package cdb-sos. Được xem là hoàn tất khi các rolling build Windows được liệt kê đều vượt qua và các lệnh SOS tạo ra đầu ra khớp với các regex kiểm thử của chúng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Summary

15 SOS.UnitTests with config: desktop.cli (and 2 DualRuntimes tests) are consistently failing on all Windows rolling CI legs (diagnostics-public-ci, definition 25) since approximately Mar 10, 2026. The pipeline is currently red — the last 2 consecutive rolling builds both failed.

Root Cause

All failing tests hit the same error from CDB/SOS:

Failed to load data access module, 0x80004002
Verify that 1) you have a recent build of the debugger (10.0.18317.1001 or newer)
            2) the file mscordacwks.dll that matches your version of clr.dll is
                in the version directory or on the symbol path

The SOS commands (!PrintException, !ClrStack, !DumpObj, etc.) produce no diagnostic output because the DAC cannot be loaded for the .NET Framework CLR in the debuggee process. The test regex verification then fails because there is no output to match.

This occurs 17 times across the test suite in a single run. The failure is deterministic — identical tests fail on both x64 and x86 with the same error.

Likely Cause

A .NET Framework servicing update on the CI agent machines introduced a new clr.dll version, but the matching mscordacwks.dll is not available on the configured symbol path. See closed issue #4625 for a prior occurrence of missing mscordacwks symbols.

Affected Builds

Build Date Failed Legs
1332940 Mar 12 Win x64 Debug, Win x64 Release, Win x86 Release
1332642 Mar 12 Win x64 Debug, Win x64 Release, Win x86 Release
1327950 Mar 10 Win x86 Release

Last passing rolling build: 1330114 (Mar 11).

Failing Tests (15 on x64, 14 on x86)

All desktop.cli config:

  • SOS.TaskNestedException, SOS.LineNums, SOS.DivZero, SOS.SimpleThrow, SOS.Reflection
  • SOS.StackTraceFaultingExceptionFrame, SOS.GCTests, SOS.OtherCommands
  • SOS.NestedExceptionTest, SOS.Overflow, SOS.DumpGen, SOS.ConcurrentDictionaries, SOS.AsyncMain

Plus projectk.sdk.prebuilt config:

  • SOS.DualRuntimes (9.0.12), SOS.DualRuntimes (8.0.23)

Reproduction

Artifacts with full test logs are available at:

  • Logs_Windows_x64_Release_1 → log/Release/SOS.UnitTests_net8.0_x64.log
  • Logs_Windows_x86_Release_1 → log/Release/SOS.UnitTests_net8.0_x86.log

Suggested Fix

  1. Verify which .NET Framework version is currently on the CI agents
  2. Ensure the symbol server path is configured so CDB can download the matching mscordacwks.dll, or bundle the correct DAC version
  3. Alternatively, investigate whether the cdb-sos NuGet package (currently 10.0.26100.1) needs updating to match the new agent environment
Ngôn ngữ chính
C++
Star
1.3k
Fork
407
Merge trung bình
21 giờ 5 phút
Pull request đã merge (30 ngày)
78

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Không có Dockerfile hay tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dotnet/diagnostics

Tất cả issue của dotnet/diagnostics

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.