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.12] gh-105699: Fix an Interned Strings Crasher (gh-106930) #106963

Merged
merged 1 commit into from
Jul 21, 2023

Commits on Jul 21, 2023

  1. pythongh-105699: Fix an Interned Strings Crasher (pythongh-106930)

    A static (process-global) str object must only have its "interned" state cleared when no longer interned in any interpreters.  They are the only ones that can be shared by interpreters so we don't have to worry about any other str objects.
    
    We trigger clearing the state with the main interpreter, since no other interpreters may exist at that point and _PyUnicode_ClearInterned() is only called during interpreter finalization.
    
    We do not address here the fact that a string will only be interned in the first interpreter that interns it.  In any subsequent interpreters str.state.interned is already set so _PyUnicode_InternInPlace() will skip it.  That needs to be addressed separately from fixing the crasher.
    (cherry picked from commit 87e7cb0)
    
    Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
    ericsnowcurrently authored and miss-islington committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    34cac1e View commit details
    Browse the repository at this point in the history