Currently, BaseConnection::self_handle is set to 0 just before status-changed(Disconnected, …) is emitted, and in 0.17.16 it will change just after status-changed(Disconnected, …) is emitted to allow ChannelManagers listening for that signal to use the self_handle.
Ideally, the self_handle would be valid until the BaseConnection is disposed, but CMs may wrongly depend on it being 0 by the time the dispose method for their subclass of TpBaseConnection is called. (For instance, Gabble asserts that it is 0.) We should audit and fix all known connection managers, then move the unreffing to dispose.
Note that my Wockyfied Gabble sometimes crashes in the vcard/test-save-alias-to-vcard.py test because of this.
Gabble doesn't assert on that since 71a1f76146f752e8a007cf9a62a73e9785304587 so it shouldn't crash since Gabble 0.7.9
Salut, Idle and Haze seem fine.
telepathy-sofiasip still has the assertion. Will propose a patch removing it.
(In reply to comment #2)
> telepathy-sofiasip still has the assertion. Will propose a patch removing it.
Fix for this bug http://git.collabora.co.uk/?p=user/cassidy/telepathy-glib;a=shortlog;h=refs/heads/self_handle-17751
It can't be merged until tp-sofiasip has been fixed. We should also document this change in NEWS and say which versions of Gabble and tp-sofiasip that will break.
telepathy-sofiasip 0.5.17 has been released with this assertion removed.
Fixed in 0.7.35