Skip to content

[ci-scan] Test failure: GCRefStress_AllVerificationsPass misses a Windows x86 PrestubMethodFrame root #135086

Description

@radekdoulik

Description

Windows x86 cDAC GC-reference stress misses an interior reference in the active PrestubMethodFrame while running the NotYetLoadedArgType debuggee. The remaining 19 frames agree with the runtime.

Reproduction Steps

Observed in runtime-diagnostics build 1620305, windows-x86 release CdacStressTest, in Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass for NotYetLoadedArgType.

The uploaded debuggee log contains two such failed verifications. The work-item console includes one in its bounded failure excerpt. No deterministic local reproduction has been established.

Expected behavior

The cDAC reports the same interior reference from the active prestub frame as the native runtime.

Actual behavior

The runtime reports 94 references and the cDAC reports 93. Frame 0 is a PrestubMethodFrame with cDAC=0 RT=1; every other frame matches.

Regression?

The introducing change is not identified. This is a distinct signature from the EventSource cDAC=7 RT=47 mismatch previously observed on main. An independent main-branch occurrence of this specific prestub mismatch has not been confirmed.

The reporting PR only adds Wasm GC-info traits/registration and a separate unit-test fixture; the failing Windows x86 decoder and frame-scanning implementation are unchanged by it.

Known Workarounds

None established.

Configuration

Windows x86 runtime, Release, cDAC GC-reference stress, NotYetLoadedArgType debuggee. The Helix host queue is Windows x64.

Other information

This issue deliberately matches only the missing prestub-frame root, not every stress-test failure. Root cause is still open; the log indicates an interior reference (Flags=0x1).

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1620305
Build error leg or test failing: windows-x86 release CdacStressTest - Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass
Pull request: #135055

Failure log: https://helix.dot.net/api/2019-06-17/jobs/eb8ed009-397d-4232-80ff-636980b1e497/workitems/CdacStressTests/console

KBE authoring guidance (ci-failure-scan)
  • Error Details is for readers. Paste the full exception, stack trace, or build error excerpt so the failure is understandable without opening the raw log.
  • Build Analysis parses only the single JSON block under Error Message.
  • ErrorPattern uses .NET Singleline | IgnoreCase | NonBacktracking matching with a 50ms-per-line timeout.
  • Keep the regex anchored, prefer [^\n]* instead of .*, and avoid catastrophic backtracking.
  • Set BuildRetry to true only for a clear infrastructure retry case. ExcludeConsoleLog disables Helix console-log scanning.

Error Details

GCREFS stress test 'NotYetLoadedArgType' had 4 failure(s) and 0 known issue(s) out of 5008 verifications.

[FAIL] Thread=0x3198 IP=0x73C1E08C cDAC=93 RT=94 frames=20 (match=19 mismatch=1 known_nie=0)
  Frame #0 <frame PrestubMethodFrame 0x31acc00> [MISMATCH] cDAC=0 RT=1 SP_cDAC=0x0 SP_RT=0x0
    [ONLY(RT)] Addr=0x31ACC84 Obj=0x31AD120 Flags=0x1
  Stack trace:
    #0 <frame PrestubMethodFrame 0x31acc00> (cDAC=0 RT=1) <-- MISMATCH
    #1 <other 0x31acf18> (cDAC=1 RT=1)
    #2 <other 0x31ad0a4> (cDAC=2 RT=2)
    #3 <other 0x31adecc> (cDAC=1 RT=1)
    #4 <other 0x31ae990> (cDAC=3 RT=3)
    #5 <other 0x31af03c> (cDAC=1 RT=1)
    #6 System.Reflection.RuntimeCustomAttribute.AddCustomAttributes(System.ListBuilder`1<System.Object> ByRef, System.Reflection.QCustomAttributeList, System.RuntimeType, Boolean, System.ListBuilder`1<System.Object>) (cDAC=13 RT=13)
    #7 System.Reflection.RuntimeCustomAttribute.GetPropertyOrFieldData(System.Reflection.RuntimeModule, IntPtr ByRef, IntPtr, System.String ByRef, Boolean ByRef, System.RuntimeType ByRef, System.Object ByRef) (cDAC=4 RT=4)
    #8 System.Reflection.RuntimeCustomAttribute.GetCustomAttributes(System.Reflection.RuntimeMethodInfo, System.RuntimeType, Boolean) (cDAC=6 RT=6)
    #9 System.Reflection.RuntimeCustomAttribute.GetCustomAttributes(System.Reflection.QCustomAttributeList, Int32, System.RuntimeType) (cDAC=6 RT=6)
    #10 System.Reflection.TypeNameResolver.GetTypeHelper(System.ReadOnlySpan`1<Char>, System.Reflection.RuntimeAssembly, Boolean, Boolean, IntPtr) (cDAC=5 RT=5)
    #11 System.Reflection.Metadata.TypeNameParser.Parse(System.ReadOnlySpan`1<Char>, Boolean, System.Nullable`1<System.Reflection.Metadata.TypeNameParseOptions>) (cDAC=2 RT=2)
    #12 System.Reflection.Metadata.TypeNameParser.ParseNextTypeName(Boolean, Int32 ByRef) (cDAC=5 RT=5)
    #13 System.Diagnostics.Tracing.EventSource.Initialize(System.Guid, System.String, System.String[]) (cDAC=7 RT=7)
    #14 System.Diagnostics.Tracing.EventSource.DoCommand(System.Diagnostics.Tracing.EventCommandEventArgs) (cDAC=4 RT=4)
    #15 System.Diagnostics.Tracing.EventSource.EnsureDescriptorsInitialized() (cDAC=5 RT=5)
    #16 System.Diagnostics.Tracing.EventSource.InitializeDefaultEventSources() (cDAC=1 RT=1)
    #17 System.Diagnostics.Tracing.EventSource+EventSourceHelpers.CreateManifestAndDescriptors(System.Type, System.String, System.Diagnostics.Tracing.EventSource, System.Diagnostics.Tracing.EventManifestOptions) (cDAC=19 RT=19)
    #18 System.Diagnostics.Tracing.EventSource+EventSourceHelpers.GetCustomAttributeHelper(System.Reflection.MemberInfo, System.Type, System.Diagnostics.Tracing.EventManifestOptions) (cDAC=7 RT=7)
    #19 System.Diagnostics.Tracing.NativeRuntimeEventSource..cctor() (cDAC=1 RT=1)

Stack Trace:
  CdacStressTestBase.cs(180,0): at Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTestBase.AssertAllPassed(CdacStressResults results, String debuggeeName)
  CdacStressTests.cs(64,0): at Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass(Debuggee debuggee)

The debuggee's other two failed verifications have the separately tracked EventSource root-count signature; this issue does not match those.

Error Message

{
  "ErrorMessage": "",
  "ErrorPattern": "^\\s*Frame #0 <frame PrestubMethodFrame 0x[0-9a-f]+> \\[MISMATCH\\] cDAC=0 RT=1\\b",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}
Agentic workflow metadata (ci-failure-scan)

Workflow artifact: ci-failure-scan
Artifact kind: kbe-verification
Verified match count: 1 hits in failure.log

The anchored pattern was verified against the failing Helix console; no passing or skipped line matches. Only the volatile frame address is generalized.

Note

Prepared with GitHub Copilot.

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1620305
Error message validated: [^\s*Frame #0 <frame PrestubMethodFrame 0x[0-9a-f]+> \[MISMATCH\] cDAC=0 RT=1\b]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 10/2/2026 9:10:13 AM UTC

Report

Build Repository Test Pull Request
1622048 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #134813
1622029 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #133263
1622018 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #131907
1622021 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass
1621815 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #133890
1621684 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #132584
1621605 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #134813
1621593 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #134966
1621554 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #135068
1621544 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #135112
1621509 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #135067
1620305 dotnet/runtime Microsoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPass #135055

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
11 12 12

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Known Build ErrorUse this to report build issues in the .NET Helix tabarea-Diagnostics-coreclrblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'untriagedNew issue has not been triaged by the area owner

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions