Bug 15644 - Warning when disconnected due to network error
Summary: Warning when disconnected due to network error
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-glib (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL: http://monkey.collabora.co.uk/tp-glib...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-22 01:52 UTC by Xavier Claessens
Modified: 2008-05-01 08:38 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Backtrace of the warning (7.72 KB, text/plain)
2008-04-22 01:52 UTC, Xavier Claessens
Details

Description Xavier Claessens 2008-04-22 01:52:36 UTC
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
aborting...
/usr/lib/bug-buddy/lt-empathy: No such file or directory.

I'm attaching the backtrace of the warning.
Comment 1 Xavier Claessens 2008-04-22 01:54:06 UTC
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().
Comment 2 Simon McVittie 2008-04-22 02:02:41 UTC
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.)
Comment 3 Mikhail Zabaluev 2008-04-22 02:04:59 UTC
(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?
Comment 4 Simon McVittie 2008-05-01 04:09:50 UTC
Fixed in my branch http://monkey.collabora.co.uk/tp-glib-smcv-15644/
Comment 5 Simon McVittie 2008-05-01 05:14:01 UTC
Fixed in darcs


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.