]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.12] gh-111777: Fix assertion errors on incorrectly still-tracked GC object destruc...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 12 Nov 2023 00:44:24 +0000 (01:44 +0100)
committerGitHub <noreply@github.com>
Sun, 12 Nov 2023 00:44:24 +0000 (00:44 +0000)
commit13ca1f02a409a58ba86cd8247eb3e31dd21a81cf
tree2a03982d36be03f9bb0ac109dc226426984140ea
parent1afc4dc3e6b95d4a23cdcbe2ebebe1d0ba09f0f4
[3.12] gh-111777: Fix assertion errors on incorrectly still-tracked GC object destruction (GH-111778) (#111989)

gh-111777: Fix assertion errors on incorrectly still-tracked GC object destruction (GH-111778)

In PyObject_GC_Del, in Py_DEBUG mode, when warning about GC objects that
were not properly untracked before starting destruction, take care to
untrack the object _before_ warning, to avoid triggering a GC run and
causing the problem the code tries to warn about. Also make sure to save and
restore any pending exceptions, which the warning would otherwise clobber or
trigger an assertion error on.
(cherry picked from commit ce6a533c4bf1afa3775dfcaee5fc7d5c15a4af8c)

Co-authored-by: T. Wouters <thomas@python.org>
Modules/gcmodule.c