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

オープン
#5,757 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

  • #5758 @steveisok による — マージされずにクローズ

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞

調査の方向性

失敗している SOS.UnitTests_net8.0_x64.log と SOS.UnitTests_net8.0_x86.log のアーティファクトから始め、desktop.cli 構成と DualRuntimes 構成に注目します。CI エージェント上の .NET Framework のバージョンと、構成されたシンボル パスが対応する mscordacwks.dll を提供しているかを確認し、cdb-sos パッケージのバージョンも確認します。記載された Windows rolling ビルドが成功し、SOS コマンドがテストの正規表現に一致する出力を生成すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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
主要言語
C++
スター
1.3k
フォーク
407
平均マージ
21時間 5分
マージ済み PR(30日)
78

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

dotnet/diagnostics のほかの issue

dotnet/diagnostics の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。