GNOME Bugzilla – Bug 692105
empathy-3.6.2-1.fc18: items_delete_cb: Process /usr/bin/empathy-accounts was killed by signal 11
Last modified: 2013-08-08 07:45:04 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
Original bug: https://bugzilla.redhat.com/show_bug.cgi?id=881434
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
+ Trace 231624
Created attachment 238591 [details] [review] live_search_unmap: check if priv->hook_widget is not NULL
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.
Created attachment 238593 [details] [review] irc-network-chooser-dialog: break live search references cycle
Looks good, +1
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
I backported the fixes to 3.6 as well.
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):
+ Trace 232353
Thread 1 (Thread 0x7ff9a7e1c9c0 (LWP 1547))
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.
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
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.
Review of attachment 251095 [details] [review]: ++ 3.8 and master please.
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.
Review of attachment 251122 [details] [review]: ++ both branches as well
Thanks, pushed to master and gnome-3-8.