Skip to content
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

[release/6.0] Fix bug where we reference the entry #0 in the pinned plug queue #63351

Merged
merged 1 commit into from
Jan 6, 2022

Conversation

cshung
Copy link
Member

@cshung cshung commented Jan 4, 2022

Backport of #60966 to release/6.0

We reference entry #0 in the pinned plug queue even if there are no pinned plugs at all and thus the pinned plug queue contains left-over data from the mark phase.

Customer Impact

Customers reported frequent crashes when they upgraded their services to .NET 6 with Server GC.

Testing

Customers have tried and reported repeatedly and independently that their crashing services have no more crashes after the fix is applied. @PeterSolMS can comment on the testing he did when he checked in the initial fix.

Risk

Low. If we did have a pinned plug, the fix does nothing. If we do have a pinned plug, this fix does the right thing.

…net#60966)

We reference entry #0 in the pinned plug queue even if there are no pinned plugs at all and thus the pinned plug queue contains left-over data from the mark phase.

The fix is to initialize saved_pinned_plug_index to a value that is invalid as a pinned plug queue index, and only use saved_pinned_plug_index as an index if  is valid.
@ghost ghost assigned cshung Jan 4, 2022
@ghost
Copy link

ghost commented Jan 4, 2022

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

Issue Details

WIP

Author: cshung
Assignees: -
Labels:

area-GC-coreclr

Milestone: -

@cshung cshung changed the title Fix bug where we reference the entry #0 in the pinned plug queue (#60966) Fix bug where we reference the entry #0 in the pinned plug queue Jan 5, 2022
@jeffschwMSFT jeffschwMSFT changed the title Fix bug where we reference the entry #0 in the pinned plug queue [release/6.0] Fix bug where we reference the entry #0 in the pinned plug queue Jan 5, 2022
@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Jan 5, 2022
@jeffschwMSFT jeffschwMSFT added this to the 6.0.x milestone Jan 5, 2022
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 should take for consideration in 6.0.x

@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jan 5, 2022
@jeffschwMSFT jeffschwMSFT modified the milestones: 6.0.x, 6.0.2 Jan 5, 2022
@jeffschwMSFT
Copy link
Member

Approved offline

@jeffschwMSFT jeffschwMSFT merged commit dc6a86d into dotnet:release/6.0 Jan 6, 2022
@cshung cshung deleted the public/backport-pin-fix branch January 6, 2022 20:22
@ghost ghost locked as resolved and limited conversation to collaborators Feb 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-GC-coreclr Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants