GeezerVison is showing github.com — gh-117953: Track Extra Details in Global Extensions Cache by ericsnowcurrently · Pull Request #118532 · python/cpython
Conversation
ericsnowcurrently
commented
May 3, 2024
•
edited by bedevere-app
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
We have only been tracking each module's PyModuleDef. However, there are some problems with that. For example, in some cases we load single-phase init extension modules from def->m_base.m_init or def->m_base.m_copy, but if multiple modules share a def then we can end up with unexpected behavior.
With this change, we track the following:
PyModuleDef (same as before)
- for some modules, its init function or a copy of its
__dict__, but specific to that module
- whether it is a builtin/core module or a "dynamic" extension
- the interpreter (ID) that owns the cached
__dict__ (only if cached)
This also makes it easier to remember the module's kind (e.g. single-phase init) and if loading it previously failed, which I'm doing in another PR.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
SonicField
pushed a commit
to SonicField/cpython
that referenced
this pull request
May 8, 2024
…ongh-118532)
We have only been tracking each module's PyModuleDef. However, there are some problems with that. For example, in some cases we load single-phase init extension modules from def->m_base.m_init or def->m_base.m_copy, but if multiple modules share a def then we can end up with unexpected behavior.
With this change, we track the following:
* PyModuleDef (same as before)
* for some modules, its init function or a copy of its __dict__, but specific to that module
* whether it is a builtin/core module or a "dynamic" extension
* the interpreter (ID) that owns the cached __dict__ (only if cached)
This also makes it easier to remember the module's kind (e.g. single-phase init) and if loading it previously failed, which I'm doing separately.
|
We're getting python: Python/import.c:460: _get_module_index_from_def: Assertion `index > 0' failed. when trying to import ujson on 3.13, and git bisect points to this PR.
See ultrajson/ultrajson#629.
Does it sound like a CPython or ujson problem?
|
ericsnowcurrently reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Sorry for the delay. PyCon was a bit distracting. :) I'll take a look.
|
hugovk reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced May 25, 2024
ericsnowcurrently
added a commit
that referenced
this pull request
May 25, 2024
The assertion was added in gh-118532 but was based on the invalid assumption that PyState_FindModule() would only be called with an already-initialized module def. I've added a test to make sure we don't make that assumption again.
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
May 27, 2024
…ongh-119561)
The assertion was added in pythongh-118532 but was based on the invalid assumption that PyState_FindModule() would only be called with an already-initialized module def. I've added a test to make sure we don't make that assumption again.
(cherry picked from commit 0c5ebe1)
Co-authored-by: Eric Snow <[email protected]>
ericsnowcurrently
added a commit
that referenced
this pull request
May 27, 2024
…119561) (gh-119632)
The assertion was added in gh-118532 but was based on the invalid assumption that PyState_FindModule() would only be called with an already-initialized module def. I've added a test to make sure we don't make that assumption again.
(cherry picked from commit 0c5ebe1)
Co-authored-by: Eric Snow <[email protected]>
estyxx
pushed a commit
to estyxx/cpython
that referenced
this pull request
Jul 17, 2024
…ongh-119561)
The assertion was added in pythongh-118532 but was based on the invalid assumption that PyState_FindModule() would only be called with an already-initialized module def. I've added a test to make sure we don't make that assumption again.
This was referenced Sep 8, 2024
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
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.
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.
|