Bug 1638767
Summary: | gnome software crash involving gs_plugin_add_category_apps in libgs_plugin_desktop-categories.so | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Matt Fagnani <matt.fagnani> | ||||
Component: | gnome-software | Assignee: | Richard Hughes <rhughes> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 29 | CC: | klember, rhughes | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | gnome-software-3.30.3-1.fc29 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2018-10-21 15:47:21 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Matt Fagnani
2018-10-12 12:18:25 UTC
I reproduced crashes with the same traces several times by clicking on the Audio & Video, Communication & News, Productivity categories and More... buttons to the right of Recommended Productivity Applications and Recommended Audio & Video Applications. The trace shows that gs_plugin_add_category_apps has the argument category=0x0 which I take to mean a null pointer or empty category list. The crash is at ../plugins/core/gs-plugin-desktop-categories.c:100 100 if (desktop_groups->len > 0) gs-plugin-desktop-categories.c at https://github.com/GNOME/gnome-software/blob/master/plugins/core/gs-plugin-desktop-categories.c shows the following in the area of the crash gs_plugin_add_category_apps (GsPlugin *plugin, GsCategory *category, GsAppList *list, GCancellable *cancellable, GError **error) { GPtrArray *desktop_groups; GsCategory *parent; const GsDesktopData *msdata; guint i, j, k; /* already set */ desktop_groups = gs_category_get_desktop_groups (category); if (desktop_groups->len > 0) return TRUE; ... When desktop_groups = gs_category_get_desktop_groups (category) is run with category = 0x0, this might lead to a null value for desktop_groups. The segmentation fault shown by gdb might be due to a null pointer dereference in desktop_groups->len or something similar. Checking if category is not null before running the lines involving it might avoid the crash. The full traces have desktop_groups = 0x0 so desktop_groups->len might have been a null pointer dereference which led to the segmentation fault. (gdb) bt full #0 0xb4604713 in gs_plugin_add_category_apps (plugin=0xdb57d0 [GsPlugin], category=0x0, list=0x16a0150 [GsAppList], cancellable=0x1723550 [GCancellable], error=0xaeffef50) at ../plugins/core/gs-plugin-desktop-categories.c:100 desktop_groups = 0x0 parent = <optimized out> msdata = <optimized out> i = <optimized out> j = <optimized out> k = <optimized out> #1 0x004957db in gs_plugin_loader_call_vfunc (helper=<optimized out>, plugin=0xdb57d0 [GsPlugin], app=<optimized out>, list=<optimized out>, refine_flags=<optimized out>, cancellable=<optimized out>, error=<optimized out>) at ../lib/gs-plugin-loader.c:681 plugin_func = <optimized out> action = <optimized out> ret = 1 func = <optimized out> error_local = 0x0 timer = <optimized out> #2 0x00495aab in gs_plugin_loader_run_results (helper=0x1556e90, helper@entry=0x16a0150, cancellable=0x1723550 [GCancellable], cancellable@entry=0xdf8888 [GsPluginLoader], error=error@entry=0xaefff014) at ../lib/gs-plugin-loader.c:1119 plugin = 0xdb57d0 [GsPlugin] i = 0 priv = 0xdf8828 --Type <RET> for more, q to quit, c to continue without paging--c #3 0x00496d00 in gs_plugin_loader_process_thread_cb (task=0x2a33e60 [GTask], object=0xdf8888, task_data=0x1556e90, cancellable=0x1723550 [GCancellable]) at ../lib/gs-plugin-loader.c:3112 error = 0x0 helper = 0x1723550 list = 0x528208 action = <optimized out> plugin_loader = 0xce6884 priv = 0xce689f filter_flags = <optimized out> refine_flags = <optimized out> add_to_pending_array = 0 #4 0xb7afceb6 in g_task_thread_pool_thread (thread_data=0x2a33e60, pool_data=0x0) at gtask.c:1331 task = 0x2a33e60 [GTask] #5 0xb7cdae15 in g_thread_pool_thread_proxy (data=0xcdbe00) at gthreadpool.c:307 task = 0x2a33e60 pool = 0xcdbe00 #6 0xb7cda37f in g_thread_proxy (data=0x1517b50) at gthread.c:784 thread = 0x1517b50 __func__ = "g_thread_proxy" #7 0xb6c375de in start_thread (arg=<optimized out>) at pthread_create.c:486 ret = <optimized out> pd = <optimized out> now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1228607488, -1358955712, -1228607488, -1358958168, -1365515652, -678350260}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #8 0xb6b7372a in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108 This crash still occurred after I downgraded to appstream-data-29-6 so it is unrelated to the update to appstream-data-29-7. In order to try the test build as suggested in #1638784, I ran sudo dnf upgrade https://kojipkgs.fedoraproject.org//work/tasks/4354/30304354/gnome-software-3.30.2-1.fc29.mr125.i686.rpm https://kojipkgs.fedoraproject.org//work/tasks/4354/30304354/gnome-software-debuginfo-3.30.2-1.fc29.mr125.i686.rpm https://kojipkgs.fedoraproject.org//work/tasks/4354/30304354/gnome-software-debugsource-3.30.2-1.fc29.mr125.i686.rpm The crashes I noted above when clicking on the categories and more... didn't occur with the test build. When I clicked on the Audio & Video and Productivity categories or more... buttons on the main screen, those screens showed up correctly. I clicked on Communication & News, Graphics & Photography, and Add-ons, but those screens were not loaded. To test the 3.30.3-1 update, I ran sudo dnf upgrade https://kojipkgs.fedoraproject.org//packages/gnome-software/3.30.3/1.fc29/i686/gnome-software-3.30.3-1.fc29.i686.rpm https://kojipkgs.fedoraproject.org//packages/gnome-software/3.30.3/1.fc29/i686/gnome-software-debuginfo-3.30.3-1.fc29.i686.rpm https://kojipkgs.fedoraproject.org//packages/gnome-software/3.30.3/1.fc29/i686/gnome-software-debugsource-3.30.3-1.fc29.i686.rpm 3.30.3 first showed "No application data found" and a pop-up box stating that it needed to be restarted to use new plugins which I did. Clicking on all of the categories and the more... button showed those screens correctly. I didn't get any crashes of 3.30.3. Thanks for your help and the updates. gnome-software-3.30.3-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-447d45de07 gnome-software-3.30.3-1.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-447d45de07 gnome-software-3.30.3-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report. |