GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-117657: Fix data race in `_Py_IsImmortal` by mpage · Pull Request #118261 · python/cpython

Conversation

@mpage

@mpage mpage commented Apr 24, 2024 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

The load of ob_ref_local:

cpython/Include/object.h

Line 352 in 4b10e20

return (op->ob_ref_local == _Py_IMMORTAL_REFCNT_LOCAL);

races with stores (example):

cpython/Include/object.h

Line 883 in 4b10e20

_Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local);

Using a relaxed load is sufficient; stores to the field are relaxed.

  • Issue: Make TSAN tests pass with the GIL disabled in free-threaded builds #117657

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mpage
Fix data race in _Py_IsImmortal
18d376b
The load of `ob_ref_local`:

https://github.com/python/cpython/blob/4b10e209c76f9f36f8ae2e4d713b3a01591c1856/Include/object.h#L352

races with ([example](https://gist.github.com/mpage/7e2028b3ca811deb350f705bc3c737ca)) stores:

https://github.com/python/cpython/blob/4b10e209c76f9f36f8ae2e4d713b3a01591c1856/Include/object.h#L883

Using a relaxed load is sufficient; stores to the field are relaxed.
@mpage mpage added skip news topic-free-threading labels Apr 24, 2024
@mpage
mpage requested review from DinoV and colesbury April 24, 2024 23:52
@bedevere-app bedevere-app Bot mentioned this pull request Apr 24, 2024
Make TSAN tests pass with the GIL disabled in free-threaded builds #117657
Closed
@mpage
mpage marked this pull request as ready for review April 25, 2024 03:12
@bedevere-app bedevere-app Bot added the awaiting review label Apr 25, 2024
colesbury
colesbury approved these changes Apr 25, 2024
View reviewed changes
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting review labels Apr 25, 2024
@colesbury
colesbury merged commit f14e9f9 into python:main Apr 25, 2024
@bedevere-app bedevere-app Bot removed the awaiting merge label Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@colesbury colesbury colesbury approved these changes
@DinoV DinoV Awaiting requested review from DinoV

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip news topic-free-threading

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@mpage @colesbury
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.