Gnome-shell segfault libmalcontent-0.so.0.14.0

Ubuntu Support Template

Ubuntu Version: 26.04 (post 26.04 release date I did do-release-upgrade -d from 24.04)

Desktop Environment (if applicable):
GNOME

Problem Description:
Issue started as not being able to use Settings > Apps. When clicking on apps I was able to force crash Settings.

=> /var/log/kern.log <==
2026-04-28T12:05:08.069368-06:00 machine kernel: Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
2026-04-28T12:05:08.108377-06:00 machine kernel: rfkill: input handler disabled
2026-04-28T12:05:08.181394-06:00 machine kernel: show_signal_msg: 209 callbacks suppressed
2026-04-28T12:05:08.181399-06:00 machine kernel: gnome-shell[11568]: segfault at 0 ip 00007737ec0b257a sp 00007fff0cfac1f0 error 4 in libmalcontent-0.so.0.14.0[957a,7737ec0b0000+d000] likely on CPU 29 (core 13, socket 0)

What I’ve Tried:

apt install --reinstall gnome-control-center libmalcontent-0-0 malcontent

I’ve tried various incantations like the above attempting to reinstall ubuntu-desktop and it’s dependencies as well.

I’m now unable to login to my machine via the GUI. On boot GDM starts, I can click on my username, type in the password, and then it looks like login will proceed but then kicks me back to the login screen. Looking at the logs I still get the same error message.

I am still able to ssh into the machine.

Are you familiar with Friendly Recovery?

At the Grub boot menu select Advanced Options for Ubuntu. Then select a Linux kernel with recovery mode. That may load Linux to the Recovery Menu.

Select Network. That will set up an internet connection using settings already registered in the operating system.

Once you have an internet connection you can select dpkg - repair broken packages.

After that you can select Root. That will give you a command prompt where you can run commands such as the update/upgrade commands. When you are finished type exit to return to the recovery menu. Now, select Resume. The system may load to a desktop using an open source video driver.

A reboot should load with the proprietary driver if you are using one.

Regards

How would booting into recovery help? I can already ssh into the system and all the packages seem to be installed fine.

dpkg –-configure -a and apt -f install do nothing.

It appears theres an issue with libmalcontent.

I’ve now done the following:

apt-get --purge remove malcontent libmalcontent*
apt-get install --reinstall $(apt-cache show ubuntu-desktop|grep Depends:|sed -e 's/Depends: //g' -e 's/,//g')

Restart gdm so I can log in again

systemctl restart gdm

Attempting to login now works fine.

However when I attempt to launch Settings > Apps The settings application crashes.

