Segfault in gnome-software on Ubuntu 18.04 after latest inkscape stable ppa update
The following report was made in the Inkscape bugtracker (https://gitlab.com/inkscape/inbox/-/issues/2787):
After the latest inkscape stable PPA update on Ubuntu Bionic 18.04 I noticed that gnome-software/ubuntu-software segfaults when started. Reverting the update with ppa-purge resolves the issue. Perhaps one of the updated libraries for inkscape is causing a conflict with gnome-software?
Steps to reproduce:
- Add the inkscape stable PPA on Ubuntu 18.04
- Restart computer (or kill any running gnome-software or ubuntu-software instances)
- Start the ubuntu software application
What happened?
- The ubuntu-software application in 18.04 segfaults after installing inkscape and its dependencies from the PPA
What should have happened?
- Ubuntu-software should not segfault
Inkscape Version and Operating System:
- Inkscape Version: 1.0+r73~ubuntu18.04.1
- Operating System: Ubuntu
- Operating System version: 18.04 (with latest updates installed)
Investigation
I tried installing each dependency/available upgrade aside from inkscape separately. No crash, even on reboot. Installing inkscape from ppa:inkscape.dev/stable does crash gnome-software on reboot though.
Removing /usr/share/metainfo/org.inkscape.Inkscape.appdata.xml prevents the crash (please don't remove it, this is just for testing). Anyhow, still not sure if the bug is with us or gnome-software, but I can confirm that removing a lot of the contents of that file is enough to prevent the crash
rudimentary backtrace
Thread 1 "gnome-software" received signal SIGSEGV, Segmentation fault. __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31 31 ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: No such file or directory. (gdb) bt #0 __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31 #1 0x00007ffff7bab867 in as_node_get_localized_unwrap () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #2 0x00007ffff7bae871 in as_release_node_parse () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #3 0x00007ffff7b9bfff in ?? () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #4 0x00007ffff7b9cb25 in as_app_parse_data () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #5 0x00007ffff7b9d097 in as_app_parse_file () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #6 0x00007ffff7bb46a0 in ?? () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #7 0x00007ffff7bb4a61 in ?? () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #8 0x00007ffff7bb704d in as_store_load () from /usr/lib/x86_64-linux-gnu/libappstream-glib.so.8 #9 0x00007fffd697fff4 in gs_plugin_setup () from /usr/lib/x86_64-linux-gnu/gs-plugins-11/libgs_plugin_appstream.so #10 0x00005555555cf0db in ?? () #11 0x00005555555d339a in gs_plugin_loader_setup () #12 0x00005555555824a7 in ?? () #13 0x0000555555583d18 in ?? () #14 0x00007ffff771910d in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #15 0x00007ffff772c12e in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #16 0x00007ffff7734715 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #17 0x00007ffff773512f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #18 0x00007ffff70f52c2 in g_application_register () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #19 0x0000555555581d2f in ?? () #20 0x00007ffff35e3dae in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #21 0x00007ffff35e371f in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #22 0x00007ffff7719ced in g_cclosure_marshal_generic_va () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #23 0x00007ffff7719346 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #24 0x00007ffff77343cd in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #25 0x00007ffff773512f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #26 0x00007ffff70f59ff in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #27 0x00007ffff70f5e66 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #28 0x0000555555578728 in main ()
Result:
Narrowed the issue down to the release notes for 0.92.5, which has the url node inside the description node. It should be outside of it (just like with the adjacent release note nodes). See https://gitlab.com/inkscape/inkscape/-/merge_requests/1938 for the relevant Merge request.