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 692105 - empathy-3.6.2-1.fc18: items_delete_cb: Process /usr/bin/empathy-accounts was killed by signal 11
empathy-3.6.2-1.fc18: items_delete_cb: Process /usr/bin/empathy-accounts was ...
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: General
3.6.x
Other Linux
: Normal normal
: ---
Assigned To: empathy-maint
empathy-maint
Depends on:
Blocks:
 
 
Reported: 2013-01-19 21:34 UTC by Brian Pepple
Modified: 2013-08-08 07:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Crash Backtrace (23.93 KB, text/plain)
2013-01-19 21:34 UTC, Brian Pepple
  Details
live_search_unmap: check if priv->hook_widget is not NULL (912 bytes, patch)
2013-03-11 15:55 UTC, Guillaume Desmottes
committed Details | Review
irc-network-chooser-dialog: disconnect live search signals in dispose (2.29 KB, patch)
2013-03-11 15:55 UTC, Guillaume Desmottes
committed Details | Review
irc-network-chooser-dialog: break live search references cycle (1.07 KB, patch)
2013-03-11 15:55 UTC, Guillaume Desmottes
committed Details | Review
Don't dereference a NULL error (1.18 KB, patch)
2013-08-07 17:29 UTC, Emilio Pozuelo Monfort
accepted-commit_now Details | Review
Don't dereference a NULL error (1.04 KB, patch)
2013-08-08 07:34 UTC, Emilio Pozuelo Monfort
committed Details | Review

Description Brian Pepple 2013-01-19 21:34:34 UTC
Created attachment 233903 [details]
Crash Backtrace

Description of problem:
-How did this problem happen ?

Select account -> Edit Connection Parameters
Click on advanced section, just open it, do nothing   
Open Network -> Choose IRC freenode network 
Edit freenode, select ssl for all ports
Close Select and Apply


-How can it be reproduced
Always


Version-Release number of selected component:
empathy-3.6.2-1.fc18

Additional info:
backtrace_rating: 4
cmdline:        /usr/bin/empathy-accounts
crash_function: items_delete_cb
executable:     /usr/bin/empathy-accounts
kernel:         3.6.7-5.fc18.x86_64
remote_result:  NOTFOUND
uid:            1000
var_log_messages: Nov 28 22:33:12 boulder abrt[1575]: Saved core dump of pid 1547 (/usr/bin/empathy-accounts) to /var/spool/abrt/ccpp-2012-11-28-22:33:11-1547 (57196544 bytes)

Truncated backtrace:
Thread no. 1 (10 frames)
 #0 items_delete_cb at empathy-keyring.c:671
 #1 g_simple_async_result_complete at gsimpleasyncresult.c:775
 #2 on_delete_searched at secret-methods.c:1609
 #3 g_simple_async_result_complete at gsimpleasyncresult.c:775
 #4 on_search_items_complete at secret-paths.c:309
 #5 g_simple_async_result_complete at gsimpleasyncresult.c:775
 #6 reply_cb at gdbusproxy.c:2632
 #7 g_simple_async_result_complete at gsimpleasyncresult.c:775
 #8 g_dbus_connection_call_done at gdbusconnection.c:5339
 #9 g_simple_async_result_complete at gsimpleasyncresult.c:775
Comment 1 Brian Pepple 2013-01-19 21:35:21 UTC
Original bug: https://bugzilla.redhat.com/show_bug.cgi?id=881434
Comment 2 Guillaume Desmottes 2013-03-11 15:28:07 UTC
First warning : 


(lt-empathy-accounts:8812): Gtk-CRITICAL **: gtk_tree_model_filter_refilter: assertion `GTK_IS_TREE_MODEL_FILTER (filter)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff48b6bc6 in g_logv (log_domain=0x7ffff67ee5db "Gtk", log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x7ffff493e28c "%s: assertion `%s' failed", args=0x7fffffff9228) at gmessages.c:974
974			G_BREAKPOINT ();
Missing separate debuginfos, use: debuginfo-install cheese-libs-3.6.2-1.fc18.x86_64 clutter-gst2-1.9.92-1.fc18.x86_64 flac-1.2.1-10.fc18.x86_64 gnome-online-accounts-3.6.2-2.fc18.x86_64 gnutls-2.12.23-1.fc18.x86_64 gsm-1.0.13-7.fc18.x86_64 gstreamer1-plugins-bad-free-1.0.5-1.fc18.x86_64 json-c-0.10-2.fc18.x86_64 libasyncns-0.8-4.fc18.x86_64 libgee06-0.6.6.1-1.fc18.x86_64 libgudev1-197-1.fc18.2.x86_64 libnotify-0.7.5-3.fc18.x86_64 libsndfile-1.0.25-4.fc18.x86_64 libtasn1-2.14-1.fc18.x86_64 libxkbfile-1.0.8-2.fc18.x86_64 libzeitgeist-0.3.18-3.fc18.x86_64 systemd-libs-197-1.fc18.2.x86_64 tcp_wrappers-libs-7.6-70.fc18.x86_64 telepathy-mission-control-5.14.0-2.fc18.x86_64
(gdb) bt
  • #0 g_logv
    at gmessages.c line 974
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 gtk_tree_model_filter_refilter
    at gtktreemodelfilter.c line 4274
  • #4 search_text_notify_cb
    at empathy-irc-network-chooser-dialog.c line 469
  • #5 g_cclosure_marshal_VOID__PARAM
    at gmarshal.c line 1042
  • #6 g_closure_invoke
    at gclosure.c line 777
  • #7 signal_emit_unlocked_R
    at gsignal.c line 3566
  • #8 g_signal_emit_valist
    at gsignal.c line 3314
  • #9 g_signal_emit
    at gsignal.c line 3370
  • #10 g_object_dispatch_properties_changed
    at gobject.c line 1042
  • #11 g_object_notify_by_spec_internal
    at gobject.c line 1136
  • #12 g_object_notify
    at gobject.c line 1178
  • #13 live_search_text_changed
    at empathy-live-search.c line 307
  • #14 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #15 g_closure_invoke
    at gclosure.c line 777
  • #16 signal_emit_unlocked_R
    at gsignal.c line 3566
  • #17 g_signal_emit_valist
    at gsignal.c line 3314
  • #18 g_signal_emit_by_name
    at gsignal.c line 3407
  • #19 end_change
    at gtkentry.c line 2709
  • #20 gtk_entry_set_text
    at gtkentry.c line 7235
  • #21 live_search_unmap
    at empathy-live-search.c line 501
  • #22 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #23 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #24 _g_closure_invoke_va
    at gclosure.c line 840
  • #25 g_signal_emit_valist
    at gsignal.c line 3225
  • #26 g_signal_emit
    at gsignal.c line 3370
  • #27 gtk_widget_unmap
    at gtkwidget.c line 4389
  • #28 gtk_box_forall
    at gtkbox.c line 1865
  • #29 gtk_container_forall
    at gtkcontainer.c line 2047
  • #30 gtk_container_unmap
    at gtkcontainer.c line 3282
  • #31 g_cclosure_marshal_VOID__VOIDv
  • #32 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #33 _g_closure_invoke_va
    at gclosure.c line 840
  • #34 g_signal_emit_valist
    at gsignal.c line 3225
  • #35 g_signal_emit
    at gsignal.c line 3370
  • #36 gtk_widget_unmap
    at gtkwidget.c line 4389
  • #37 gtk_window_unmap
    at gtkwindow.c line 5056
  • #38 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #39 g_type_class_meta_marshal
    at gclosure.c line 970
  • #40 g_closure_invoke
    at gclosure.c line 777
  • #41 signal_emit_unlocked_R
    at gsignal.c line 3496
  • #42 g_signal_emit_valist
    at gsignal.c line 3314
  • #43 g_signal_emit
    at gsignal.c line 3370
  • #44 gtk_widget_unmap
    at gtkwidget.c line 4389
  • #45 gtk_window_hide
    at gtkwindow.c line 4870
  • #46 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #47 g_type_class_meta_marshal
    at gclosure.c line 970
  • #48 g_closure_invoke
    at gclosure.c line 777
  • #49 signal_emit_unlocked_R
    at gsignal.c line 3496
  • #50 g_signal_emit_valist
    at gsignal.c line 3314
  • #51 g_signal_emit
    at gsignal.c line 3370
  • #52 gtk_widget_hide
    at gtkwidget.c line 4256
  • #53 gtk_widget_dispose
    at gtkwidget.c line 10759
  • #54 gtk_window_dispose
    at gtkwindow.c line 2401
  • #55 empathy_irc_network_chooser_dialog_dispose
    at empathy-irc-network-chooser-dialog.c line 667
  • #56 g_object_run_dispose
    at gobject.c line 1062
  • #57 gtk_widget_destroy
    at gtkwidget.c line 4090
  • #58 dialog_response_cb
    at empathy-irc-network-chooser.c line 321
  • #59 g_cclosure_marshal_VOID__INT
    at gmarshal.c line 372
  • #60 g_closure_invoke
    at gclosure.c line 777
  • #61 signal_emit_unlocked_R
    at gsignal.c line 3566
  • #62 g_signal_emit_valist
    at gsignal.c line 3314
  • #63 g_signal_emit
    at gsignal.c line 3370
  • #64 gtk_dialog_response
    at gtkdialog.c line 948
  • #65 action_widget_activated
    at gtkdialog.c line 701
  • #66 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #67 _g_closure_invoke_va
    at gclosure.c line 840
  • #68 g_signal_emit_valist
    at gsignal.c line 3225
  • #69 g_signal_emit
    at gsignal.c line 3370
  • #70 gtk_button_clicked
    at gtkbutton.c line 1308
  • #71 gtk_real_button_released
    at gtkbutton.c line 1967
  • #72 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #73 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #74 _g_closure_invoke_va
    at gclosure.c line 840
  • #75 g_signal_emit_valist
    at gsignal.c line 3225
  • #76 g_signal_emit
    at gsignal.c line 3370
  • #77 gtk_button_button_release
    at gtkbutton.c line 1802
  • #78 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #79 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #80 _g_closure_invoke_va
    at gclosure.c line 840
  • #81 g_signal_emit_valist
    at gsignal.c line 3225
  • #82 g_signal_emit
    at gsignal.c line 3370
  • #83 gtk_widget_event_internal
    at gtkwidget.c line 6711
  • #84 gtk_widget_event
    at gtkwidget.c line 6368
  • #85 propagate_event_up
    at gtkmain.c line 2393
  • #86 propagate_event
    at gtkmain.c line 2501
  • #87 gtk_propagate_event
    at gtkmain.c line 2536
  • #88 gtk_main_do_event
    at gtkmain.c line 1716
  • #89 _gdk_event_emit
    at gdkevents.c line 69
  • #90 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #91 g_main_dispatch
    at gmain.c line 3054
  • #92 g_main_context_dispatch
    at gmain.c line 3630
  • #93 g_main_context_iterate
    at gmain.c line 3701
  • #94 g_main_context_iteration
    at gmain.c line 3762
  • #95 g_application_run
    at gapplication.c line 1620
  • #96 main
    at empathy-accounts.c line 254

