Skip to content

Conversation

@kouvel
Copy link
Contributor

@kouvel kouvel commented Jun 2, 2021

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
@kouvel kouvel added this to the 6.0.0 milestone Jun 2, 2021
@kouvel kouvel requested review from jkotas and noahfalk June 2, 2021 04:06
@kouvel kouvel self-assigned this Jun 2, 2021
Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

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

Thanks

@kouvel kouvel changed the title [Preview 5] Fix assertion failure / crash in multi-core JIT [6.0 preview 5] Fix assertion failure / crash in multi-core JIT Jun 2, 2021
@mmitche
Copy link
Member

mmitche commented Jun 2, 2021

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

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

mmitche commented Jun 16, 2021

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

@adityapatwardhan
Copy link

@rjmholt as FYI.

@jkotas
Copy link
Member

jkotas commented Jun 16, 2021

Is there a workaround?

Avoid using multicore JIT temporily.

@adityapatwardhan
Copy link

@jkotas How can we disable that?

@daxian-dbw
Copy link
Contributor

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

@jkotas
Copy link
Member

jkotas commented Jun 16, 2021

Right. Also, AssemblyLoadContext.StartProfileOptimization.

@ghost ghost locked as resolved and limited conversation to collaborators Jul 16, 2021
Sign up for free to 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