-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
segv in JIT when ingesting dotnet/runtime into dotnet/aspnetcore #101695
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
Is this crash just on linux or do you see it on windows too? |
I've seen it on Linux and Mac - the same tests seem to run & pass on Windows. |
Can you outline plausible repro steps? I am trying to reconstruct these from CI... the JIT is getting into what it thinks is an impossible situation, I would like to capture all the interaction of JIT and runtime up until that point if possible. Or would I be able to use runfo work to fetch the assets used by CI? |
You only need to run |
I'm not sure about this, someone from @dotnet/dnceng might know more |
Seems to crash in
|
Jitdump here:https://gist.github.com/AndyAyersMS/5c161009b027e4d146edb5032a526487 This is from a runfo payload, overlaid with locally built checked jit. (built against the preview 4 branch). I can't get SPMI to record this. Not sure why.
|
Seems like profile data is awfully thin, only two counts. I know checked runtimes have very aggressive tiering behavior but this ought to be a release build. Odd. I cannot get the runfo repro to crash under SPMI. I have a full local build of aspnetcore that does crash, but I can't figure out if it is crashing the same way, and can't unwrap the layers of forking done by |
The dump definitely looks like we aren't properly accounting for the fact that compaction of previous loops can change which block is the lexical top block of subsequent loops:
Notice that the compaction done for
modifies the top most block for L02 to be I'll see if I can repro it locally and work on a fix. |
dnceng does not manage runfo but if you're sending some of these to Helix, you could get the payloads. |
Managed to get an SPMI collection on 64f7eca: repro-40858.zip |
Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix dotnet#101695
Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix #101695
Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix #101695
Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix #101695 Co-authored-by: Jakob Botsch Nielsen <[email protected]>
…01714) Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix dotnet#101695
…01714) Switch `FlowGraphNaturalLoop::GetLexicallyTopMostBlock` and `FlowGraphNaturalLoop::GetLexicallyBottomMostBlock` to more robust implementations that scan the basic block list forwards (and backwards) to find the boundary blocks. Fix dotnet#101695
This break is blocking the active Preview4 build.
We're seeing failures in dotnet/aspnetcore#55372 that look like the following:
The change causing this was introduced somewhere in this commit range: 5111fdc...64f7eca
Looking at the dump in windbg, we see the following, which points to JIT code:
It seems we have an invariant that isn't holding:
A dump can be obtained here, or here
The text was updated successfully, but these errors were encountered: