The cDAC reports the same interior reference from the active prestub frame as the native runtime.
The runtime reports 94 references and the cDAC reports 93. Frame 0 is a PrestubMethodFrame with cDAC=0 RT=1; every other frame matches.
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.
None established.
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).
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.
Description
Windows x86 cDAC GC-reference stress misses an interior reference in the active
PrestubMethodFramewhile running theNotYetLoadedArgTypedebuggee. The remaining 19 frames agree with the runtime.Reproduction Steps
Observed in runtime-diagnostics build 1620305,
windows-x86 release CdacStressTest, inMicrosoft.Diagnostics.DataContractReader.Tests.GCStress.CdacStressTests.GCRefStress_AllVerificationsPassforNotYetLoadedArgType.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
PrestubMethodFramewithcDAC=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=47mismatch 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,
NotYetLoadedArgTypedebuggee. 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 Detailsis for readers. Paste the full exception, stack trace, or build error excerpt so the failure is understandable without opening the raw log.Error Message.ErrorPatternuses .NETSingleline | IgnoreCase | NonBacktrackingmatching with a 50ms-per-line timeout.[^\n]*instead of.*, and avoid catastrophic backtracking.BuildRetrytotrueonly for a clear infrastructure retry case.ExcludeConsoleLogdisables Helix console-log scanning.Error Details
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
Summary