Parameter misalignment in 32bit builds
gnome-software crashes shortly after login to gnome desktop.
journald log excerpt:
systemd-coredump[2642]: Process 2273 (gnome-software) of user 1000 dumped core.
#4 0x00000000004f8220 gs_overview_page_load (gnome-software + 0x41220)
abrt-notification[2698]: Process 2713 (gnome-software) crashed in strchr()
backtrace:
$ sudo coredumpctl debug 2273
PID: 2273 (gnome-software)
UID: 1000 (dw)
GID: 1000 (dw)
Signal: 11 (SEGV)
Timestamp: Thu 2020-06-04 11:03:00 CEST (8min ago)
Command Line: /usr/bin/gnome-software --gapplication-service
Executable: /usr/bin/gnome-software
Control Group: /user.slice/user-1000.slice/user@1000.service/gnome-launched-gnome-software-service.desktop-2273.scope
Unit: user@1000.service
User Unit: gnome-launched-gnome-software-service.desktop-2273.scope
Slice: user-1000.slice
Owner UID: 1000 (dw)
Boot ID: 7c3aaada65e841b4882a7d59f170cc82
Machine ID: fe9abc2defc64a80a872e6615ef25d74
Hostname: dw-rpi4
Storage: /var/lib/systemd/coredump/core.gnome-software.1000.7c3aaada65e841b4882a7d59f170cc82.2273.1591261380000000000000.lz4
Message: Process 2273 (gnome-software) of user 1000 dumped core.
Stack trace of thread 2273:
#0 0x00000000b5ebbad0 strchr (libc.so.6 + 0x7cad0)
#1 0x00000000b6deafcc g_param_spec_pool_lookup (libgobject-2.0.so.0 + 0x1cfcc)
#2 0x00000000b6de5634 g_object_new_valist (libgobject-2.0.so.0 + 0x17634)
#3 0x00000000b6de5aa0 g_object_new (libgobject-2.0.so.0 + 0x17aa0)
#4 0x00000000004f8220 gs_overview_page_load (gnome-software + 0x41220)
GNU gdb (GDB) Fedora 9.1-5.fc32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "armv7hl-redhat-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gnome-software...
Reading symbols from /usr/lib/debug/usr/bin/gnome-software-3.36.1-1.fc32.arm.debug...
[New LWP 2273]
[New LWP 2368]
[New LWP 2375]
[New LWP 2380]
[New LWP 2544]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `/usr/bin/gnome-software --gapplication-service'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 strchr () at ../sysdeps/arm/armv6/strchr.S:28
28 ldrb r2, [r0] @ load the first byte asap
[Current thread is 1 (Thread 0xb4335010 (LWP 2273))]
(gdb) set pagination off
(gdb) bt
#0 strchr () at ../sysdeps/arm/armv6/strchr.S:28
#1 0xb6deafcc in g_param_spec_pool_lookup (pool=0x1b518e8, param_name=param_name@entry=0x53 <error: Cannot access memory at address 0x53>, owner_type=owner_type@entry=29488032, walk_ancestors=walk_ancestors@entry=1) at ../gobject/gparam.c:1088
#2 0xb6de5634 in g_object_new_valist (object_type=29488032, first_property_name=first_property_name@entry=0x200000 <error: Cannot access memory at address 0x200000>, var_args=..., var_args@entry=...) at ../gobject/gobject.c:2231
#3 0xb6de5aa0 in g_object_new (object_type=<optimized out>, first_property_name=0x53d36c "action") at ../gobject/gobject.c:1780
#4 0x004f8220 in gs_overview_page_load (self=0x1b9aa70) at ../src/gs-overview-page.c:719
#5 0xb6dddeac in g_closure_invoke (closure=0x2b98b60, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0xbe9cc5c0, invocation_hint=0xbe9cc53c, invocation_hint@entry=0xbe9cc534) at ../gobject/gclosure.c:810
#6 0xb6df2028 in signal_emit_unlocked_R (node=node@entry=0x1ef9ac8, detail=90802888, instance=0xbe9cc53c, emission_return=emission_return@entry=0x0, instance_and_params=0xbe9cc5c0) at ../gobject/gsignal.c:3742
#7 0xb6df8b8c in g_signal_emit_valist (instance=instance@entry=0x5698ac8, signal_id=<optimized out>, detail=detail@entry=2911404520, var_args=..., var_args@entry=...) at ../gobject/gsignal.c:3498
#8 0xb6df8e40 in g_signal_emit (instance=instance@entry=0x5698ac8, signal_id=<optimized out>, detail=0) at ../gobject/gsignal.c:3554
#9 0x004f5608 in gs_loading_page_refresh_cb (source_object=source_object@entry=0xb170c170, res=0x368a668, user_data=<optimized out>) at ../src/gs-loading-page.c:109
#10 0xb6bb7698 in g_task_return_now (task=task@entry=0x368a668) at ../gio/gtask.c:1214
#11 0xb6bb76d8 in complete_in_idle_cb (task=task@entry=0x368a668) at ../gio/gtask.c:1228
#12 0xb6cfb314 in g_idle_dispatch (source=0xafd3c710, callback=0xb6bb76cc <complete_in_idle_cb>, user_data=0x368a668) at ../glib/gmain.c:5755
#13 0xb6d00148 in g_main_dispatch (context=0x1b6f3c8) at ../glib/gmain.c:3309
#14 g_main_context_dispatch (context=context@entry=0x1b6f3c8) at ../glib/gmain.c:3974
#15 0xb6d00494 in g_main_context_iterate (context=context@entry=0x1b6f3c8, block=block@entry=-1227881028, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#16 0xb6d005bc in g_main_context_iteration (context=context@entry=0x1b6f3c8, may_block=may_block@entry=1) at ../glib/gmain.c:4108
#17 0xb6beadf4 in g_application_run (application=0x1b5b0c8, argc=<optimized out>, argv=0xbe9cc974) at ../gio/gapplication.c:2559
#18 0x004d07c4 in main (argc=2, argv=0xbe9cc974) at ../src/gs-main.c:48
(gdb) fr 1
#1 0xb6deafcc in g_param_spec_pool_lookup (pool=0x1b518e8, param_name=param_name@entry=0x53 <error: Cannot access memory at address 0x53>, owner_type=owner_type@entry=29488032, walk_ancestors=walk_ancestors@entry=1) at ../gobject/gparam.c:1088
1088 delim = pool->type_prefixing ? strchr (param_name, ':') : NULL;
(gdb) l
1083 g_return_val_if_fail (pool != NULL, NULL);
1084 g_return_val_if_fail (param_name != NULL, NULL);
1085
1086 g_mutex_lock (&pool->mutex);
1087
1088 delim = pool->type_prefixing ? strchr (param_name, ':') : NULL;
1089
1090 /* try quick and away, i.e. without prefix */
1091 if (!delim)
1092 {
(gdb) p param_name
$1 = (const gchar *) 0x53 <error: Cannot access memory at address 0x53>
(gdb)
versions:
$ rpm -qa | grep -e '^gnome' | sort
gnome-abrt-1.3.5-1.fc32.armv7hl
gnome-autoar-0.2.4-2.fc32.armv7hl
gnome-backgrounds-3.36.0-1.fc32.noarch
gnome-bluetooth-3.34.1-1.fc32.armv7hl
gnome-bluetooth-debuginfo-3.34.1-1.fc32.armv7hl
gnome-bluetooth-debugsource-3.34.1-1.fc32.armv7hl
gnome-bluetooth-libs-3.34.1-1.fc32.armv7hl
gnome-bluetooth-libs-debuginfo-3.34.1-1.fc32.armv7hl
gnome-calculator-3.36.0-1.fc32.armv7hl
gnome-calendar-3.36.1-1.fc32.armv7hl
gnome-characters-3.34.0-2.fc32.armv7hl
gnome-classic-session-3.36.2-1.fc32.noarch
gnome-clocks-3.36.2-1.fc32.armv7hl
gnome-color-manager-3.36.0-1.fc32.armv7hl
gnome-contacts-3.36.1-1.fc32.armv7hl
gnome-control-center-3.36.2-1.fc32.armv7hl
gnome-control-center-filesystem-3.36.2-1.fc32.noarch
gnome-desktop3-3.36.2-1.fc32.armv7hl
gnome-desktop3-debuginfo-3.36.2-1.fc32.armv7hl
gnome-desktop3-debugsource-3.36.2-1.fc32.armv7hl
gnome-disk-utility-3.36.1-1.fc32.armv7hl
gnome-font-viewer-3.34.0-3.fc32.armv7hl
gnome-getting-started-docs-3.36.2-1.fc32.noarch
gnome-icon-theme-3.12.0-13.fc32.noarch
gnome-initial-setup-3.36.3-1.fc32.armv7hl
gnome-keyring-3.36.0-1.fc32.armv7hl
gnome-keyring-pam-3.36.0-1.fc32.armv7hl
gnome-logs-3.36.0-1.fc32.armv7hl
gnome-maps-3.36.2-1.fc32.armv7hl
gnome-menus-3.36.0-1.fc32.armv7hl
gnome-online-accounts-3.36.0-1.fc32.armv7hl
gnome-online-miners-3.34.0-2.fc32.armv7hl
gnome-photos-3.34.2-1.fc32.armv7hl
gnome-remote-desktop-0.1.8-2.fc32.armv7hl
gnome-screenshot-3.36.0-1.fc32.armv7hl
gnome-session-3.36.0-2.fc32.armv7hl
gnome-session-wayland-session-3.36.0-2.fc32.armv7hl
gnome-session-xsession-3.36.0-2.fc32.armv7hl
gnome-settings-daemon-3.36.1-1.fc32.armv7hl
gnome-shell-3.36.2-3.fc32.armv7hl
gnome-shell-debuginfo-3.36.2-3.fc32.armv7hl
gnome-shell-debugsource-3.36.2-3.fc32.armv7hl
gnome-shell-extension-apps-menu-3.36.2-1.fc32.noarch
gnome-shell-extension-background-logo-3.36.0-1.fc32.noarch
gnome-shell-extension-common-3.36.2-1.fc32.noarch
gnome-shell-extension-horizontal-workspaces-3.36.2-1.fc32.noarch
gnome-shell-extension-launch-new-instance-3.36.2-1.fc32.noarch
gnome-shell-extension-places-menu-3.36.2-1.fc32.noarch
gnome-shell-extension-window-list-3.36.2-1.fc32.noarch
gnome-software-3.36.1-1.fc32.armv7hl
gnome-software-debuginfo-3.36.1-1.fc32.armv7hl
gnome-software-debugsource-3.36.1-1.fc32.armv7hl
gnome-system-monitor-3.36.1-1.fc32.armv7hl
gnome-terminal-3.36.1.1-1.fc32.armv7hl
gnome-terminal-nautilus-3.36.1.1-1.fc32.armv7hl
gnome-themes-extra-3.28-7.fc32.armv7hl
gnome-user-docs-3.36.2-1.fc32.noarch
gnome-user-share-3.34.0-2.fc32.armv7hl
gnome-video-effects-0.5.0-2.fc32.noarch
gnome-weather-3.36.1-1.fc32.noarch