Created attachment 16096 [details]
Backtrace of the warning
Running empathy with tp-glib 0.7.6
Filter: connection invalidated: Disconnected: reason 2
TpGroup: Channel invalidated: Disconnected: reason 2
TpGroup: finalize: 0xe66820
GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT (object)' failed
/usr/lib/bug-buddy/lt-empathy: No such file or directory.
I'm attaching the backtrace of the warning.
I think the problem is it emits "invalidated" signal and empathy drop all ref of the channel so it gets finalized. The channel shouldn't be used after the call of tp_proxy_invalidate().
OK, I think I see the problem. Hopefully I can add a regression test for this fairly easily, and the fix should be as simple as adding a ref to the TpProxy around each signal emission.
(It is specifically allowed to use a TpProxy after it has been invalidated - all API calls will fail with the same GError as the ->invalidated member of TpProxy, but there will be no assertions - so you don't necessarily need to be quite so careful to drop all references.)
(In reply to comment #2)
> OK, I think I see the problem. Hopefully I can add a regression test for this
> fairly easily, and the fix should be as simple as adding a ref to the TpProxy
> around each signal emission.
I've learned to use g_signal_connect_object() for this purpose, may that be helpful here as well?
Fixed in my branch http://monkey.collabora.co.uk/tp-glib-smcv-15644/
Fixed in darcs