Comment 14 for bug 503727

Revision history for this message
Barry Warsaw (barry) wrote :

Here's a little more information, as it happens to me too. Note that it seems to work fine on Karmic, but crashes every time in Lucid.

So I set a pdb breakpoint in GtkUserInterface.find_and_bind_widgets(). The problem under Lucid is that o.get_property('name') always returns the empty string, which means all objects returned from builder.get_objects() get bound to the empty string in the self.widgets dictionary. Of course this means that you end up with just one entry in self.widgets, where the empty string is mapped to the last object returned from builder.get_objects(). This means of course that self.widgets['unused_treeview'] will throw the KeyError.

Interestingly enough, I traced the same method in the same branch on Karmic, and here everything succeeds. The o.get_property('name') in find_and_bind_widgets() appears to return the object names just fine, so all is hunky dory.

I don't know enough about PyGtk to provide much additional information, but it sure smells like a bug in some lower-level API. Perhaps .get_property() has been broken in Lucid? I will spend a little more time debugging this and trying to learn something about PyGtk, and will update this bug report with any additional information. I do agree though that this is a critical bug because it prevents janitor from even starting.