Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

jkotas
Copy link
Member

@jkotas jkotas commented Feb 9, 2021

Port #dotnet/runtime#45999 to release/3.1

Customer Impact

Once we move to the new MSVC toolset, we will see intermittent runtime crashes during GC without this fix.

The new MSVC toolset performs more optimizations that violate invariants in the low-level runtime code. This change is suppressing the optimization in a specific situation.

Testing

The fix was tested and merged in master. This is a port of the fix.

Risk

Master branch had this fix for some time now. Based on that the risk is low.

The C11 standard treats trivial infinite loops as undefined behavior and allows
compilers to optimize them out completely.

Add "volatile" on FC_NO_TAILCALL to defeat this optimization
@jkotas jkotas requested a review from trylek February 9, 2021 02:59
Copy link
Member

@trylek trylek left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Feb 9, 2021
@jeffschwMSFT jeffschwMSFT added this to the 3.1.x milestone Feb 9, 2021
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

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

Approved. We will take for consideration for 3.1.x

@leecow leecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Feb 9, 2021
@leecow leecow modified the milestones: 3.1.x, 3.1.14 Feb 9, 2021
@aik-jahoda aik-jahoda merged commit 192be6d into dotnet:release/3.1 Feb 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants