GNOME Bugzilla – Bug 658909
Crashes if account is changed before the callback tp_roomlist_create_channel_cb() happens
Last modified: 2011-09-16 08:33:21 UTC
The bug is related to the Join Room dialog. If you open the Join Room dialog and scroll fast through the account combobox, it crashes (it also crashes if you close the window). The reason is the account is changed before the callback tp_roomlist_create_channel_cb() happens. That callback is located in empathy-tp-roomlist.c:264. Holding a ref in _constructed and freeing it in the callback solves the problem.
I didn't manage to reproduce this crash. Could you please attach a stack trace?
Here is the stack trace. I reproduced it following these steps: -add two gtalk accounts, which enable the Room list pane inside the Join Room dialog -select an account -scrolling fast through the combobox list, without displaying the list Actually, I didn't find it by myself; xclaesse found it ;) Program received signal SIGSEGV, Segmentation fault. 0x08121503 in tp_roomlist_create_channel_cb (source=0x84c81c8, result=0x87350e0, user_data=0x872f050) at empathy-tp-roomlist.c:272 272 priv->channel = tp_account_channel_request_create_and_handle_channel_finish ( Missing separate debuginfos, use: debuginfo-install freetype-2.4.4-5.fc15.i686 gdbm-1.8.3-9.fc15.i686 glibc-2.14-5.i686 libICE-1.0.6-3.fc15.i686 libSM-1.2.0-2.fc15.i686 libX11-1.4.3-1.fc15.i686 libXau-1.0.6-2.fc15.i686 libXcomposite-0.4.3-2.fc15.i686 libXcursor-1.1.11-3.fc15.i686 libXdamage-1.1.3-2.fc15.i686 libXext-1.2.0-2.fc15.i686 libXfixes-5.0-1.fc15.i686 libXi-1.4.3-2.fc15.i686 libXinerama-1.1.1-2.fc15.i686 libXrandr-1.3.1-2.fc15.i686 libXrender-0.9.6-2.fc15.i686 libXt-1.1.0-1.fc15.i686 libcanberra-0.28-3.fc15.i686 libcanberra-gtk3-0.28-3.fc15.i686 libffi-3.0.9-2.fc15.i686 libgcc-4.6.0-10.fc15.i686 libicu-4.4.2-7.fc15.i686 libjpeg-turbo-1.1.1-1.fc15.i686 libogg-1.2.2-3.fc15.i686 libpng-1.2.46-1.fc15.i686 libselinux-2.0.99-4.fc15.i686 libstdc++-4.6.0-10.fc15.i686 libtdb-1.2.9-9.fc15.i686 libtool-ltdl-2.4-4.fc15.i686 libudev-167-4.fc15.i686 libuuid-2.19.1-1.4.fc15.i686 libvorbis-1.3.2-1.fc15.i686 libxcb-1.7-2.fc15.i686 nss-softokn-freebl-3.12.10-2.fc15.i686 sqlite-3.7.5-3.fc15.i686 zlib-1.2.5-3.fc15.i686 (gdb) bt
+ Trace 228460
Created attachment 196697 [details] [review] tp-roomlist: ensure that we stay alive during the create_and_handle_channel async call
Created attachment 196698 [details] [review] tp-roomlist: pass self as weak object to tp_cli_channel_type_room_list_call_list_rooms
+1
Attachment 196697 [details] pushed as e3ac854 - tp-roomlist: ensure that we stay alive during the create_and_handle_channel async call Attachment 196698 [details] pushed as 0fab2d2 - tp-roomlist: pass self as weak object to tp_cli_channel_type_room_list_call_list_rooms