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 660586 - setting to third party Adium theme leads to crash
setting to third party Adium theme leads to crash
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: Chat themes
unspecified
Other Linux
: Normal normal
: 3.4
Assigned To: empathy-maint
Depends on:
Blocks:
 
 
Reported: 2011-09-30 18:43 UTC by Matěj Cepl
Modified: 2011-10-11 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
theme that crashes empathy (218.82 KB, application/x-gzip)
2011-10-04 17:37 UTC, Ionut Biru
  Details
Use default variant if we can't find any variants (1.04 KB, patch)
2011-10-11 21:02 UTC, Guillaume Desmottes
committed Details | Review
preferences: don't display variants checkbox if there is no variant (2.19 KB, patch)
2011-10-11 21:02 UTC, Guillaume Desmottes
committed Details | Review

Description Matěj Cepl 2011-09-30 18:43:12 UTC
When switching theme to my own Adium theme (http://www.adiumxtras.com/index.php?a=xtras&xtra_id=7049) which used to work perfectly well on previous versions of Empathy, /usr/libexec/empathy-chat crashes immediately:

mitmanek:~ $ gdb /usr/libexec/empathy-chat 
GNU gdb (GDB) Fedora (7.3.50.20110722-7.fc16)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/empathy-chat...Reading symbols from /usr/lib/debug/usr/libexec/empathy-chat.debug...done.
done.
(gdb) run
Starting program: /usr/libexec/empathy-chat 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: the debug information found in "/usr/lib/debug//usr/lib64/libclutter-gst-1.0.so.0.314.0.debug" does not match "/usr/lib64/libclutter-gst-1.0.so.0" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/libclutter-gst-1.0.so.0.314.0.debug" does not match "/usr/lib64/libclutter-gst-1.0.so.0" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/libmx-1.0.so.2.299.0.debug" does not match "/usr/lib64/libmx-1.0.so.2" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/libmx-1.0.so.2.299.0.debug" does not match "/usr/lib64/libmx-1.0.so.2" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/libgnome-desktop-3.so.2.0.1.debug" does not match "/usr/lib64/libgnome-desktop-3.so.2" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/libgnome-desktop-3.so.2.0.1.debug" does not match "/usr/lib64/libgnome-desktop-3.so.2" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/gio/modules/libgvfsdbus.so.debug" does not match "/usr/lib64/gio/modules/libgvfsdbus.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/gio/modules/libgvfsdbus.so.debug" does not match "/usr/lib64/gio/modules/libgvfsdbus.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/libgvfscommon.so.0.0.0.debug" does not match "/usr/lib64/libgvfscommon.so.0" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/libgvfscommon.so.0.0.0.debug" does not match "/usr/lib64/libgvfscommon.so.0" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so.debug" does not match "/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so.debug" does not match "/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib64/gio/modules/libdconfsettings.so.debug" does not match "/usr/lib64/gio/modules/libdconfsettings.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib64/gio/modules/libdconfsettings.so.debug" does not match "/usr/lib64/gio/modules/libdconfsettings.so" (CRC mismatch).

[New Thread 0x7fffec751700 (LWP 32101)]
[New Thread 0x7fffebf50700 (LWP 32102)]
[New Thread 0x7fffeb74f700 (LWP 32106)]
[New Thread 0x7fffeae30700 (LWP 32107)]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000472550 in adium_info_dup_path_for_variant (info=<optimized out>, 
    variant=0x9fc730 "WhiteBackground") at empathy-theme-adium.c:1751
1751			variant = g_ptr_array_index (variants, 0);
Missing separate debuginfos, use: debuginfo-install adwaita-gtk3-theme-3.2.0.2-1.fc16.x86_64 clutter-gst-1.3.14-2.fc16.x86_64 dconf-0.10.0-1.fc16.x86_64 gnome-desktop3-3.2.0-1.fc16.x86_64 gvfs-1.10.0-1.fc16.x86_64 libicu-4.6-2.fc16.x86_64 libmx-1.3.1-2.fc16.x86_64 librsvg2-2.34.1-1.fc16.x86_64 libxslt-1.1.26-8.fc16.x86_64
(gdb) thread apply all backtrace

Thread 1 (Thread 0x7ffff40d49c0 (LWP 32086))

  • #0 adium_info_dup_path_for_variant
    at empathy-theme-adium.c line 1751
  • #1 theme_adium_load_template
    at empathy-theme-adium.c line 255
  • #2 theme_adium_constructed
    at empathy-theme-adium.c line 1496
  • #3 g_object_newv
  • #4 g_object_new_valist
    at gobject.c line 1610
  • #5 g_object_new
    at gobject.c line 1325
  • #6 theme_manager_create_adium_view
    at empathy-theme-manager.c line 373
  • #7 empathy_theme_manager_create_view
    at empathy-theme-manager.c line 458
  • #8 chat_create_ui
    at empathy-chat.c line 2963
  • #9 empathy_chat_init
    at empathy-chat.c line 3328
  • #10 g_type_create_instance
    at gtype.c line 1885
  • #11 g_object_constructor
    at gobject.c line 1629
  • #12 g_object_newv
    at gobject.c line 1493
  • #13 g_object_new_valist
    at gobject.c line 1610
  • #14 g_object_new
    at gobject.c line 1325
  • #15 process_tp_chat
    at empathy-chat-manager.c line 161
  • #16 handle_channels
    at empathy-chat-manager.c line 227
  • #17 handle_channels
    at simple-handler.c line 219
  • #18 handle_channels_context_prepare_cb
    at base-client.c line 2225
  • #19 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #20 context_check_prepare
    at handle-channels-context.c line 554
  • #21 context_check_prepare
    at handle-channels-context.c line 753
  • #22 hcc_channel_prepare_cb
  • #23 g_simple_async_result_complete
    at gsimpleasyncresult.c line 749
  • #24 complete_in_idle_cb
    at gsimpleasyncresult.c line 761
  • #25 g_main_dispatch
    at gmain.c line 2441
  • #26 g_main_context_dispatch
    at gmain.c line 3011
  • #27 g_main_context_iterate
    at gmain.c line 3089
  • #28 g_main_loop_run
    at gmain.c line 3297
  • #29 gtk_main
    at gtkmain.c line 1362
  • #30 g_application_run
    at gapplication.c line 1323
  • #31 main
    at empathy-chat.c line 160

Comment 1 Ionut Biru 2011-10-04 17:36:47 UTC
i have the same problem. attaching the the theme that crashes empathy

0x080f90ed in adium_info_dup_path_for_variant (info=0x85cf728, variant=0x85ea458 "Left") at empathy-theme-adium.c:1751
1751	empathy-theme-adium.c: No such file or directory.
	in empathy-theme-adium.c
(gdb) bt full
  • #0 adium_info_dup_path_for_variant
    at empathy-theme-adium.c line 1751
  • #1 theme_adium_load_template
    at empathy-theme-adium.c line 255
  • #2 theme_adium_constructed
    at empathy-theme-adium.c line 1496
  • #3 g_object_newv
    from /usr/lib/libgobject-2.0.so.0
  • #4 g_object_new_valist
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_object_new
    from /usr/lib/libgobject-2.0.so.0
  • #6 empathy_theme_adium_new
    at empathy-theme-adium.c line 1619
  • #7 theme_manager_create_adium_view
    at empathy-theme-manager.c line 373
  • #8 empathy_theme_manager_create_view
    at empathy-theme-manager.c line 458
  • #9 preferences_preview_theme_changed_cb
    at empathy-preferences.c line 719
  • #10 empathy_preferences_init
    at empathy-preferences.c line 1227
  • #11 g_type_create_instance
    from /usr/lib/libgobject-2.0.so.0
  • #12 ??
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_object_newv
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_object_new
    from /usr/lib/libgobject-2.0.so.0
  • #15 empathy_preferences_new
    at empathy-preferences.c line 1292
  • #16 empathy_main_window_show_preferences
    at empathy-main-window.c line 1857
  • #17 main_window_edit_preferences_cb
    at empathy-main-window.c line 1875
  • #18 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #20 ??
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #23 _gtk_action_emit_activate
    at gtkaction.c line 799
  • #24 gtk_action_activate
    at gtkaction.c line 829
  • #25 gtk_real_menu_item_activate
    at gtkmenuitem.c line 1833
  • #26 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #27 ??
    from /usr/lib/libgobject-2.0.so.0
  • #28 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #29 ??
    from /usr/lib/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #32 gtk_widget_activate
    at gtkwidget.c line 6163
  • #33 gtk_menu_shell_activate_item
    at gtkmenushell.c line 1428
  • #34 gtk_menu_shell_button_release
    at gtkmenushell.c line 827
  • #35 gtk_menu_button_release
    at gtkmenu.c line 3476
  • #36 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #37 ??
    from /usr/lib/libgobject-2.0.so.0
  • #38 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #39 ??
    from /usr/lib/libgobject-2.0.so.0
  • #40 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #41 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #42 gtk_widget_event_internal
    at gtkwidget.c line 6132
  • #43 gtk_widget_event
    at gtkwidget.c line 5848
  • #44 gtk_propagate_event
    at gtkmain.c line 2614
  • #45 gtk_main_do_event
    at gtkmain.c line 1889
  • #46 _gdk_event_emit
    at gdkevents.c line 71
  • #47 gdk_event_source_dispatch
    at gdkeventsource.c line 360
  • #48 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #49 ??
    from /usr/lib/libglib-2.0.so.0
  • #50 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #51 gtk_main
    at gtkmain.c line 1362
  • #52 gtk_application_run_mainloop
    at gtkapplication.c line 115
  • #53 g_application_run
    from /usr/lib/libgio-2.0.so.0
  • #54 main
    at empathy.c line 838

Comment 2 Ionut Biru 2011-10-04 17:37:55 UTC
Created attachment 198234 [details]
theme that crashes empathy
Comment 3 Guillaume Desmottes 2011-10-11 21:02:03 UTC
Created attachment 198813 [details] [review]
Use default variant if we can't find any variants

We use to crash here trying to get the first element of an empty GPtrArray.
Comment 4 Guillaume Desmottes 2011-10-11 21:02:11 UTC
Created attachment 198814 [details] [review]
preferences: don't display variants checkbox if there is no variant
Comment 5 Guillaume Desmottes 2011-10-11 21:23:35 UTC
(In reply to comment #2)
> Created an attachment (id=198234) [details]
> theme that crashes empathy

I found another bug with that theme btw: bug #661495
Comment 6 Xavier Claessens 2011-10-11 21:31:32 UTC
Review of attachment 198813 [details] [review]:

::: libempathy-gtk/empathy-theme-adium.c
@@ +1758,3 @@
+	if (variants->len == 0)
+		return g_strdup ("main.css");
+

The comment above is for the loop's fallback not this one. So it should be moved after.
Comment 7 Xavier Claessens 2011-10-11 21:31:49 UTC
The rest looks good.
Comment 8 Guillaume Desmottes 2011-10-11 21:47:37 UTC
Merged to master and 2.32.

Attachment 198813 [details] pushed as e487926 - Use default variant if we can't find any variants
Attachment 198814 [details] pushed as 434aec0 - preferences: don't display variants checkbox if there is no variant