hp-systray segfault on quit
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HPLIP |
Fix Committed
|
Undecided
|
Unassigned | ||
hplip (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: hplip
This bug is derived from #497877. In that bug, a reviewer of my patch determined that hp-systray (sometimes) segfaults when you quit the tray app. I determined that the bug was also present in hplip without my patch.
Essentially, the python c module in pyqt can become... lets charitably call it "confused"... when python destroys objects in an order it isn't expecting. So, when exiting hplip, python's garbage collection runs (or doesn't) and triggers the edge case (or doesn't).
There are many discussions of this on the pyqt mailing lists, and each time the suggestion was to do one of the following:
1) instantiate your objects in a different order, until you find an order which doesn't cause the problem
2) figure out which object(s) is causing the issue, and explicitly kill it before you call QApplication.quit()
This message on the topic is somewhat enlightening: http://<email address hidden>
Related branches
Changed in hplip (Ubuntu): | |
status: | New → In Progress |
This one-line patch implements option #2 above.