Bug 16307

Summary: tp_connection_got_interfaces_cb: assertion failed: (self->priv->introspect_needed == NULL)
Product: Telepathy Reporter: Alban Crequy <alban.crequy>
Component: tp-glibAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: bugreport.txt
stack

Description Alban Crequy 2008-06-11 05:21:14 UTC
I've got this assertion, crashing Empathy:

** tp-glib:ERROR:(connection.c:252):tp_connection_got_interfaces_cb: assertion failed: (self->priv->introspect_needed == NULL)

I don't know how to reproduce it. It happened only 1 time some time after I get connected to a gtalk, jabber and salut account. I use telepathy-glib head and empathy head versions.

The stack is in the attached file.

The last logs are:

(empathy:19110): tp-glib-DEBUG: tp_channel_got_interfaces_cb: - org.freedesktop.Telepathy.Channel.Interface.Group
(empathy:19110): tp-glib-DEBUG: tp_channel_got_interfaces_cb: 0x2501960: channel ready
(empathy:19110): tp-glib-DEBUG: tp_connection_got_status_cb: 0x2502620
(empathy:19110): tp-glib-DEBUG: tp_connection_got_status_cb: 0x2502620: Initial status is 0
(empathy:19110): tp-glib-DEBUG: tp_connection_status_changed: 0x2502620: -1 -> 0 because 0
(empathy:19110): tp-glib-DEBUG: tp_connection_got_interfaces_cb: 0x2502420: Introspected interfaces
(empathy:19110): tp-glib-DEBUG: tp_proxy_borrow_interface_by_id: 0x2502420: org.freedesktop.Telepathy.Connection.Interface.Aliasing DBusGProxy is 0x25056c0
(empathy:19110): tp-glib-DEBUG: tp_connection_got_interfaces_cb: 0x2502420: Introspected interfaces
**
** tp-glib:ERROR:(connection.c:252):tp_connection_got_interfaces_cb: assertion failed: (self->priv->introspect_needed == NULL)
Comment 1 Alban Crequy 2008-06-11 05:22:02 UTC
Created attachment 17054 [details]
bugreport.txt
Comment 2 Alban Crequy 2008-06-20 03:54:48 UTC
Created attachment 17249 [details]
stack

Bug reproduced with a different backtrace. It happened when I disabled the network in nm-applet.
Comment 3 Alban Crequy 2008-06-25 09:37:25 UTC
I have the explanation for the bug :-)

1. Mission Control calls the D-Bus method Connect on the connection object.
2. Connection Manager connects and sends the D-Bus signal StatusChanged to Empathy.
3. In the TpConnection constructor, Empathy call the D-Bus method GetStatus on the connection object.
4. Empathy receives the D-Bus signal StatusChanged sent in step 2:

(empathy:19783): tp-glib-DEBUG: tp_connection_status_changed: 0x2615d00: -1 -> 0 because 1
(empathy:19783): tp-glib-DEBUG: tp_connection_status_changed: Connection changed to connected 0x2615d00

5. Connection Manager receives the D-Bus method GetStatus sent in step 3.
6. Connection Manager replies and Empathy receives the reply:

(empathy:19783): tp-glib-DEBUG: tp_connection_got_status_cb: 0x2615d00
(empathy:19783): tp-glib-DEBUG: tp_connection_got_status_cb: 0x2615d00: Initial status is 0
(empathy:19783): tp-glib-DEBUG: tp_connection_status_changed: 0x2615d00: 0 -> 0 because 0
(empathy:19783): tp-glib-DEBUG: tp_connection_status_changed: Connection changed to connected 0x2615d00

So the introspection is started twice by tp_connection_status_changed() in steps 4 and 6.

Comment 4 Alban Crequy 2008-07-01 09:55:45 UTC
A regression test and a fix have been merged in telepathy-glib:

http://lists.freedesktop.org/archives/telepathy-commits/2008-July/000872.html

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.