Skip to content

Commit fc9d9cd

Browse files
steveisokCopilot
andauthored
Disable desktop CLR and single-file DAC tests blocked by CDB SecureLoadDotNetExtensions (#5759)
## Summary Contributes to #5757 CDB 10.0.26100.1 introduced `SecureLoadDotNetExtensions` which verifies digital signatures of DAC DLLs before loading them. Both the .NET Framework `mscordacwks.dll` (from local Framework directory and symbol server) and servicing .NET Core DAC DLLs fail this verification, causing 16 test failures across all Windows legs: ``` Failed to verify signature of file: C:\Windows\Microsoft.Net\Framework64\v4.0.30319\mscordacwks.dll Error code - 0x000021BE Debugger.Settings.EngineInitialization.SecureLoadDotNetExtensions is enabled, set to false to disable. Failed to load data access module, 0x80004002 ``` ## Root Cause The test infrastructure conditionally enables `SecureLoadDotNetExtensions=true` for non-nightly, non-private builds. CDB then rejects the DAC DLLs because their signatures cannot be verified: - `.NET Framework DAC` — `mscordacwks.dll` from `C:\Windows\Microsoft.Net\Framework64\v4.0.30319\` and from the symbol server - `Servicing .NET Core DAC` — for .NET 8.0 servicing runtimes This affects three test categories: - **13 `desktop.cli` tests** — desktop CLR DAC signature verification fails - **2 `projectk.sdk.prebuilt` tests** (DualRuntimes) — desktop CLR portion of dual-runtime dump fails - **1 `projectk.cli.singlefile` test** (StackAndOtherTests) — .NET 8.0 servicing DAC fails ## Changes All changes are in `SOS.cs` — disable the affected tests until the CDB signing issue is resolved: 1. **Exclude desktop CLR configurations** from `SOS.Configurations` — filters out `IsDesktop` configs that rely on `mscordacwks.dll` 2. **Skip `StackAndOtherTests`** for single-file on Windows — .NET 8.0 servicing DAC signature verification fails under CDB 3. **Skip `DualRuntimes`** on Windows — desktop CLR DAC portion of dual-runtime dump fails ## Impact - Disables **16 tests** blocked by CDB DAC signature verification failures - Tests can be re-enabled once the signing issue with the CDB package is resolved (tracked by #5757) - Test-only change — no product code or test infrastructure changes --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent bc1b058 commit fc9d9cd

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

src/tests/SOS.UnitTests/SOS.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,11 @@ public SOS(ITestOutputHelper output)
251251

252252
private ITestOutputHelper Output { get; set; }
253253

254-
public static IEnumerable<object[]> Configurations => SOSTestHelpers.GetConfigurations("TestName", value: null);
254+
// Desktop CLR configurations are temporarily excluded because CDB SecureLoadDotNetExtensions
255+
// and dotnet-dump DacSignatureVerification reject desktop CLR DAC DLLs.
256+
// Tracking: https://github.com/dotnet/diagnostics/issues/5757
257+
public static IEnumerable<object[]> Configurations => SOSTestHelpers.GetConfigurations("TestName", value: null)
258+
.Where(args => !((TestConfiguration)args[0]).IsDesktop);
255259

256260
[SkippableTheory, MemberData(nameof(SOSTestHelpers.GetNetCoreConfigurations), MemberType = typeof(SOSTestHelpers))]
257261
public async Task MiniDumpLocalVarLookup(TestConfiguration config)
@@ -546,6 +550,12 @@ await SOSTestHelpers.RunTest(
546550
[SkippableTheory, MemberData(nameof(SOSTestHelpers.GetConfigurations), "TestName", "SOS.StackAndOtherTests", MemberType = typeof(SOSTestHelpers))]
547551
public async Task StackAndOtherTests(TestConfiguration config)
548552
{
553+
// Single-file .NET 8 servicing DAC signature verification fails with CDB SecureLoadDotNetExtensions.
554+
// Tracking: https://github.com/dotnet/diagnostics/issues/5757
555+
if (OS.Kind == OSKind.Windows && config.PublishSingleFile)
556+
{
557+
throw new SkipTestException("Single-file DAC signature verification failure with CDB (https://github.com/dotnet/diagnostics/issues/5757)");
558+
}
549559
if (config.RuntimeFrameworkVersionMajor == 10)
550560
{
551561
// The clrstack -i -a command regressed on .NET 10 win-x86, so skip this test for now.
@@ -624,6 +634,13 @@ public async Task DualRuntimes(TestConfiguration config)
624634
{
625635
throw new SkipTestException("Single file not supported");
626636
}
637+
// Desktop CLR DAC signature verification fails with CDB SecureLoadDotNetExtensions
638+
// and dotnet-dump DacSignatureVerification.
639+
// Tracking: https://github.com/dotnet/diagnostics/issues/5757
640+
if (OS.Kind == OSKind.Windows)
641+
{
642+
throw new SkipTestException("Desktop CLR DAC signature verification failure (https://github.com/dotnet/diagnostics/issues/5757)");
643+
}
627644
// The assembly path, class and function name of the desktop test code to load/run
628645
string desktopTestParameters = TestConfiguration.MakeCanonicalPath(config.GetValue("DesktopTestParameters"));
629646
if (string.IsNullOrEmpty(desktopTestParameters))

0 commit comments

Comments
 (0)