Skip to content

Regression_4.5.10: Assert failure: !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.") #134837

Description

@VincentBu

Build Information

Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=1613975
Build error leg or test failing: Regression_4.5.10.WorkItemExecution

Error Detail

Assert failure(PID 2464 [0x000009a0], Thread: 2452 [0x0994]): !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.")



CORECLR! Object::Validate + 0xA9 (0x731ae439)

CORECLR! WKS::GCHeap::Relocate + 0x5D (0x72f79a0d)

CORECLR! GcEnumObject + 0x15D (0x7332c26d)

CORECLR! EnumGcRefsX86 + 0x79A (0x7308e22a)

CORECLR! EECodeManager::EnumGcRefs + 0x1E4 (0x7308da44)

CORECLR! GcStackCrawlCallBack + 0x2B9 (0x7332c719)

CORECLR! Thread::StackWalkFramesEx + 0x223 (0x731f7483)

CORECLR! Thread::StackWalkFrames + 0x1BB (0x731f724b)

CORECLR! ScanStackRoots + 0x2CE (0x7332aade)

CORECLR! GCToEEInterface::GcScanRoots + 0x16F (0x733287ef)

    File: D:\a\_work\1\s\src\coreclr\vm\object.cpp:618

    Image: C:\h\w\AC87099C\p\corerun.exe



Exit Code: -1073740286

Expected: 100

Actual: -1073740286

END EXECUTION - FAILED

FAILED

Error Message

Fill the error message using step by step known issues guidance.

