Something on my back
July 11, 2008
dear, all-knowing and all-powerful lazyweb;
what’s the reason why python segfaults ((yes, python segfaults — and it does inside pygobject)) with this error message:
TypeError: Cannot create a consistent method resolution order (MRO) for bases Container, Scriptable
when I’m trying to instantiate a python class inheriting from a C class that implements those two interfaces? just for the record:
- the interfaces have no colliding methods
- the python class is registering a GObject type
- the python class has no colliding method with either interfaces
I can point at the code or, if python-gobject/gtk maintainers are at GUADEC, I can show them right away. you can easily find me: I’m the one swearing at python.


July 11, 2008 at 4:15 pm
http://www.python.org/download/releases/2.3/mro/
July 11, 2008 at 6:25 pm
This usually happens if you have a define-object where you should have a define-interface in one of the .defs files. The current h2defs scanner cannot properly recognize interfaces.
July 11, 2008 at 7:41 pm
hehehe we’re having the exact same problem right now, embedding pyclutter in pygtk ….
Somehow, adding huge sleep calls (like 45s), at random places, sometimes “solves” the problem (that is if you don’t mind waiting 5 minutes for the app to boot
July 11, 2008 at 9:18 pm
@johan: nope – both interfaces are correctly defined.
July 12, 2008 at 7:41 pm
Sounds like: http://bugzilla.gnome.org/show_bug.cgi?id=538401