[Bug 37079] New: tp_base_connection_change_status can have a side-effect before hitting a return_if_fail
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue May 10 19:53:26 CEST 2011
https://bugs.freedesktop.org/show_bug.cgi?id=37079
Summary: tp_base_connection_change_status can have a
side-effect before hitting a return_if_fail
Product: Telepathy
Version: 0.13
Platform: Other
OS/Version: All
Status: ASSIGNED
Severity: normal
Priority: medium
Component: tp-glib
AssignedTo: simon.mcvittie at collabora.co.uk
ReportedBy: simon.mcvittie at collabora.co.uk
QAContact: telepathy-bugs at lists.freedesktop.org
+++ This bug was initially created as a clone of Bug #37078 +++
We've seen some Gabble crash-dumps with these criticals logged (in the
configuration where they were reported, they're non-fatal):
May 5 13:04:07 (none) telepathy-gabble[23476]: GLIB CRITICAL ** tp-glib -
tp_base_connection_add_interfaces: assertion `self->status !=
TP_CONNECTION_STATUS_DISCONNECTED' failed
May 5 13:04:07 (none) telepathy-gabble[23476]: GLIB CRITICAL ** tp-glib -
tp_base_connection_change_status: assertion `prev_status ==
TP_CONNECTION_STATUS_CONNECTING' failed
and then an abort caused by this assertion failure:
"(base->status == TP_CONNECTION_STATUS_DISCONNECTED) ||
(base->status == TP_INTERNAL_CONNECTION_STATUS_NEW)"
The reason that assertion should be OK is that GabbleConnectionManager holds a
ref to every GabbleConnection, from before the time it moves to CONNECTED until
after the time it moves to DISCONNECTED. The life-cycle is NEW -> CONNECTING ->
CONNECTED -> DISCONNECTED, except that you can also become DISCONNECTED from
any earlier state.
It looks as though the two criticals I quoted can only happen if:
* set_status_to_connected is called when we already DISCONNECTED
* which requires decrement_waiting_connected when we already DISCONNECTED
s_s_t_c should bail out early if we already DISCONNECTED; that's a Gabble bug
(Bug #37078).
Meanwhile, telepathy-glib's tp_base_connection_change_status() can critical()
but already have had its side-effect of changing the status to CONNECTED:
that's a telepathy-glib bug (this one).
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the telepathy-bugs
mailing list