Description of problem: Used GNOME software to open a 3rd Party RPM saved on my system. It was taking a while to come up (just the spinner was on the screen), so i kept it open and just installed the RPM with yum. When i went back to Software the RPM had loaded and was ready to install. I Clicked the "Back" button in the GNOME Software interface, and it crashed. Version-Release number of selected component: gnome-software-3.13.92-2.fc21 Additional info: reporter: libreport-2.2.3 backtrace_rating: 4 cmdline: /usr/bin/gnome-software --gapplication-service crash_function: gs_shell_back_button_cb executable: /usr/bin/gnome-software kernel: 3.16.1-301.fc21.x86_64 runlevel: N 5 type: CCpp uid: 1000 Truncated backtrace: Thread no. 1 (10 frames) #0 gs_shell_back_button_cb at gs-shell.c:271 #1 _g_closure_invoke_va at gclosure.c:831 #4 gtk_button_do_release at gtkbutton.c:1892 #5 gtk_real_button_released at gtkbutton.c:2010 #10 ffi_call_unix64 at ../src/x86/unix64.S:76 #11 ffi_call at ../src/x86/ffi64.c:525 #12 g_cclosure_marshal_generic_va at gclosure.c:1541 #13 _g_closure_invoke_va at gclosure.c:831 #16 gtk_gesture_multi_press_end at gtkgesturemultipress.c:273 #17 g_cclosure_marshal_VOID__BOXEDv at gmarshal.c:1160
Created attachment 940527 [details] File: backtrace
Created attachment 940528 [details] File: cgroup
Created attachment 940529 [details] File: core_backtrace
Created attachment 940530 [details] File: dso_list
Created attachment 940531 [details] File: environ
Created attachment 940532 [details] File: exploitable
Created attachment 940533 [details] File: limits
Created attachment 940534 [details] File: maps
Created attachment 940535 [details] File: open_fds
Created attachment 940536 [details] File: proc_pid_status
Created attachment 940537 [details] File: var_log_messages
How did you use gnome-software to open an rpm ?
Downloaded the RPM with Firefox, then chose "open with software installer" option. Right clicking the RPM in nautilus works too
i haven't been able to reproduce the crash, but I guess I can see how the initial state could be wrong, leading to the back button being visible despite the back_entry_stack being empty. 1) The button is set as visible in the gnome-software.ui file 2) gs_shell_change_mode does: widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_back")); gtk_widget_set_visible (widget, !g_queue_is_empty (priv->back_entry_stack)); and 3) and the clicked handler for the button assumes the queue is not empty: entry = g_queue_pop_head (priv->back_entry_stack); gs_shell_change_mode (shell, entry->mode, entry->app, entry->category, FALSE); So, we may have found a user here (Ryan), who managed to click the back button before gs_shell_change_mode has run. One fix would be to not make the back button visible initially. Another would be to silently exit from the clicked handler when the queue is empty.
I eyeballed the code, trying to find a path where we show the window but don't run gs_shell_change_mode(), but I've failed to find one. My attempts to reproduce the crash have failed as well. I did catch two other bugs in this area while poking around though, https://git.gnome.org/browse/gnome-software/commit/?id=1a06f3b49e3052ee42fd9c3db04fa8ee636fbb91 and https://git.gnome.org/browse/gnome-software/commit/?id=c09169032a2de46e8d8fc0bd5c6a21e7bfd8ee61 -- might be possible that one of those somehow fixes the crash / stack underflow as well. > One fix would be to not make the back button visible initially. Another > would be to silently exit from the clicked handler when the queue is empty. Other buttons in gnome-software.ui are set up in the same way, initially visible in the ui file and then hidden / shown in gs_shell_change_mode() as needed. If we have a code path that doesn't run gs_shell_change_mode(), we'll probably have other buttons with wrong visiblity as well, not just the back button. To fix the crash, I think the best way for now would be to return from the clicked handler and log a warning -- hopefully this will help catch the root cause of this in the future.
I've pushed https://git.gnome.org/browse/gnome-software/commit/?id=facb84ebc865cb81a8711253f806f5c87c5421f7 to that effect.
*** Bug 1174497 has been marked as a duplicate of this bug. ***
gnome-software-3.14.3-1.fc21 has been submitted as an update for Fedora 21. https://admin.fedoraproject.org/updates/gnome-software-3.14.3-1.fc21
Package gnome-software-3.14.3-1.fc21: * should fix your issue, * was pushed to the Fedora 21 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing gnome-software-3.14.3-1.fc21' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2015-2843/gnome-software-3.14.3-1.fc21 then log in and leave karma (feedback).
gnome-software-3.14.3-1.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.