-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
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
GC may have inconsistent view of stacktop with deferred references #118926
Closed
Tracked by
#117139
Labels
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
type-bug
An unexpected behavior, bug, or error
Comments
This was referenced May 10, 2024
This was referenced Jul 3, 2024
markshannon
added a commit
that referenced
this issue
Jul 9, 2024
noahbkim
pushed a commit
to hudson-trading/cpython
that referenced
this issue
Jul 11, 2024
…erpreter generator (pythonGH-121496)
estyxx
pushed a commit
to estyxx/cpython
that referenced
this issue
Jul 17, 2024
…erpreter generator (pythonGH-121496)
colesbury
added a commit
to colesbury/cpython
that referenced
this issue
Aug 6, 2024
This automatically spills the results from `_PyStackRef_FromPyObjectNew` to the in-memory stack so that the deferred references are visible to the GC before we make any possibly escaping call. Co-authored-by: Ken Jin <kenjin@python.org>
colesbury
added a commit
that referenced
this issue
Aug 7, 2024
…2748) This automatically spills the results from `_PyStackRef_FromPyObjectNew` to the in-memory stack so that the deferred references are visible to the GC before we make any possibly escaping call. Co-authored-by: Ken Jin <kenjin@python.org>
blhsing
pushed a commit
to blhsing/cpython
that referenced
this issue
Aug 22, 2024
python#122748) This automatically spills the results from `_PyStackRef_FromPyObjectNew` to the in-memory stack so that the deferred references are visible to the GC before we make any possibly escaping call. Co-authored-by: Ken Jin <kenjin@python.org>
JacobCoffee
added
type-bug
An unexpected behavior, bug, or error
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
labels
Oct 1, 2024
hey @Fidget-Spinner is this good to close since the ref'd PRs are merged? |
Yup |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
type-bug
An unexpected behavior, bug, or error
In #118450, Sam pointed out that GC can occur at any
Py_DECREF
. With deferred references, we will need to traverse the object's stacks. The main problem is thatframe->stacktop
might not represent the true stacktop at a GC collection, becauseframe->stacktop
is not set in between opcodes.This requires either scanning the entire stack (not just up to stacktop), or deferring GC to safe points.
Linked PRs
The text was updated successfully, but these errors were encountered: