[pygtk] Occasional gobject assertion errors

skip at pobox.com skip at pobox.com
Thu Mar 16 02:46:12 WST 2006


At work one of our main applications uses gobject signals (though no gtk
stuff for this particular beast).  One particular signal is successfully
emitted thousands of times over a several day period, then mysteriously
raises an assertion error:

    GLib-GObject-CRITICAL **: g_closure_unref: assertion `closure->ref_count > 0' failed

then dumps core.  The beginning of the traceback looks like:

    (gdb) bt
    #0  0x09579419 in ?? ()
    #1  0xfeb998c6 in g_closure_invoke () from /opt/app/gnome-2.6//lib/libgobject-2.0.so.0
    #2  0xfebae7f9 in signal_emit_unlocked_R () from /opt/app/gnome-2.6//lib/libgobject-2.0.so.0
    #3  0xfebace14 in g_signal_emitv () from /opt/app/gnome-2.6//lib/libgobject-2.0.so.0
    #4  0xfec0078f in pygobject_emit () from /opt/lang/python/lib/python2.3/site-packages/3rdParty/gtk-2.6/gobject.so
    #5  0x080fac78 in PyCFunction_Call (func=0x89fd72c, arg=0x88b380c, kw=0x0) at ../Objects/methodobject.c:108 
    #6  0x080abdd2 in call_function (pp_stack=0x804588c, oparg=2) at ../Python/ceval.c:3439
    #7  0x080aa2b6 in eval_frame (f=0x89ae78c) at ../Python/ceval.c:2116
    ...

I can't see anything in our code that would suggest any object has been
freed.  We're using Gtk 2.6.8 and PyGtk 2.6.1.  We recently switched from
Gtk 2.4 and don't recall seeing this problem with it.  I don't know where to
look for Gtk/PyGtk bug reports, but Googling by a couple of us didn't turn
up anything useful.

Does this look familiar to anyone?  Is it maybe a bug fixed in a later
release?

Thx,

-- 
Skip Montanaro - skip at pobox.com - http://www.mojam.com/
      "The values  to which people cling  most stubbornly  under inappropriate
      conditions are those  values that were  previously  the source  of their
      greatest triumphs over adversity." -- Jared Diamond in "Collapse"


More information about the pygtk mailing list