-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash in System.Collections.Concurrent test #112351
Comments
Looks like bad GCInfo for Monitor::Exit:
We are reporting r20 to the GC, but r20 has not been initialized yet. |
JitDump of Monitor.Exit: jitdump.txt |
Relevant GCInfo fragment from jitdump:
The GCInfo seems to be marking r20 as live one instruction too early. @dotnet/jit-contrib Could you please take a look? |
Looks like it's TLS access expansion cc @kunalspathak the add instruction seems to be emitted here: runtime/src/coreclr/jit/codegenarmarch.cpp Line 3619 in 1090705
|
The problem here is that the live GC regs mask is encoded in the |
The change is NativeAOT only and the GC presumably has to stop precisely on that instruction in a method with a TLS access and the method has to be fully-interruptible, I guess the chances are once-a-year 😆 (perhaps, some recent C# change made that method fully-interruptible only recently?). I guess this could be a motivation to enable GCStress for NAOT |
And we have to be lucky to get a crash dump, and an issue needs to be opened on the crash, and somebody must investigate it before the crash dump is deleted.... |
We had a similar TLS issue found by the same test, probably in the same method at #102140 last year. This one was probably rare enough that it never bubbled up visible enough. Since this is always the same test, nothing probably stresses TLS as much as what this test does. |
Seen on ARM64 Linux at https://dev.azure.com/dnceng-public/public/_build/results?buildId=945755&view=logs&j=2f6a7d26-0d60-5ade-d191-981fe0847989&t=0d559cd2-9dc1-5e64-75a8-1eaf78bd722a
At the time of filing, the dump is available with:
The text was updated successfully, but these errors were encountered: