Skip to content

[release/8.0-staging] [GC] Fix freelist crash - don't modify during check-only operation#104992

Merged
markples merged 1 commit intorelease/8.0-stagingfrom
backport/pr-104876-to-release/8.0-staging
Jul 25, 2024
Merged

[release/8.0-staging] [GC] Fix freelist crash - don't modify during check-only operation#104992
markples merged 1 commit intorelease/8.0-stagingfrom
backport/pr-104876-to-release/8.0-staging

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Jul 16, 2024

Backport of #104876 to release/8.0-staging

/cc @markples

Customer Impact

  • Customer reported
  • Found internally

GC can crash in region code if GC.RegisterForFullGCNotification is used.

Regression

  • Yes
  • No

Regression is part of general move to regions, but specific code was introduced in #48691

Testing

The behavior is very difficult to repro and likely hadn't occurred before because it relies on a race condition, a region allocation failing, and GC.RegisterForFullGCNotification be used. I built a custom GC that always triggers the region allocation failure path and was able to repro and verify the fix in GCPerfSim.

Risk

Low: only impacts GC.RegisterForFullGCNotification path; only impacts notifications; may cause a notification for a full GC to be skipped, but only in a case where no other reasons for full gc occur -and- the code would be subject to the race condition and crash

@ghost ghost added the area-GC-coreclr label Jul 16, 2024
@dotnet-policy-service
Copy link
Contributor

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

@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Jul 16, 2024
@jeffschwMSFT jeffschwMSFT added this to the 8.0.x milestone Jul 16, 2024
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.

lgtm. we will take for consideration in 8.0.x

@jeffschwMSFT jeffschwMSFT added the Servicing-approved Approved for servicing release label Jul 23, 2024
@jeffschwMSFT jeffschwMSFT modified the milestones: 8.0.x, 8.0.9 Jul 23, 2024
@jeffschwMSFT jeffschwMSFT removed the Servicing-consider Issue for next servicing release review label Jul 23, 2024
@markples markples merged commit 9b70cf8 into release/8.0-staging Jul 25, 2024
@jkotas jkotas deleted the backport/pr-104876-to-release/8.0-staging branch July 27, 2024 19:30
@github-actions github-actions bot locked and limited conversation to collaborators Aug 27, 2024
@rbhanda rbhanda modified the milestones: 8.0.9, 8.0.10 Oct 7, 2024
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.

3 participants