Message362862
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. |
|
Date |
User |
Action |
Args |
2020-02-28 03:38:48 | tim.peters | set | recipients:
+ tim.peters, rhettinger, leezu |
2020-02-28 03:38:48 | tim.peters | set | messageid: <1582861128.64.0.677214004368.issue39778@roundup.psfhosted.org> |
2020-02-28 03:38:48 | tim.peters | link | issue39778 messages |
2020-02-28 03:38:48 | tim.peters | create | |
|