4

This is pop!os 20.04 running under X.

According to this issue https://gitlab.gnome.org/GNOME/gdm/-/issues/222 once upon a time gnome kept open two gnome shells, one for the user and one for the greeter (running under user gdm). Then it was changed so that after login the greeter's gnome shell was 'torn down'.

But I have a pop!os 20.04 where this isn't happening, and the gdm gnome-shell grows to use lots of resident ram (e.g. > 3GB after five days of uptime).

I can sudo kill -9 the process, and there seems to be no adverse effect. Howeve, these messages then appear repeatedly:

journalctl _UID=110

gnome-shell-x11.service: Scheduled restart job, restart counter is at 31.
Sep 14 08:13:48 indigo systemd[1392]: Stopped GNOME Shell on X11.
Sep 14 08:13:48 indigo systemd[1392]: Starting GNOME Shell on X11...
Sep 14 08:15:18 indigo systemd[1392]: gnome-shell-x11.service: start operation timed out. Terminating.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: State 'stop-sigterm' timed out. Killing.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Killing process 36912 (gnome-shell) with signal SIGKILL.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Killing process 36917 (dconf worker) with signal SIGKILL.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Main process exited, code=killed, status=9/KILL
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Failed with result 'timeout'.
Sep 14 08:15:23 indigo systemd[1392]: Failed to start GNOME Shell on X11.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Scheduled restart job, restart counter is at 32.
Sep 14 08:15:23 indigo systemd[1392]: Stopped GNOME Shell on X11.
Sep 14 08:15:23 indigo systemd[1392]: Starting GNOME Shell on X11...

I have the same version of pop running in a VM, also under X11, and in the VM there are no processes running under gdm at ll.

This is what I have on my host pop!os (my real desktop): Note there is another gnome-shell process running under gdm; there are always two. Only one of them becomes a run-away consumer of resident memory (and I killed that one).


UID          PID    PPID  C STIME TTY          TIME CMD
gdm         1392       1  0 Sep13 ?        00:00:00 /lib/systemd/systemd --user
gdm         1399    1392  0 Sep13 ?        00:00:00 (sd-pam)
gdm         1444    1392  0 Sep13 ?        00:00:00 /usr/bin/appimagelauncherd
gdm         1445    1392  0 Sep13 ?        00:00:00 /usr/bin/appimagelauncherfs
gdm         1449    1392  0 Sep13 ?        00:00:00 /usr/bin/pulseaudio --daemonize=no --log-target=journal
gdm         1451    1392  0 Sep13 ?        00:00:00 /usr/libexec/tracker-miner-fs
gdm         1458    1379  0 Sep13 tty1     00:00:00 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
gdm         1460    1458  0 Sep13 tty1     00:00:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/110/gdm/Xauthority -background none -noreset -keeptty -verbose 3
gdm         1463    1392  0 Sep13 ?        00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
gdm         1485    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfsd
gdm         1514    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfsd-fuse /run/user/110/gvfs -f -o big_writes
gdm         1522    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor
gdm         1528    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-goa-volume-monitor
gdm         1532    1392  0 Sep13 ?        00:00:00 /usr/libexec/goa-daemon
gdm         1608    1392  0 Sep13 ?        00:00:00 /usr/libexec/goa-identity-service
gdm         1643    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-gphoto2-volume-monitor
gdm         1651    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-afc-volume-monitor
gdm         1656    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-mtp-volume-monitor
gdm         1698    1458  0 Sep13 tty1     00:00:00 /usr/libexec/gnome-session-binary --systemd --autostart /usr/share/gdm/greeter/autostart
gdm         1745    1392  0 Sep13 ?        00:00:00 /usr/libexec/at-spi-bus-launcher
gdm         1753    1745  0 Sep13 ?        00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
gdm         1811    1392  0 Sep13 ?        00:00:00 /usr/libexec/gnome-session-ctl --monitor
gdm         1824    1392  0 Sep13 ?        00:00:00 ssh-agent -D -a /run/user/110/openssh_agent
gdm         1829    1392  0 Sep13 ?        00:00:00 /usr/libexec/gnome-session-binary --systemd-service --session=gnome-login
gdm         1955    1392  0 Sep13 ?        00:00:00 /usr/libexec/at-spi2-registryd --use-gnome-session
gdm         1962    1392  0 Sep13 ?        00:00:00 /usr/libexec/xdg-permission-store
gdm         1997    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-a11y-settings
gdm         1998    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-color
gdm         1999    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-keyboard
gdm         2001    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-media-keys
gdm         2003    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-power
gdm         2005    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-print-notifications
gdm         2009    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-rfkill
gdm         2010    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-smartcard
gdm         2011    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-sound
gdm         2014    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-usb-protection
gdm         2016    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-wacom
gdm         2020    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-wwan
gdm         2022    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-xsettings
gdm         2058    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-printer
gdm         2269    1392  0 Sep13 ?        00:00:00 /usr/libexec/dconf-service
gdm        37465    1392  0 08:18 ?        00:00:00 /usr/bin/gnome-shell

On my virtual instance:

$ ps -f -u gdm
UID          PID    PPID  C STIME TTY          TIME CMD

so this is weird.

I don't know how to work out why I have basically an entire gdm session running.

1 Answer 1

1

Apparently the patches to get gdm3 to kill its xserver session are quite new and not in production most anywhere. The bug I see even happens in Fedora 32 (if you force the greeter to use xorg, which is not the default).

see: https://gitlab.gnome.org/GNOME/gdm/-/issues/222

The VM was using wayland/xwayland for the greeter. This is the easier fix.

Edit /etc/gdm3/custom.conf to comment out the line forcing xorg. That is, edit the file to look like:

[daemon]
# Uncoment the line below to force the login screen to use Xorg
#WaylandEnable=false

because when the greeter uses wayland/xwayland, even to start an xorg login session, gdm3 does kill its session. So there is no gdm-owned x server. This saves probably at least 300MB of resident RAM and in my case avoids a memory leak.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .