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

[3.13] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-124865) #125204

Merged
merged 2 commits into from
Nov 12, 2024

Conversation

miss-islington
Copy link
Contributor

@miss-islington miss-islington commented Oct 9, 2024

Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.

This is an un-revert of gh-124646 that then addresses the Py_TRACE_REFS
failures identified by gh-124785.
(cherry picked from commit f2cb399)

Co-authored-by: Eric Snow [email protected]

…ythongh-124865)

Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.

This is an un-revert of pythongh-124646 that then addresses the Py_TRACE_REFS
failures identified by pythongh-124785.
(cherry picked from commit f2cb399)

Co-authored-by: Eric Snow <[email protected]>
@vstinner
Copy link
Member

Please don't merge until the TraceRefs regression is fixed: #124865 (comment)

@nascheme
Copy link
Member

I think this can be merged now with GH-125709 applied on top or squashed into it.

…ers (pythongh-125709)

They used to be shared, before 3.12.  Returning to sharing them resolves a failure on Py_TRACE_REFS builds.
@encukou encukou merged commit 02cd3ce into python:3.13 Nov 12, 2024
39 checks passed
@encukou encukou added the needs backport to 3.12 bug and security fixes label Nov 13, 2024
@miss-islington-app
Copy link

Thanks @miss-islington for the PR, and @encukou for merging it 🌮🎉.. I'm working now to backport this PR to: 3.12.
🐍🍒⛏🤖

@miss-islington-app
Copy link

Sorry, @miss-islington and @encukou, I could not cleanly backport this to 3.12 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 02cd3ce0f201df98939c65bcba8445bb0b70717b 3.12

@encukou encukou removed the needs backport to 3.12 bug and security fixes label Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants