GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Stable ABI doesn't work with PySide (Shiboken) on Python 3.12 · Issue #118997 · python/cpython Closed Labels 3.12only security fixesonly security fixestype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error DescriptionBug reportPEP 683 "Immortal Objects, Using a Fixed Refcount" announces that the stable ABI is not affected: https://peps.python.org/pep-0683/#stable-abi Well, in practice, it is affected. Shiboken used by PySide runs the following code at startup: PyObject *type = (PyObject*)&PyType_Type; PyObject *bases = PyObject_GetAttrString(type, "__bases__"); ... Py_DECREF(bases);
The problem occurs at Python exit, when static types are cleared by static inline void clear_tp_bases(PyTypeObject *self) { if (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { ... assert(_Py_IsImmortal(self->tp_bases)); _Py_ClearImmortal(self->tp_bases); ... } Py_CLEAR(self->tp_bases); } with: /* _Py_ClearImmortal() should only be used during runtime finalization. */ static inline void _Py_ClearImmortal(PyObject *op) { if (op) { assert(op->ob_refcnt == _Py_IMMORTAL_REFCNT); op->ob_refcnt = 1; Py_DECREF(op); } } #define _Py_ClearImmortal(op) \ do { \ _Py_ClearImmortal(_PyObject_CAST(op)); \ op = NULL; \ } while (0) The condition IMO Fedora downstream issue: https://bugzilla.redhat.com/show_bug.cgi?id=2279088 Linked PRsActivity
MetadataMetadataAssigneesLabels3.12only security fixesonly security fixestype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |