Skip to content

[6.0 preview 5] Fix assertion failure / crash in multi-core JIT - #53574

Closed
kouvel wants to merge 2 commits into
dotnet:release/6.0-preview5from
kouvel:StopProfileFixPreview5
Closed

[6.0 preview 5] Fix assertion failure / crash in multi-core JIT#53574
kouvel wants to merge 2 commits into
dotnet:release/6.0-preview5from
kouvel:StopProfileFixPreview5

Conversation

@kouvel

@kouvelkouvel commented Jun 2, 2021

Copy link
Copy Markdown
Contributor

Customer impact

  • By default, the multi-core JIT timeout time for the recorder is 12 seconds. The timer is only used on Windows.
  • After a timeout, if the application exits, stops a profile, or starts another profile, the app crashes
  • Affects any Windows app that enables multi-core JIT

Regression?

  • Yes, from 6.0 preview 4

Testing

  • Manual test with a repro, added test to coreclr tests
  • PAL, coreclr, and libraries tests

Risk

Low:

  • The change stops profiling on timeout in the same way that it is stopped in all other cases
  • I'm not aware of any significant risks

- Port of #53573 to Preview 5
- When the recorder times out it doesn't actually stop profiling, but writes out the profile
- The app may later stop profiling, and then it tries to write the profile again
- PR #48326 fairly expected that the profile is only written once (some state is mutated)
- The non-timeout stop-profile path was also not stopping the timer
- Fixes#53014
@kouvelkouvel added this to the 6.0.0 milestone Jun 2, 2021
@kouvel
kouvel requested review from jkotas and noahfalkJune 2, 2021 04:06
@kouvelkouvel self-assigned this Jun 2, 2021

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@kouvelkouvel changed the title [Preview 5] Fix assertion failure / crash in multi-core JIT[6.0 preview 5] Fix assertion failure / crash in multi-core JITJun 2, 2021
@mmitche

Copy link
Copy Markdown
Member

I don't think this will make p5. We're past the point of new changes unless they are ship stoppers at this point.

@kouvelkouvel closed this Jun 2, 2021
@kouvel
kouvel deleted the StopProfileFixPreview5 branch June 2, 2021 22:22
@mmitche

Copy link
Copy Markdown
Member

@kouvel@jkotas, @adityapatwardhan is blocked by this (pulling preview 5 into powershell). Is there a workaround?

@adityapatwardhan

Copy link
Copy Markdown

@rjmholt as FYI.

@jkotas

Copy link
Copy Markdown
Member

Is there a workaround?

Avoid using multicore JIT temporily.

@adityapatwardhan

Copy link
Copy Markdown

@jkotas How can we disable that?

@daxian-dbw

Copy link
Copy Markdown
Contributor

@jkotas I presume that means we should avoid using ProfileOptimization.StartProfile in PowerShell, right? Anything else?

@jkotas

Copy link
Copy Markdown
Member

Right. Also, AssemblyLoadContext.StartProfileOptimization.

@ghostghost locked as resolved and limited conversation to collaborators Jul 16, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@kouvel@mmitche@adityapatwardhan@jkotas@daxian-dbw