{
  "ErrorMessage": "Failed test: Regression_4.5.10.WorkItemExecution",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1613975
Error message validated: [Failed test: Regression_4.5.10.WorkItemExecution]
Result validation: ❌ Known issue did not match with the provided build.
Validation performed at: 9/29/2026 1:44:48 AM UTC

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0

Activity

  1. dotnet-policy-service commented on Sep 29, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @anicka-net, @dotnet/gc
    See info in area-owners.md if you want to be subscribed.

  2. changed the title [-]Assert failure: !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.")[/-] [+]Regression_4.5.10: Assert failure: !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.")[/+] on Sep 29, 2026
  3. VincentBu commented on Oct 8, 2026

    @VincentBu
    ContributorAuthor

    Also failed in runtime-coreclr gcstress-extra 20261004.1

    Failed tests:

    coreclr windows x86 Checked gcstress0xc_disabler2r_heapverify1 @ Windows.10.Amd64.Open
    - JIT/Regression_3/DevDiv_377155/DevDiv_377155/DevDiv_377155.cmd
    - JIT/Regression_3/DevDiv_736188/DevDiv_736188/DevDiv_736188.cmd
    - JIT/Regression_2/Runtime_65694/Runtime_65694_2/Runtime_65694_2.cmd
    - JIT/Regression_2/Runtime_71831/Runtime_71831/Runtime_71831.cmd
    - JIT/Regression_2/Runtime_72926/Runtime_72926/Runtime_72926.cmd
    - JIT/Regression_2/Runtime_73628/Runtime_73628/Runtime_73628.cmd
    coreclr windows x86 Checked gcstress0xc_disabler2r @ Windows.10.Amd64.Open
    - JIT/Regression_3/DevDiv_278372/DevDiv_278372/DevDiv_278372.cmd
    - JIT/Regression_3/DevDiv_362706/DevDiv_362706/DevDiv_362706.cmd
    - JIT/Regression_3/DevDiv_367099/DevDiv_367099/DevDiv_367099.cmd
    - JIT/Regression_3/DevDiv_370233/DevDiv_370233/DevDiv_370233.cmd
    - JIT/Regression_3/DevDiv_377155/DevDiv_377155/DevDiv_377155.cmd
    - JIT/Regression_3/DevDiv_736188/DevDiv_736188/DevDiv_736188.cmd
    - JIT/Regression_2/Runtime_109269/Runtime_109269/Runtime_109269.cmd
    - JIT/Regression_2/Runtime_65694/Runtime_65694_2/Runtime_65694_2.cmd
    - JIT/Regression_2/Runtime_71831/Runtime_71831/Runtime_71831.cmd
    - JIT/Regression_2/Runtime_72926/Runtime_72926/Runtime_72926.cmd
    - JIT/Regression_2/Runtime_73628/Runtime_73628/Runtime_73628.cmd
    - JIT/Regression_2/Runtime_85611/Runtime_85611/Runtime_85611.cmd
    - JIT/Regression_3/DevDiv_278372/DevDiv_278372/DevDiv_278372.cmd
    - JIT/Regression_3/DevDiv_362706/DevDiv_362706/DevDiv_362706.cmd
    - JIT/Regression_3/DevDiv_367099/DevDiv_367099/DevDiv_367099.cmd
    - JIT/Regression_3/DevDiv_370233/DevDiv_370233/DevDiv_370233.cmd
    - JIT/Regression_3/DevDiv_377155/DevDiv_377155/DevDiv_377155.cmd
    - JIT/Regression_3/DevDiv_736188/DevDiv_736188/DevDiv_736188.cmd
    - JIT/Regression_2/Runtime_109269/Runtime_109269/Runtime_109269.cmd
    - JIT/Regression_2/Runtime_65694/Runtime_65694_2/Runtime_65694_2.cmd
    - JIT/Regression_2/Runtime_71831/Runtime_71831/Runtime_71831.cmd
    - JIT/Regression_2/Runtime_72926/Runtime_72926/Runtime_72926.cmd
    - JIT/Regression_2/Runtime_73628/Runtime_73628/Runtime_73628.cmd
    - JIT/Regression_2/Runtime_85611/Runtime_85611/Runtime_85611.cmd
    coreclr windows x86 Checked gcstress0xc_disabler2r_heapverify1 @ Windows.10.Amd64.Open
    - JIT/Regression_2/Runtime_109269/Runtime_109269/Runtime_109269.cmd
    - JIT/Regression_2/Runtime_65694/Runtime_65694_2/Runtime_65694_2.cmd
    - JIT/Regression_2/Runtime_71831/Runtime_71831/Runtime_71831.cmd
    - JIT/Regression_2/Runtime_72926/Runtime_72926/Runtime_72926.cmd
    - JIT/Regression_2/Runtime_73628/Runtime_73628/Runtime_73628.cmd
    - JIT/Regression_2/Runtime_85611/Runtime_85611/Runtime_85611.cmd
    
    

    Error message:

    Assert failure(PID 5432 [0x00001538], Thread: 5284 [0x14a4]): !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.")
    
    CORECLR! Object::Validate + 0xA9 (0x7376b279)
    CORECLR! WKS::GCHeap::Promote + 0x17C (0x7353622c)
    CORECLR! GcEnumObject + 0x15D (0x738e8aed)
    CORECLR! EnumGcRefsX86 + 0x4CF (0x7364ab6f)
    CORECLR! EECodeManager::EnumGcRefs + 0x1E4 (0x7364a644)
    CORECLR! GcStackCrawlCallBack + 0x2B9 (0x738e8f99)
    CORECLR! Thread::StackWalkFramesEx + 0x223 (0x737b46b3)
    CORECLR! Thread::StackWalkFrames + 0x1BB (0x737b447b)
    CORECLR! ScanStackRoots + 0x2CE (0x738e735e)
    CORECLR! GCToEEInterface::GcScanRoots + 0x172 (0x738e5052)
        File: D:\a\_work\1\s\src\coreclr\vm\object.cpp:618
        Image: C:\h\w\AF0C0A2A\p\corerun.exe
    
    
    Return code:      1
    Raw output file:      C:\h\w\AF0C0A2A\w\A34F0912\uploads\DevDiv_377155\DevDiv_377155\output.txt
    Raw output:
    BEGIN EXECUTION
     "C:\h\w\AF0C0A2A\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  DevDiv_377155.dll 
    Expected: 100
    Actual: -1073740286
    END EXECUTION - FAILED
    FAILED
    Test Harness Exitcode is : 1
    To run the test:
    Set up CORE_ROOT and run.
    > C:\h\w\AF0C0A2A\w\A34F0912\e\JIT\Regression_3\Regression_3\../DevDiv_377155/DevDiv_377155/DevDiv_377155.cmd
    

    Stack trace:

    at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 135
       at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix) in /__w/1/s/src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs:line 202
       at Program.<>c__DisplayClass0_0.<<Main>$>g__TestExecutor107|108(StreamWriter tempLogSw, StreamWriter statsCsvSw, StreamWriter outOfProcessPlanWriter)
    
  4. added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    and removed on Oct 8, 2026
  5. dotnet-policy-service commented on Oct 8, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
    See info in area-owners.md if you want to be subscribed.

  6. jkotas commented on Oct 8, 2026

    @jkotas
    Member

    @dotnet/jit-contrib We have accumulated multiple GC hole crashes in last week or two. Please take a look before it gets out of hand.

  7. jkotas commented on Oct 8, 2026

    @jkotas
    Member
    ; Assembly listing for method System.Runtime.CompilerServices.VirtualDispatchHelpers:VirtualFunctionPointer(System.Object,nint,nint):nint (FullOpts)
    ; Emitting BLENDED_CODE for x86 + VEX on Windows
    
    ....
    
    G_M50750_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, prolog, nogc
    000000 push     ebp
    000001 mov      ebp, esp
    000003 push     edi
    000004 push     esi
    000005 push     ebx
    000006 sub      esp, 68
    000009 mov      edi, ecx
                        ; gcrRegs +[edi] <------------------------------------- EDI becomes live
    00000B mov      esi, edx
    						;; size=13 bbWeight=1 PerfScore 5.00
    G_M50750_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
    00000D vxorps   xmm0, xmm0, xmm0
    000011 vmovups  xmmword ptr [ebp-0x20], xmm0
    000016 test     byte  ptr [0x056F27EC], 1      ; global ptr
    00001D je       G_M50750_IG11
    						;; size=22 bbWeight=1 PerfScore 4.33
    G_M50750_IG03:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
    000023 mov      ecx, gword ptr [0x07A81278]
                        ; gcrRegs +[ecx]
    000029 add      ecx, 4
                        ; gcrRegs -[ecx]
                        ; byrRegs +[ecx]
    00002C mov      gword ptr [ebp-0x4C], edi
                        ; GC ptr vars +{V00}
    00002F mov      edx, dword ptr [edi]
    000031 mov      dword ptr [ebp-0x48], edx
    000034 mov      eax, edx
    000036 mov      ebx, esi
    000038 rol      ebx, 5
    00003B add      ebx, eax
    00003D rorx     edi, dword ptr [ebp+0x08], 5 <----- EDI is overwritten with a value that's clearly not a GC reference, but it is still live -> bug
    000044 add      edi, ebx
                        ; gcrRegs -[edi] <--- EDI is becoming dead one instruction too late
    
  8. jkotas commented on Oct 8, 2026

    @jkotas
    Member
    ; Assembly listing for method System.Reflection.MethodBaseInvoker:InvokeDirectByRefWithFewArgs(System.Object,System.Span`1[System.Object],int):System.Object:this (FullOpts)
    ; Emitting BLENDED_CODE for x86 + VEX on Windows
    ; FullOpts code
    
    ...
    
    000140 mov      ecx, bword ptr [ebp-0x34]
                        ; byrRegs +[ecx]
    000143 add      esi, ecx
                        ; byrRegs +[esi] <----- ESI is byref
    000145 xchg     eax, edi
    000147 xchg     ecx, edi
                        ; byrRegs -[ecx] +[edi]
    000149 xchg     edx, edi
                        ; byrRegs -[edi] +[edx]
    00014B xchg     ebx, edi
                        ; gcrRegs -[ebx] +[edi] <----- EDI is objref
    00014D xchg     esi, edi <----- ESI is swapped with EDI, but GC reporting is missing. EDI is reported as objref, but it actually contains byref -> bug
    00014F jmp      SHORT G_M51382_IG14
    
  9. removed
    untriagedNew issue has not been triaged by the area owner
    on Oct 9, 2026
  10. added this to the 12.0.0 milestone on Oct 9, 2026
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 tabarch-x86area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIblocking-clean-ci-optionalBlocking optional rolling runs

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions