Skip to content

[RuntimeAsync] Possible GC hole #116322

@VSadov

Description

@VSadov

Also possible that GC stress needs some update for runtime async.

Example of a windows-x64 GC stress failure:

https://github.com/dotnet/runtime/pull/115947/checks?check_run_id=43432208236

https://helixr1107v0xdcypoyl9e7f.blob.core.windows.net/dotnet-runtime-refs-pull-115947-merge-5ded2d5df6014d418f/async.0.1/1/console.aa928737.log?helixlogtype=result

C:\h\w\B46109A4\w\AAD40950\e>call async\async\async.cmd -usewatcher 
BEGIN EXECUTION
"C:\h\w\B46109A4\p\watchdog.exe" 299 "C:\h\w\B46109A4\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  async.dll 
00:55:38.705 Running test: async/awaitingnotasync/awaitingnotasync/awaitingnotasync.dll

Assert failure(PID 4040 [0x00000fc8], Thread: 4812 [0x12cc]): !CREATE_CHECK_STRING(!"Detected use of a corrupted OBJECTREF. Possible GC hole.")

CORECLR! `Object::ValidateInner'::`1'::catch$13 + 0x10B (0x00007fff`65613cab)
CORECLR! CallSettingFrame_LookupContinuationIndex + 0x20 (0x00007fff`65530660)
CORECLR! _FrameHandler4::CxxCallCatchBlock + 0x1DE (0x00007fff`6552e42e)
NTDLL! RtlCaptureContext + 0x3C3 (0x00007fff`87eba173)
CORECLR! Object::ValidateInner + 0xE8 (0x00007fff`65011368)
CORECLR! Object::Validate + 0xA1 (0x00007fff`65011241)
CORECLR! TGcInfoDecoder<AMD64GcInfoEncoding>::ReportRegisterToGC + 0x1A8 (0x00007fff`65447838)
CORECLR! TGcInfoDecoder<AMD64GcInfoEncoding>::EnumerateLiveSlots + 0x14C2 (0x00007fff`65443ae2)
CORECLR! EECodeManager::EnumGcRefs + 0x25B (0x00007fff`64edd09b)
CORECLR! GcStackCrawlCallBack + 0x758 (0x00007fff`651a99f8)
    File: D:\a\_work\1\s\src\coreclr\vm\object.cpp:626
    Image: C:\h\w\B46109A4\p\corerun.exe

This is with

set DOTNET_TieredCompilation=0
set DOTNET_GCStress=0xC
set DOTNET_JitStress=2
set DOTNET_ReadyToRun=0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions