This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author tim.peters
Recipients Mark.Shannon, benjamin.peterson, christian.heimes, jdemeyer, larry, lukasz.langa, methane, miss-islington, nascheme, ned.deily, pablogsal, petr.viktorin, pitrou, tim.peters, vstinner
Date 2019-10-04.03:40:37
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1570160438.43.0.957480685974.issue38006@roundup.psfhosted.org>
In-reply-to
Content
My understanding is that the CFFI types at issue don't even have Py_TPFLAGS_HAVE_GC.  They're completely invisible to gc.  As Armin says in the CFFI issue report (linked to earlier), he never got the impression from the docs that he needed to implement anything related to cyclic gc.

Since Armin is extremely capable, conscientious, and reasonable, that tells me our docs are lacking.

It was intended at the start that the worst that could happen if a type ignored the gc protocols was that memory may leak.  That story changed radically when weakrefs with callbacks were added - but nobody knew it at the time because the weakref design gave no thought to cyclic gc.  It's been driven by segfaults ever since ;-)

We're doing all we can to keep non-cooperating code "working", and will continue to do so.  But who knows?  The next segfault may be one we can't hack around.  It's fundamentally insane to expect any gc to work perfectly when it may be blind to what the object graph _is_.
History
Date User Action Args
2019-10-04 03:40:38tim.peterssetrecipients: + tim.peters, nascheme, pitrou, vstinner, larry, christian.heimes, benjamin.peterson, ned.deily, petr.viktorin, methane, lukasz.langa, Mark.Shannon, jdemeyer, pablogsal, miss-islington
2019-10-04 03:40:38tim.peterssetmessageid: <1570160438.43.0.957480685974.issue38006@roundup.psfhosted.org>
2019-10-04 03:40:38tim.peterslinkissue38006 messages
2019-10-04 03:40:37tim.peterscreate