-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Project segfaults on Ubuntu ( ARM64 ) #76051
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsDescriptionThe project @ https://github.com/budgetdevv/JITBugRepro segfaults on my Ubuntu ( ARM64 ) machine when ran. However, it seems to run fine on my Windows x64 machine. Reproduction Steps
Expected behaviorThe program should run indefinitely, given that there is an Actual behaviorThe program segfaults. Interestingly, Both of which suggest to me that it is a JIT bug. Regression?No response Known WorkaroundsUse Windows :p ConfigurationWhich version of .NET is the code running on?
What OS and version, and what distro if applicable?
What is the architecture (x64, x86, ARM, ARM64)?
Do you know whether it is specific to that configuration
Other informationSuspects
|
I can repro with x64 win, WSL2, arm64 altjit (repros with main). We are morphing a complex tree in
It looks like in |
Minimal repro: unsafe int GetIndex(uint cellCount) => (int)((ulong)&cellCount % cellCount); with arm64 jit (or altjit) |
Seems like this is a result of #69770, before then we were using |
I don't think this was #69770, if I read the diff right I think this was exposed by #68484. Before that the It is odd that |
… trees We may get here for any invariant dividend/divisor but these can be 'complex' address-of trees that gtClone does not handle. Fix dotnet#76051
There goes my plan for trying to pin this on somebody else. |
… trees We may get here for any invariant dividend/divisor but these can be 'complex' address-of trees that gtClone does not handle. Fix #76051
…ress-of expressions (#76171) * Add a test * JIT: Use gtCloneExpr in fgMorphModToSubMulDiv for potentially complex trees We may get here for any invariant dividend/divisor but these can be 'complex' address-of trees that gtClone does not handle. Fix #76051 * Fix test build Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
Description
The project @ https://github.com/budgetdevv/JITBugRepro segfaults on my Ubuntu ( ARM64 ) machine when ran. However, it seems to run fine on my Windows x64 machine.
Reproduction Steps
Program.cs
located in theBugRepro
folderExpected behavior
The program should run indefinitely, given that there is an
await Task.Delay(Timeout.Infinite)
Actual behavior
The program segfaults. Interestingly,
Services.GetRequiredService<InvitesModule>().OnReady()
is ran to completion ( The program prints "Bleh" ) before segfaulting. When debugging with GDB, the program exited withThread 7 ".NET Tiered Com" received signal SIGSEGV, Segmentation fault.
.Both of which suggest to me that it is a JIT bug.
Regression?
No response
Known Workarounds
Use Windows :p
Configuration
Which version of .NET is the code running on?
What OS and version, and what distro if applicable?
What is the architecture (x64, x86, ARM, ARM64)?
Do you know whether it is specific to that configuration
Other information
Suspects
Executing project using
NonBlocking.ConcurrentDictionary
bundled in referenced projectServices.GetRequiredService<MemberDB>()
calls into ctor, which calls ConnectionPool.CreateOrGetConnection("") which reads from a static readonlyNonBlocking.ConcurrentDictionary
fieldServices.GetRequiredService<InvitesModule>().OnReady()
contains a foreach loop that writes into aNonBlocking.ConcurrentDictionary
. The write happens after anawait
, which might also be responsible for the weird behaviorThis bug seems to be caused by tiered compilation ( GDB mentioned TC and threadpool thread )
The text was updated successfully, but these errors were encountered: