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 leezu, rhettinger, tim.peters
Date 2020-02-28.03:38:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1582861128.64.0.677214004368.issue39778@roundup.psfhosted.org>
In-reply-to
Content
Thanks for the succinct example!  Although you don't need the print() ;-)

I can confirm this crashes the same way under a current master build (albeit on Windows 64-bit).

gc is calculating how many references in the current generation are accounted for by intra-generation references, and gc's visit_decref() is getting called back by odictobject.c's odict_traverse(), on line

    Py_VISIT(od->od_weakreflist);

gc has found a second pointer to od->od_weakreflist, which is more than its refcount (1) claims exist.

Python's weakref implementation gives me headaches, so I'm adding Raymond to the nosy list under the hope the problem will be obvious to him.
History
Date User Action Args
2020-02-28 03:38:48tim.peterssetrecipients: + tim.peters, rhettinger, leezu
2020-02-28 03:38:48tim.peterssetmessageid: <1582861128.64.0.677214004368.issue39778@roundup.psfhosted.org>
2020-02-28 03:38:48tim.peterslinkissue39778 messages
2020-02-28 03:38:48tim.peterscreate