Description of problem: While installing software in the GNOME Classic environment I clicked on the notification icon in the lower right which brings up the notification bar on the bottom and moused over the icon for GNOME Software which then proceeded to crash. I may also have clicked on the GNOME Software icon which indicated there was a recent notification. Version-Release number of selected component: gnome-software-3.10.3-1.fc20 Additional info: reporter: libreport-2.1.9 backtrace_rating: 4 cmdline: gnome-software crash_function: gtk_widget_get_accessible executable: /usr/bin/gnome-software kernel: 3.11.8-300.fc20.i686+PAE runlevel: N 5 type: CCpp uid: 1000 Truncated backtrace: Thread no. 1 (10 frames) #0 gtk_widget_get_accessible at gtkwidget.c:12703 #1 app_state_changed at gs-app-tile.c:69 #2 g_cclosure_marshal_VOID__PARAM at gmarshal.c:1042 #8 g_object_notify_by_spec_internal at gobject.c:1141 #9 g_object_notify at gobject.c:1183 #10 gs_app_set_state at gs-app.c:322 #11 set_state_idle_cb at gs-plugin-loader.c:1637 #17 pk_task_install_packages_sync at pk-task-sync.c:145 #18 gs_plugin_app_install at gs-plugin-packagekit.c:320 #19 gs_plugin_loader_run_action at gs-plugin-loader.c:1536
Created attachment 825226 [details] File: backtrace
Created attachment 825227 [details] File: cgroup
Created attachment 825228 [details] File: core_backtrace
Created attachment 825229 [details] File: dso_list
Created attachment 825230 [details] File: environ
Created attachment 825231 [details] File: exploitable
Created attachment 825232 [details] File: limits
Created attachment 825233 [details] File: maps
Created attachment 825234 [details] File: open_fds
Created attachment 825235 [details] File: proc_pid_status
Created attachment 825236 [details] File: var_log_messages
The stacktrace shows thread 1 (a worker thread) and thread 3 (the main thread) using the same main context (0x8e272c8) and the set_state_idle_cb gets run in the worker thread, instead of the main thread (which is the intention).
The source of the problem is https://gitorious.org/packagekit/packagekit/source/54eccb8ad43f1570fa58562f671bc58b57493eab:lib/packagekit-glib2/pk-task-sync.c#L127-137 This code creates a mainloop with the default context - if you use that function in a worker thread, using g_idle_add to push stuff to the main thread stops working. I think two things are needed to fix this: - in PackageKit: use g_main_context_ref_thread_default() instead of NULL as context for any mainloops you create - in gnome-software: push a thread default context in the worker thread(s)
Looks like bug 1036352 is the same.
PackageKit-0.8.15-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/PackageKit-0.8.15-2.fc20
Package PackageKit-0.8.15-2.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing PackageKit-0.8.15-2.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-0390/PackageKit-0.8.15-2.fc20 then log in and leave karma (feedback).
PackageKit-0.8.15-2.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.