[pygtk] Occasional gobject assertion errors

Johan Dahlin jdahlin at async.com.br
Thu Mar 16 03:37:47 WST 2006


skip at pobox.com wrote:
> 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?

Do you use threads?

Can you try using the latest 2.8.x version, it may already have been fixed
in there.

I think the only way to solve this is to write an isolated testcase.

-- 
Johan Dahlin <jdahlin at async.com.br>
Async Open Source


More information about the pygtk mailing list