Comment 3 Guillaume Desmottes 2013-03-11 15:55:44 UTC
Created attachment 238591 [details] [review]
live_search_unmap: check if priv->hook_widget is not NULL
Comment 4 Guillaume Desmottes 2013-03-11 15:55:48 UTC
Created attachment 238592 [details] [review]
irc-network-chooser-dialog: disconnect live search signals in dispose

The 'destroyed' signal is called to late, we have to disconnect those signals
before destroying the live search object.
Comment 5 Guillaume Desmottes 2013-03-11 15:55:52 UTC
Created attachment 238593 [details] [review]
irc-network-chooser-dialog: break live search references cycle
Comment 6 Xavier Claessens 2013-03-11 16:00:25 UTC
Looks good, +1
Comment 7 Guillaume Desmottes 2013-03-11 16:00:58 UTC
Attachment 238591 [details] pushed as 34fc9df - live_search_unmap: check if priv->hook_widget is not NULL
Attachment 238592 [details] pushed as de9e3ba - irc-network-chooser-dialog: disconnect live search signals in dispose
Attachment 238593 [details] pushed as 675246b - irc-network-chooser-dialog: break live search references cycle
Comment 8 Guillaume Desmottes 2013-03-11 16:07:29 UTC
I backported the fixes to 3.6 as well.
Comment 9 Emilio Pozuelo Monfort 2013-08-07 17:27:18 UTC
I'm having the exact same crash on 3.8, and I have found other reports of the same crash:

https://bugzilla.redhat.com/show_bug.cgi?id=972902
https://bugzilla.redhat.com/show_bug.cgi?id=975900

Investigating a bit, I see that the two patches in here don't fix the root of the bug, which is (from the bt in comment #0):

Thread 1 (Thread 0x7ff9a7e1c9c0 (LWP 1547))

  • #0 items_delete_cb
    at empathy-keyring.c line 671

that is:

  if (!secret_password_clear_finish (result, &error))
    {
      g_simple_async_result_set_error (simple, TP_ERROR,
              TP_ERROR_DOES_NOT_EXIST, "%s", error->message);
      g_error_free (error);

Note that error = 0x0.

So the issue here is that secret_password_clear_finish() is returning FALSE but is not setting the error, we dereference it and crash.

I have opened bug #705629 for the libsecret bug, but I propose we add the following patch to empathy to avoid the crash in the meantime.
Comment 10 Emilio Pozuelo Monfort 2013-08-07 17:29:43 UTC
Created attachment 251095 [details] [review]
Don't dereference a NULL error

commit 2ddf8f24447b52d092b90e42b8d3a1225b068846
Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Date:   Wed Aug 7 19:29:15 2013 +0200

    Don't dereference a NULL error
    
    libsecret is returning a NULL error in some cases but we
    unconditionally dereference it, causing a crash.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=692105
Comment 11 Emilio Pozuelo Monfort 2013-08-07 18:54:46 UTC
Found an oddity while testing this, I've opened bug #705635 for it. I say we fix the crash and close this, then we can work on #705635 whenever possible.
Comment 12 Guillaume Desmottes 2013-08-08 07:15:39 UTC
Review of attachment 251095 [details] [review]:

++  3.8 and master please.
Comment 13 Emilio Pozuelo Monfort 2013-08-08 07:34:47 UTC
Created attachment 251122 [details] [review]
Don't dereference a NULL error

Thanks for the review. However after seen the fix for bug #705629, I think we shouldn't set an error if there was no error from libsecret. The attached patch does that.
Comment 14 Guillaume Desmottes 2013-08-08 07:41:26 UTC
Review of attachment 251122 [details] [review]:

++ both branches as well
Comment 15 Emilio Pozuelo Monfort 2013-08-08 07:44:41 UTC
Thanks, pushed to master and gnome-3-8.