When clicking on “Apps” I’ve run tail -f /var/log/*log

==> /var/log/syslog <==                                                                                                                                                                                
2026-04-28T15:42:31.992645-06:00 machinename gnome-control-center[38684]: g_strsplit: assertion ‘string != NULL’ failed
2026-04-28T15:42:31.992811-06:00 machinename kernel: gnome-control-c[38684]: segfault at 0 ip 00007aed90dd857a sp 00007ffd204ba7b0 error 4 in libmalcontent-0.so.0.14.0[957a,7aed90dd6000+d000] likely on CPU 12 (core 12, socket 0)
2026-04-28T15:42:31.992824-06:00 machinename kernel: Code: bc 00 00 00 49 be 2f 73 6e 61 70 2f 62 69 4c 89 ef e8 1a e8 ff ff ba ff ff ff ff 48 8d 35 4b ad 00 00 48 89 c7 e8 96 ee ff ff <48> 8b 18 48 89 45 c8 4c 8d 78 08 48 85 db 75 12 e9 af 03 00 00 90

==> /var/log/kern.log <==
2026-04-28T15:42:31.992811-06:00 machinename kernel: gnome-control-c[38684]: segfault at 0 ip 00007aed90dd857a sp 00007ffd204ba7b0 error 4 in libmalcontent-0.so.0.14.0[957a,7aed90dd6000+d000] likely on CPU 12 (core 12, socket 0)
2026-04-28T15:42:31.992824-06:00 machinename kernel: Code: bc 00 00 00 49 be 2f 73 6e 61 70 2f 62 69 4c 89 ef e8 1a e8 ff ff ba ff ff ff ff 48 8d 35 4b ad 00 00 48 89 c7 e8 96 ee ff ff <48> 8b 18 48 89 45 c8 4c 8d 78 08 48 85 db 75 12 e9 af 03 00 00 90

==> /var/log/apport.log <==
INFO: apport (pid 39821) 2026-04-28 15:42:32,041: called for global pid 38684, signal 11, core limit 0, dump mode 1
ERROR: apport (pid 39821) 2026-04-28 15:42:32,041: is_closing_session(): Could not determine DBUS socket.
INFO: apport (pid 39821) 2026-04-28 15:42:32,042: executable: /usr/bin/gnome-control-center (command line “/usr/bin/gnome-control-center --gapplication-service”)
ERROR: apport (pid 39821) 2026-04-28 15:42:32,044: this executable already crashed 2 times, ignoring

==> /var/log/syslog <==
2026-04-28T15:42:32.044614-06:00 machinename org.gnome.Characters[38482]: JS LOG: Characters Application exiting

I am actually surprised you were able to upgrade from 24.04 LTS to 26.04 LTS using the do-release-upgrade -d command because the -d switch usually upgrades to the development version which is now 26.10.

Official guidance

Upgrades to the latest LTS release become available after the first point release, such as with Ubuntu 24.04.01. This usually happens several months after the initial release.

Official upgrade Ubuntu guidance

Have you already checked existing threads Best practice for a successful release-upgrade to 26.04 and Do-release-upgrade not working?

Maybe that’s not what happened. As discussed in the other thread, it may have upgraded to the latest interim release (25.10 or maybe even 26.10), to which there is no defined upgrade path, since there are multiple interim versions in between.

P.S.: What does this say?:

cat /etc/os-release

If you make a fresh Ubuntu user and log in as that, is the system OK? This would show it is a problem with the user config or not

  1. I’m aware that if I want to have a good experience I should wait for the .1. The idea here was not to wait so that such issues would be found and could be fixed before the .1 is released.
  2. Logging in with a new/second user does not change the behavior. Settings > Apps still crashes.
  3. /etc/os-release shows I am on Resolute.
# cat /etc/os-release 
PRETTY_NAME="Ubuntu 26.04 LTS"
NAME="Ubuntu"
VERSION_ID="26.04"
VERSION="26.04 (Resolute Raccoon)"
VERSION_CODENAME=resolute
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=resolute
LOGO=ubuntu-logo
  1. Checking my sources.list* we can see that it is set to resolute.
# grep -i suites /etc/apt/sources.list.d/ubuntu*
/etc/apt/sources.list.d/ubuntu-main.sources:Suites: resolute resolute-updates
/etc/apt/sources.list.d/ubuntu-security.sources:Suites: resolute-security

I then ran check to see which packages on my system were not from the resolute repo. Some of them will be because some PPAs/apt repos don’t use the proper suite name.

# apt-show-versions $(dpkg-query --show | awk '{print $1}'| paste -d' ' -s)|grep -viE 'Not installed|No available|not available for' > installed.txt 

### a quick skim of this command shows `apt-show-versions` to be probably an ok method.
# apt-cache policy $(dpkg-query --show | awk '{print $1}'| paste -d' ' -s)|less

### Sample from installed.txt
# head installed.txt 
3cpio:amd64/resolute 0.14.0-1ubuntu1 uptodate
7zip:amd64/resolute 26.00+dfsg-1 uptodate
aardvark-dns:amd64/resolute 1.16.0-3 uptodate
accountsservice:amd64/resolute 23.13.9-8ubuntu5 uptodate
acl:amd64/resolute 2.3.2-2 uptodate
acpid:amd64/resolute 1:2.0.34-1ubuntu3 uptodate
adduser:all/resolute 3.153ubuntu1 uptodate
adwaita-icon-theme:all/resolute 50.0-1 uptodate
aggregate:amd64/resolute 1.6-8build1 uptodate
aglfn:all/resolute 1.7+git20191031.4036a9c-2build1 uptodate


# wc -l installed.txt 
3934 installed.txt

# grep resolute installed.txt |wc -l
3853

# grep -v resolute installed.txt|wc -l
81

The packages that are not from resolute repos were expected (cuda and a couple of apps which don’t use the suite name that match “resolute”).

That’s a fancy way of doing

apt list '~i'

:winking_face_with_tongue:

Looks like someone didn’t follow the release upgrade recommendation to uninstall 3rd party packages. :wink:

apt list '~i'

TIL. Thanks.

Looks like someone didn’t follow the release upgrade recommendation to uninstall 3rd party packages. :wink:

Who said I didn’t do that during the upgrade?

Meanwhile I figured out the issue.

I installed debug symbols

# apt install ubuntu-dbgsym-keyring

# cat /etc/apt/sources.list.d/debug.sources 
Types: deb
URIs: http://ddebs.ubuntu.com
Suites: resolute resolute-updates
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-dbgsym-keyring.gpg

# apt install gnome-control-center-dbgsym libmalcontent-0-0-dbgsym
$ gdb /usr/bin/gnome-control-center 
...
Reading symbols from /usr/bin/gnome-control-center...
Reading symbols from /usr/lib/debug/.build-id/c4/a882f68217fd4d4c251710f6faef6833a6c3c4.debug...
(gdb) run
Starting program: /usr/bin/gnome-control-center 
...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
...
11:38:58.8931                  Gtk[164448]: WARNING: Theme parser error: gtk.css:2:1-126: Failed to import: Error opening file /home/kauffman/.local/share/gnome-shell/extensions/unite@hardpixel.eu/styles/gtk4/buttons-right/maximized.css: No such file or directory
11:38:58.9513              Adwaita[164448]: WARNING: The resource style-dark.css is deprecated and shouldn't be used anymore. Use style.css with media queries instead.
11:38:58.9513              Adwaita[164448]: WARNING: The resource style-hc.css is deprecated and shouldn't be used anymore. Use style.css with media queries instead.
...
11:39:01.6262                 GLib[164448]:CRITICAL: g_strsplit: assertion 'string != NULL' failed

Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault.
0x00007ffff7a5357a in mct_app_filter_is_appinfo_allowed (filter=0x555556dc8ca0, app_info=app_info@entry=0x55555766ac20) at ../libmalcontent/app-filter.c:438
⚠️ warning: 438	../libmalcontent/app-filter.c: No such file or directory
(gdb) bt full
#0  0x00007ffff7a5357a in mct_app_filter_is_appinfo_allowed (filter=0x555556dc8ca0, app_info=app_info@entry=0x55555766ac20) at ../libmalcontent/app-filter.c:438
        i = <optimized out>
        commandline = <optimized out>
        commandline_list = <optimized out>
        exec = <optimized out>
        abs_path = 0x0
        types = 0x0
        retval = 0
        __func__ = "mct_app_filter_is_appinfo_allowed"
#1  0x00005555555e7360 in populate_applications (self=0x5555570029e0) at ../panels/applications/cc-applications-panel.c:2092
        info = 0x55555766ac20
        infos = 0x5555575b47d0
        l = 0x55555767c190
#2  0x00005555555ec3dc in cc_applications_panel_init (self=0x5555570029e0) at ../panels/applications/cc-applications-panel.c:2550
        system_bus = 0x555555c38c00
        error = 0x0
#3  0x00007ffff7d8eac1 in g_type_create_instance () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#4  0x00007ffff7d743e4 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#5  0x00007ffff7d765bb in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6  0x00007ffff7d7699f in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7  0x00005555555d4029 in cc_panel_loader_load_by_name (shell=shell@entry=0x555555a5fbe0, name=name@entry=0x5555569f1ec0 "applications", title=title@entry=0x5555567aa210 "Apps", parameters=parameters@entry=0x0) at ../shell/cc-panel-loader.c:228
        get_type = <optimized out>
        __func__ = "cc_panel_loader_load_by_name"
#8  0x00005555555d65e3 in activate_panel (gicon=<optimized out>, self=0x555555a5fbe0, id=<optimized out>, parameters=0x0, name=0x5555567aa210 "Apps", visibility=<optimized out>) at ../shell/cc-window.c:143
        timer = 0x555555e63c70
        elapsed_time = <optimized out>
        __func__ = <optimized out>
#9  set_active_panel_from_id (self=0x555555a5fbe0, start_id=<optimized out>, parameters=<optimized out>, add_to_history=1, force_moving_to_the_panel=0, error=<optimized out>) at ../shell/cc-window.c:383
        gicon = 0x555555b9dd20
        name = 0x5555567aa210 "Apps"
        visibility = CC_PANEL_VISIBLE
        category = CC_CATEGORY_ACCOUNT
        system_param_overwrite = <optimized out>
        iter = {stamp = 810437937, user_data = 0x555555b6d8d0, user_data2 = 0x0, user_data3 = 0x0}
        view = <optimized out>
        activated = <optimized out>
        found = <optimized out>
        __func__ = <optimized out>
#10 0x00007ffff4c51056 in ?? () from /usr/lib/x86_64-linux-gnu/libffi.so.8
No symbol table info available.
#11 0x00007ffff4c4cd16 in ?? () from /usr/lib/x86_64-linux-gnu/libffi.so.8
No symbol table info available.
#12 0x00007ffff4c4f7ae in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.8
No symbol table info available.
#13 0x00007ffff7d69366 in g_cclosure_marshal_generic_va () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#14 0x00007ffff7d82cc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#15 0x00007ffff7d82dc8 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#16 0x00007ffff7d82e83 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#17 0x00005555555d5d1a in row_activated_cb (listbox=<optimized out>, row=0x555555c77de0, self=0x555555b58bc0) at ../shell/cc-panel-list.c:540
        data = <optimized out>
        parent_panel = <optimized out>
#18 0x00007ffff7d6119a in g_cclosure_marshal_VOID__OBJECTv () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#19 0x00007ffff7d82cc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#20 0x00007ffff7d82dc8 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#21 0x00007ffff7d82e83 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#22 0x00007ffff65e5ade in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#23 0x00007ffff64f0468 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#24 0x00007ffff7d82cc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#25 0x00007ffff7d82dc8 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#26 0x00007ffff7d82e83 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#27 0x00007ffff65ac114 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#28 0x00007ffff7d66803 in g_cclosure_marshal_VOID__BOXEDv () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#29 0x00007ffff7d82cc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#30 0x00007ffff7d82dc8 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#31 0x00007ffff7d82e83 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#32 0x00007ffff65aeb9d in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#33 0x00007ffff65b125b in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#34 0x00007ffff65b1fd9 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#35 0x00007ffff67326fe in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#36 0x00007ffff65f63d2 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#37 0x00007ffff65f6ec3 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#38 0x00007ffff68f5748 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#39 0x00007ffff699c7ba in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#40 0x00007ffff7d82cc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
No symbol table info available.
#41 0x00007ffff7d82dc8 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#42 0x00007ffff7d82e83 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#43 0x00007ffff69a334e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#44 0x00007ffff68fbbec in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
No symbol table info available.
#45 0x00007ffff7c54b9b in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#46 0x00007ffff7c561d7 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#47 0x00007ffff7c563c3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#48 0x00007ffff7e9bacd in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#49 0x00005555555cf1d5 in main (argc=1, argv=0x7fffffffdb28) at ../shell/main.c:47
        application = 0x55555599cac0
(gdb) 
(gdb) frame 1
#1  0x00005555555e7360 in populate_applications (self=0x5555570029e0) at ../panels/applications/cc-applications-panel.c:2092
⚠️ warning: 2092	../panels/applications/cc-applications-panel.c: No such file or directory
(gdb) print info
$1 = (GAppInfo *) 0x55555766ac20
(gdb) print g_app_info_get_id(info)
❌️ 'g_app_info_get_id' has unknown return type; cast the call to its declared return type
(gdb) print g_app_info_get_name(info)
❌️ 'g_app_info_get_name' has unknown return type; cast the call to its declared return type
(gdb) print g_app_info_get_commandline(info)
❌️ 'g_app_info_get_commandline' has unknown return type; cast the call to its declared return type
(gdb) print g_app_info_get_executable(info)
❌️ 'g_app_info_get_executable' has unknown return type; cast the call to its declared return type
(gdb) print 1
$2 = 1
(gdb) print 1->data
❌️ Attempt to extract a component of a value that is not a structure pointer.
(gdb) print (char*)g_app_info_get_id(info)
...
[Thread 0x7fff3a7fc6c0 (LWP 164503) exited]
$3 = 0x55555766b1f0 "OLD_SNAP_APPLICATION_THAT_DIDNT_GET_REMOVED_PROPERLY_MISSING_EXEC_LINE.desktop"
(gdb) print (char*)g_app_info_get_name(info)
...
[Thread 0x7ffeeaffd6c0 (LWP 164514) exited]
$4 = 0x55555766b840 "TITLE_OF_OLD_SNAP_APPLICATION"
(gdb) print (char*)g_app_info_get_commandline(info)
$5 = 0x0
(gdb) print (char*)g_app_info_get_executable(info)
$6 = 0x0
(gdb) print l
$7 = (GList *) 0x55555767c190
(gdb) print (char*)g_app_info_get_id((GAppInfo*)l->data)
$8 = 0x55555766b1f0 "OLD_SNAP_APPLICATION_THAT_DIDNT_GET_REMOVED_PROPERLY_MISSING_EXEC_LINE.desktop"
(gdb) exit
A debugging session is active.

	Inferior 1 [process 164448] will be killed.

Quit anyway? (y or n) y

Attempting to find that desktop file turns up this file:

$ cat /var/lib/snapd/desktop/applications/OLD_SNAP_APPLICATION_THAT_DIDNT_GET_REMOVED_PROPERLY_MISSING_EXEC_LINE.desktop 
[Desktop Entry]
X-SnapInstanceName=TITLE_OF_OLD_SNAP_APPLICATION
Version=1.0
Name=TITLE_OF_OLD_SNAP_APPLICATION
Comment=Program does a thing
Icon=/snap/TITLE_OF_OLD_SNAP_APPLICATION/636/usr/share/icons/hicolor/256x256/apps/TITLE_OF_OLD_SNAP_APPLICATION.png
Terminal=false
Type=Application
Categories=SomeCategory;Qt;

This returns no results.

$ snap list |grep -i TITLE_OF_OLD_SNAP_APPLICATION

I believe I attempted to install this application a while back (while running 24.04) via snap.. but never was able to get it removed properly.

So then we just remove the desktop file which I didn’t want anyway.

$ sudo rm /var/lib/snapd/desktop/applications/OLD_SNAP_APPLICATION_THAT_DIDNT_GET_REMOVED_PROPERLY_MISSING_EXEC_LINE.desktop 

And then Settings > Apps opens as expected.

I don’t think this should be a thing though… Settings>Apps should handle this issue more gracefully.

Question, did you redact the original name, or is that the actual title?

Snaps can be purged, just like apt packages:

snap remove --purge <snap app>

did you redact the original name

I redacted the original name of the application.

The name of the application does not matter for this context. gnome-control-center should handle *.desktop files without an Exec= line more gracefully.

snap remove --purge <snap app>

Yeah it’s been too long now… so I don’t quiet remember… but I for sure tried that and all the normal things to uninstall the snap.

Maybe you should check:

debsums -s

I also just now remember having had strange segfaults with a “mixed” distro upgrade. Turned out I had stale libs in /usr/local, which the dynamic linker prefers because of that prefix being first in the search order. So this could be a case of mismatched libs.

debsums -s returns nothing.

As it should with all packages intact.

Anything in /usr/local/lib? Or, circling back to the previously mentioned stale libs case:

ldd $(which gnome-control-center) | grep -F /usr/local

This topic was automatically closed 18 hours after the last reply. New replies are no longer allowed.