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 605689 - SIGSEGV crash when joining a IRC room
SIGSEGV crash when joining a IRC room
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: Multi User Chat
2.29.x
Other Linux
: Normal critical
: ---
Assigned To: empathy-maint
Depends on: 604628
Blocks:
 
 
Reported: 2009-12-29 19:20 UTC by Felix Kaser
Modified: 2011-08-29 10:12 UTC
See Also:
GNOME target: 2.30.x
GNOME version: ---


Attachments
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/crash-join-muc-605689 (4.21 KB, patch)
2010-01-11 16:01 UTC, Guillaume Desmottes
committed Details | Review

Description Felix Kaser 2009-12-29 19:20:27 UTC
steps to reproduce:
- open accounts-dialog
- create a new irc account
- wait until the account is connected
 ** I experienced at this point bug #605685 **
- try to join a room

expected outcome:
actually join the room

actual outcome:
many criticals and a crash

backtrace:
(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_theme_lookup_icon: assertion `icon_name != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed

(empathy:3922): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed

Program received signal SIGSEGV, Segmentation fault.
0x080e260e in empathy_dispatcher_join_muc (connection=0x824f150, 
    roomname=0x84dae20 "#empathy", callback=0, user_data=0x0)
    at empathy-dispatcher.c:1542
1542	  connection_data->outstanding_requests = g_list_prepend
(gdb) bt
  • #0 empathy_dispatcher_join_muc
    at empathy-dispatcher.c line 1542
  • #1 new_chatroom_dialog_join
    at empathy-new-chatroom-dialog.c line 667
  • #2 new_chatroom_dialog_response_cb
    at empathy-new-chatroom-dialog.c line 232
  • #3 IA__g_cclosure_marshal_VOID__INT
    at /build/buildd/glib2.0-2.22.3/gobject/gmarshal.c line 216
  • #4 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #5 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 3247
  • #6 IA__g_signal_emit_valist
  • #7 IA__g_signal_emit
  • #8 IA__gtk_dialog_response
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkdialog.c line 928
  • #9 IA__g_cclosure_marshal_VOID__VOID
    at /build/buildd/glib2.0-2.22.3/gobject/gmarshal.c line 77
  • #10 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #11 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 3247
  • #12 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 2980
  • #13 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 3037
  • #14 IA__gtk_button_clicked
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkbutton.c line 1111
  • #15 gtk_button_finish_activate
  • #16 gtk_button_key_release
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkbutton.c line 1636
  • #17 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmarshalers.c line 84
  • #18 g_type_class_meta_marshal
    at /build/buildd/glib2.0-2.22.3/gobject/gclosure.c line 878
  • #19 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 3285
  • #21 IA__g_signal_emit_valist
  • #22 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.3/gobject/gsignal.c line 3037
  • #23 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkwidget.c line 4767
  • #24 IA__gtk_propagate_event
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmain.c line 2383
  • #25 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmain.c line 1622
  • #26 gdk_event_dispatch
    at /build/buildd/gtk+2.0-2.18.3/gdk/x11/gdkevents-x11.c line 2369
  • #27 g_main_dispatch
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 1960
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2513
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2591
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2799
  • #31 IA__gtk_main
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmain.c line 1218
  • #32 main
    at empathy.c line 1050

Comment 1 Guillaume Desmottes 2010-01-06 14:45:34 UTC
That seems to be a similar problem than bug #604628. Newly created account/connections are never added to the connections hash table.

Let's fix this bug once bug #604628 as we'll probably reuse the same idea.
Comment 2 Guillaume Desmottes 2010-01-11 16:01:59 UTC
Created attachment 151171 [details] [review]
http://git.collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/crash-join-muc-605689

 libempathy/empathy-dispatcher.c |   81 +++++++++++++++++++++++++++++++++++---
 1 files changed, 74 insertions(+), 7 deletions(-)
Comment 3 Felix Kaser 2010-01-11 16:46:43 UTC
Review of attachment 151171 [details] [review]:

looks good, the crashers need a bug for its own I guess!
Comment 4 Guillaume Desmottes 2010-01-11 16:55:36 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.