After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 662211 - contact_list_store_contact_active_cb may be called after the destruction of the store
contact_list_store_contact_active_cb may be called after the destruction of t...
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: Multi User Chat
3.2.x
Other Linux
: High critical
: ---
Assigned To: empathy-maint
empathy-maint
Depends on:
Blocks:
 
 
Reported: 2011-10-19 16:11 UTC by Tanuva
Modified: 2011-10-24 14:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backtrace of the crash (699 bytes, text/plain)
2011-10-20 16:52 UTC, Tanuva
  Details
Backtrace of the crash (with glib2 debug symbols) (573 bytes, text/plain)
2011-10-21 11:37 UTC, Tanuva
  Details
contact_list_store_dispose: unset the timer ids (1.04 KB, patch)
2011-10-21 13:13 UTC, Guillaume Desmottes
committed Details | Review
ensure that contact_list_store_contact_active_cb isn't called after the store destruction (3.42 KB, patch)
2011-10-21 13:13 UTC, Guillaume Desmottes
committed Details | Review

Description Tanuva 2011-10-19 16:11:20 UTC
The chat window gets expanded horizontally to fit the freshly typed message (in one line) instead of continuing it on a new line if the contact list is visible in that chat window. Once the contact list has been disabled using the menu bar, the entry widget works as expected.

While investigating this, I found another problem but I'm not sure if they're related, so I don't open another report for it:
First, I got the following error log only when I typed into the text entry /right after/ disabling the chat window's contact list and the chat window vanished. I could simply reopen it though. Then, the problem also occurred once when I typed a very long test message after waiting a bit after disabling the contact list.

mcd-DEBUG: 19.10.2011 17:57:47.824481: _mcd_handler_map_set_handler_crashed: /org/freedesktop/Telepathy/Connection/gabble/jabber/tanuva_40jabber_2eblacklight_2dit_2ecom_2fd_2da318/MucChannel1 lost its handler :1.167
mcd-DEBUG: 19.10.2011 17:57:47.824534: _mcd_handler_map_set_handler_crashed: Closing channel /org/freedesktop/Telepathy/Connection/gabble/jabber/tanuva_40jabber_2eblacklight_2dit_2ecom_2fd_2da318/MucChannel1
mcd-DEBUG: 19.10.2011 17:57:47.830059: on_members_changed: called (actor 0, reason 0, self_handle 2, conn_self_handle 1)
mcd-DEBUG: 19.10.2011 17:57:47.830108: on_members_changed: removed member 2
mcd-DEBUG: 19.10.2011 17:57:47.861365: proxy_destroyed: Channel proxy invalidated: tp_errors 29: (no message provided)
mcd-DEBUG: 19.10.2011 17:57:47.861413: mcd_channel_abort: 0x15dc980
mcd-DEBUG: 19.10.2011 17:57:47.861445: _mcd_channel_set_status: 0x15dc980, 7
mcd-DEBUG: 19.10.2011 17:57:47.861490: _mcd_mission_set_parent: child = 0x15dc980, parent = (nil)
mcd-DEBUG: 19.10.2011 17:57:47.861531: _mcd_operation_remove_mission: removing mission: 0x15dc980
mcd-DEBUG: 19.10.2011 17:57:47.861565: _mcd_channel_dispose: 0x15dc980 (is disposed = 0)
mcd-DEBUG: 19.10.2011 17:57:47.861599: _mcd_mission_dispose: mission disposed 0x15dc980
mcd-DEBUG: 19.10.2011 17:57:47.861635: _mcd_request_dispose: 0x15cf4d0
mcd-DEBUG: 19.10.2011 17:57:47.861675: _mcd_request_finalize: 0x15cf4d0
mcd-DEBUG: 19.10.2011 17:57:47.861711: _mcd_mission_finalize: mission finalized 0x15dc980

This is very strange. Could someone try and see if I'm just the only one? On #gnome3, no one had heard of the problem.
Comment 1 Guillaume Desmottes 2011-10-20 09:19:40 UTC
The expand problem is bug #587441.

The other one looks like a crash. Could you please provide a stack trace?
Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 2 Tanuva 2011-10-20 15:55:48 UTC
I've tried getting a stack trace by running /usr/bin/empathy in gdb. Once I reproduce the bug (gets more difficult now, I have absolutely no idea what might trigger it except something with the contact list), gdm doesn't notice a crash and the contact list stays open. Its just the chat window (with multiple tabs open: 1on1 chats, jabber/irc chatrooms) that disappears.
What do I need to track to see what happens in there?
Comment 3 Guillaume Desmottes 2011-10-20 16:07:18 UTC
Yeah that's the empathy-chat process, not empathy: /usr/lib/empathy/empathy-chat
Comment 4 Tanuva 2011-10-20 16:52:15 UTC
Created attachment 199553 [details]
Backtrace of the crash
Comment 5 Guillaume Desmottes 2011-10-21 11:08:48 UTC
could you please install empathy-dbg libglib2.0-0-dbg libgtk-3-0-dbg and get a new trace? Yours doesn't have debug symbols.
Comment 6 Tanuva 2011-10-21 11:37:06 UTC
Created attachment 199625 [details]
Backtrace of the crash (with glib2 debug symbols)

Sorry, I hoped having empathy debug symbols would be enough. Now also with glib2 symbols.
Comment 7 Guillaume Desmottes 2011-10-21 13:13:29 UTC
Created attachment 199639 [details] [review]
contact_list_store_dispose: unset the timer ids
Comment 8 Guillaume Desmottes 2011-10-21 13:13:32 UTC
Created attachment 199640 [details] [review]
ensure that contact_list_store_contact_active_cb isn't called after the store destruction

This is an exact port of similar code from empathy-individual-store.
Comment 9 Danielle Madeley 2011-10-21 21:57:48 UTC
Review of attachment 199639 [details] [review]:

++
Comment 10 Danielle Madeley 2011-10-21 21:59:12 UTC
Review of attachment 199640 [details] [review]:

++
Comment 11 Guillaume Desmottes 2011-10-24 08:13:13 UTC
Attachment 199639 [details] pushed as d9c10ab - contact_list_store_dispose: unset the timer ids
Attachment 199640 [details] pushed as 2783147 - ensure that contact_list_store_contact_active_cb isn't called after the store destruction