-
-
Notifications
You must be signed in to change notification settings - Fork 30.5k
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
GH-101696: invalidate type version tag in _PyStaticType_Dealloc
#101697
Conversation
Misc/NEWS.d/next/Core and Builtins/2023-02-08-17-13-31.gh-issue-101696.seJhTt.rst
Outdated
Show resolved
Hide resolved
…e-101696.seJhTt.rst
Thanks @kumaraditya303 for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11. |
Thanks @kumaraditya303 for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11. |
Sorry, @kumaraditya303, I could not cleanly backport this to |
GH-101722 is a backport of this pull request to the 3.11 branch. |
…_Dealloc` (pythonGH-101697). (cherry picked from commit d9de079) Co-authored-by: Kumar Aditya <[email protected]>
This makes no sense to me. Static types should be immutable; their version number should never change. See #101603 |
It is still the case but when the interpreter is initialized multiple times then the type still has the same old version tag and can cause assertion failures. Note that the type cache is per interp now and is cleared on every cycle. See https://github.com/python/cpython/actions/runs/4112993949/jobs/7098592004 as an example. |
I don't think that this PR fixes the root problem, although it almost certainly no worse than what we had before. What assertions fails? "Can cause assertion failures" doesn't tell me anything. When you say "the interpreter" how does this handle sub-interpreters? @ericsnowcurrently might have thoughts on this. |
See the GH Action run that Kumar linked to for an example. I'll quote it for you:
This is from |
As @kumaraditya303 mentioned in gh-101696, subinterpreters will be dealt with via gh-95795. |
* main: (82 commits) pythongh-101670: typo fix in PyImport_ExtendInittab() (python#101723) pythonGH-99293: Document that `Py_TPFLAGS_VALID_VERSION_TAG` shouldn't be used. (#pythonGH-101736) no-issue: Add Dong-hee Na as the cjkcodecs codeowner (pythongh-101731) pythongh-101678: Merge math_1_to_whatever() and math_1() (python#101730) pythongh-101678: refactor the math module to use special functions from c11 (pythonGH-101679) pythongh-85984: Remove legacy Lib/pty.py code. (python#92365) pythongh-98831: Use opcode metadata for stack_effect() (python#101704) pythongh-101283: Version was just released, so should be changed in 3.11.3 (pythonGH-101719) pythongh-101283: Fix use of unbound variable (pythonGH-101712) pythongh-101283: Improved fallback logic for subprocess with shell=True on Windows (pythonGH-101286) pythongh-101277: Port more itertools static types to heap types (python#101304) pythongh-98831: Modernize CALL and family (python#101508) pythonGH-101696: invalidate type version tag in `_PyStaticType_Dealloc` (python#101697) pythongh-100221: Fix creating dirs in `make sharedinstall` (pythonGH-100329) pythongh-101670: typo fix in PyImport_AppendInittab() (pythonGH-101672) pythongh-101196: Make isdir/isfile/exists faster on Windows (pythonGH-101324) pythongh-101614: Don't treat python3_d.dll as a Python DLL when checking extension modules for incompatibility (pythonGH-101615) pythongh-100933: Improve `check_element` helper in `test_xml_etree` (python#100934) pythonGH-101578: Normalize the current exception (pythonGH-101607) pythongh-47937: Note that Popen attributes are read-only (python#93070) ...
_PyStaticType_Dealloc
does not invalidate type version tag #101696