Public bug reported: PyGObject traverses its closures in tp_traverse, but the lifetime of the closures is tied to the lifetime of the GObject and not the wrapper. This confuses the Python GC when it sees a ref cycle and tries to break it up with tp_clear. Since tp_clear will not invalidate the closure and only invalidate the Python wrapper the closure callback gets called with the now cleared/invalid object.
This bug make python gtk programs to segfault randomly. Patch available here: https://bugzilla.gnome.org/show_bug.cgi?id=731501 Should apply to 3.24 or be easily backported: one line patch adding a if statement. ** Affects: pygobject (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1728461 Title: Python GC destroys PyGObject with external references Status in pygobject package in Ubuntu: New Bug description: PyGObject traverses its closures in tp_traverse, but the lifetime of the closures is tied to the lifetime of the GObject and not the wrapper. This confuses the Python GC when it sees a ref cycle and tries to break it up with tp_clear. Since tp_clear will not invalidate the closure and only invalidate the Python wrapper the closure callback gets called with the now cleared/invalid object. This bug make python gtk programs to segfault randomly. Patch available here: https://bugzilla.gnome.org/show_bug.cgi?id=731501 Should apply to 3.24 or be easily backported: one line patch adding a if statement. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1728461/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp