Skip to content

Use-after-free in PyObject_CallFinalizer when __del__ changes __class__ #159101

Open

Description

@yet-another-agent

Bug description

PyObject_CallFinalizer() keeps a borrowed pointer to the object's original type across tp_finalize(self). A Python __del__ method can change self.__class__; cyclic GC can then free the original heap type before PyObject_CallFinalizer() reads tp->tp_flags again, causing a heap use-after-free.

This reproduces on current main in a release-mode AddressSanitizer build. The same PoC also reproduces without the explicit gc.collect() call when ordinary allocations trigger collection.

import gc

class Survivor:
    pass

def make():
    class Temporal:
        def __del__(self):
            self.__class__ = Survivor
            gc.collect()
    return Temporal()

victim = make()
del victim

The relevant sequence is:

PyTypeObject *tp = Py_TYPE(self);
tp->tp_finalize(self);       // __del__ changes self.__class__; GC frees tp
if (_PyType_IS_GC(tp)) {     // reads the freed type
    _PyGC_SET_FINALIZED(self);
}

Build and run:

$ ac_cv_header_libintl_h=no ../cpython/configure \
    --with-address-sanitizer --without-pymalloc \
    CFLAGS='-O1 -g -fno-omit-frame-pointer'
$ make -j8
$ ASAN_OPTIONS=detect_leaks=0 ./python.exe poc.py
Complete AddressSanitizer report
=================================================================
==31580==ERROR: AddressSanitizer: heap-use-after-free on address 0x61900003c138 at pc 0x000104e9e790 bp 0x00016b160b20 sp 0x00016b160b18
READ of size 8 at 0x61900003c138 thread T0
==31580==WARNING: external symbolizer didn't start up correctly!
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104e9e78c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f207d4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104eac858"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104e58f0c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105060590"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105062f44"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505d88c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051b21d4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051ac4a0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051abb14"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1052199d0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10521847c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218c44"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218df4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x181ed44e0"
    #0 0x000104e9e78c in PyObject_CallFinalizerFromDealloc+0x230 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10020278c)
    #1 0x000104f207d4 in subtype_dealloc+0x310 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1002847d4)
    #2 0x000104eac858 in py_dealloc+0x230 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100210858)
    #3 0x000104e58f0c in _PyDict_DelItem_KnownHash_LockHeld+0x280 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1001bcf0c)
    #4 0x000105060590 in _PyEval_StoreName+0x3c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c4590)
    #5 0x000105062f44 in _PyEval_EvalFrameDefault+0x2764 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c6f44)
    #6 0x00010505d88c in PyEval_EvalCode+0x370 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c188c)
    #7 0x0001051b21d4 in run_mod+0x488 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005161d4)
    #8 0x0001051ac4a0 in _PyRun_SimpleFile+0x47c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005104a0)
    #9 0x0001051abb14 in _PyRun_AnyFile+0x98 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10050fb14)
    #10 0x0001052199d0 in pymain_run_file+0x25c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057d9d0)
    #11 0x00010521847c in Py_RunMain+0xb30 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057c47c)
    #12 0x000105218c44 in pymain_main+0x2c4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cc44)
    #13 0x000105218df4 in Py_BytesMain+0xd4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cdf4)
    #14 0x000181ed44e0 in start+0x1b4c (/usr/lib/dyld:arm64e+0x204e0)

0x61900003c138 is located 184 bytes inside of 1008-byte region [0x61900003c080,0x61900003c470)
freed by thread T0 here:
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x106359368"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104eac858"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051147f0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10521be94"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104da51ec"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505e8ac"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10506fbfc"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505df18"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104da569c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f36368"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104e9e63c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f207d4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104eac858"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104e58f0c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105060590"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105062f44"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505d88c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051b21d4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051ac4a0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051abb14"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1052199d0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10521847c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218c44"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218df4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x181ed44e0"
    #0 0x000106359368 in free+0x7c (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:arm64e+0x41368)
    #1 0x000104eac858 in py_dealloc+0x230 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100210858)
    #2 0x0001051147f0 in gc_collect_main+0x167c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1004787f0)
    #3 0x00010521be94 in gc_collect+0x1f0 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057fe94)
    #4 0x000104da51ec in PyObject_Vectorcall+0x88 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1001091ec)
    #5 0x00010505e8ac in _Py_VectorCallInstrumentation_StackRefSteal+0x1c4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c28ac)
    #6 0x00010506fbfc in _PyEval_EvalFrameDefault+0xf41c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003d3bfc)
    #7 0x00010505df18 in _PyEval_Vector+0x3e4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c1f18)
    #8 0x000104da569c in PyObject_CallOneArg+0x130 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10010969c)
    #9 0x000104f36368 in slot_tp_finalize+0x12c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10029a368)
    #10 0x000104e9e63c in PyObject_CallFinalizerFromDealloc+0xe0 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10020263c)
    #11 0x000104f207d4 in subtype_dealloc+0x310 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1002847d4)
    #12 0x000104eac858 in py_dealloc+0x230 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100210858)
    #13 0x000104e58f0c in _PyDict_DelItem_KnownHash_LockHeld+0x280 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1001bcf0c)
    #14 0x000105060590 in _PyEval_StoreName+0x3c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c4590)
    #15 0x000105062f44 in _PyEval_EvalFrameDefault+0x2764 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c6f44)
    #16 0x00010505d88c in PyEval_EvalCode+0x370 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c188c)
    #17 0x0001051b21d4 in run_mod+0x488 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005161d4)
    #18 0x0001051ac4a0 in _PyRun_SimpleFile+0x47c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005104a0)
    #19 0x0001051abb14 in _PyRun_AnyFile+0x98 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10050fb14)
    #20 0x0001052199d0 in pymain_run_file+0x25c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057d9d0)
    #21 0x00010521847c in Py_RunMain+0xb30 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057c47c)
    #22 0x000105218c44 in pymain_main+0x2c4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cc44)
    #23 0x000105218df4 in Py_BytesMain+0xd4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cdf4)
    #24 0x000181ed44e0 in start+0x1b4c (/usr/lib/dyld:arm64e+0x204e0)

previously allocated by thread T0 here:
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x106359274"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f054ac"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f05250"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f11044"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104f0f020"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104da3ddc"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104da39b0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105050238"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104da51ec"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505e8ac"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10506fbfc"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10505d88c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051b21d4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051ac4a0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1051abb14"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x1052199d0"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x10521847c"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218c44"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x105218df4"
==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x181ed44e0"
    #0 0x000106359274 in malloc+0x78 (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:arm64e+0x41274)
    #1 0x000104f054ac in _PyType_AllocNoTrack+0xfc (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1002694ac)
    #2 0x000104f05250 in PyType_GenericAlloc+0x1c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100269250)
    #3 0x000104f11044 in type_new+0xc88 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100275044)
    #4 0x000104f0f020 in type_call+0x1bc (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100273020)
    #5 0x000104da3ddc in _PyObject_MakeTpCall+0x1a8 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x100107ddc)
    #6 0x000104da39b0 in _PyObject_VectorcallDictTstate+0x2a4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1001079b0)
    #7 0x000105050238 in builtin___build_class__+0xad4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003b4238)
    #8 0x000104da51ec in PyObject_Vectorcall+0x88 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1001091ec)
    #9 0x00010505e8ac in _Py_VectorCallInstrumentation_StackRefSteal+0x1c4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c28ac)
    #10 0x00010506fbfc in _PyEval_EvalFrameDefault+0xf41c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003d3bfc)
    #11 0x00010505d88c in PyEval_EvalCode+0x370 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1003c188c)
    #12 0x0001051b21d4 in run_mod+0x488 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005161d4)
    #13 0x0001051ac4a0 in _PyRun_SimpleFile+0x47c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x1005104a0)
    #14 0x0001051abb14 in _PyRun_AnyFile+0x98 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10050fb14)
    #15 0x0001052199d0 in pymain_run_file+0x25c (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057d9d0)
    #16 0x00010521847c in Py_RunMain+0xb30 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057c47c)
    #17 0x000105218c44 in pymain_main+0x2c4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cc44)
    #18 0x000105218df4 in Py_BytesMain+0xd4 (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10057cdf4)
    #19 0x000181ed44e0 in start+0x1b4c (/usr/lib/dyld:arm64e+0x204e0)

==31580==WARNING: Can't read from symbolizer at fd 3
==31580==WARNING: atos failed to symbolize address "0x104e9e78c"
SUMMARY: AddressSanitizer: heap-use-after-free (/Users/jackfromeast/Documents/Codex/2026-10-09/c/work/cpython-c42-build/python.exe:arm64+0x10020278c) in PyObject_CallFinalizerFromDealloc+0x230
Shadow bytes around the buggy address:
  0x61900003be80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x61900003bf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
  0x61900003bf80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x61900003c000: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x61900003c080: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x61900003c100: fd fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd
  0x61900003c180: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x61900003c200: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x61900003c280: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x61900003c300: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x61900003c380: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==31580==ABORTING

CPython versions tested on

Current main at 0ec3aee262b03276a18aeb23cb9957e1b57c9d08: AddressSanitizer heap-use-after-free (exit code 134).

Operating systems tested on

macOS 26.6 (arm64)

Output from running 'python -VV' on the command line

Python 3.16.0a0 (heads/main-dirty:0ec3aee26, Oct 10 2026, 00:11:48) [Clang 21.0.0 (clang-2100.3.34.2)]

Linked PRs

Activity

  1. sergey-miryanov commented on Oct 10, 2026

    @sergey-miryanov
    Contributor

    I will take this if you don't mind.

  2. picnixz commented on Oct 10, 2026

    @picnixz
    Member

    Incref the type before callimg the finalizer may result in non-trivial performance loss. I honestly wonder whether this is really worth changing it but at least we should benchmark the change on the FT build.

  3. added
    type-bugAn unexpected behavior, bug, or error
    interpreter-core(Objects, Python, Grammar, and Parser dirs)
    on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

interpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions