Skip to content

On .NET 10 Rider debugger is causing fatal CLR error with monomod #283

@zznty

Description

@zznty

Description

Ive gotten this issue on multiple unrelated project with both RuntimeDetour and Harmony. Created a simple repro project for you to test.

Heres trimmed stacktrace of the error (removed some internal imagesharp lines)

Fatal error.
Internal CLR error. (0x80131506)
   at MonoMod.Core.Interop.CoreCLR+V60.InvokeCompileMethod(IntPtr, IntPtr, IntPtr, CORINFO_METHOD_INFO*, UInt32, Byte**, UInt32*)
   at MonoMod.Core.Platforms.Runtimes.Core60Runtime+JitHookDelegateHolder.CompileMethodHook(IntPtr, IntPtr, CORINFO_METHOD_INFO*, UInt32, Byte**, UInt32*)
   at System.Runtime.CompilerServices.StaticsHelpers.<GetThreadStaticsByIndex>g____PInvoke|0_0(System.Runtime.CompilerServices.ByteRefOnStack, Int32, Int32)
   at System.Runtime.CompilerServices.StaticsHelpers.GetThreadStaticsByIndex(System.Runtime.CompilerServices.ByteRefOnStack, Int32, Boolean)
   at System.Runtime.CompilerServices.StaticsHelpers.GetGCThreadStaticsByIndexSlow(Int32)
   at System.Runtime.CompilerServices.StaticsHelpers.GetThreadLocalStaticBaseByIndex(Int32, Boolean)
   at System.Runtime.CompilerServices.StaticsHelpers.GetGCThreadStaticBase(System.Runtime.CompilerServices.MethodTable*)
   at System.Buffers.SharedArrayPool`1[[System.Byte, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Rent(Int32)
   at SixLabors.ImageSharp.IO.BufferedReadStream..ctor(SixLabors.ImageSharp.Configuration, System.IO.Stream, System.Threading.CancellationToken)
   at SixLabors.ImageSharp.Formats.ImageDecoderCore.Decode[[SixLabors.ImageSharp.PixelFormats.Rgba32, SixLabors.ImageSharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13]](SixLabors.ImageSharp.Configuration, System.IO.Stream, System.Threading.CancellationToken)
   <...>
   at SixLabors.ImageSharp.Image.Load(System.String)
   at Program.<<Main>$>g__Stress|0_2()
   at System.Threading.Thread+StartHelper.Run()
   at System.Threading.Thread.StartCallback()

Repro project:
MonoModRepro.zip
To repro:

  1. open with rider and run with debugger (i have rider 2025.3.0.3)
  2. wait like 1-3 minutes
  3. get the stack trace in console and dotnet crashdump trigger

Let me know if you want the process dump, just due to the nature of my repro the dump file itself is around 5gb.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions