xfce4-power-manager takes down the machine when xfce4-notifyd is stopped
In current NixOS, with Xfce 4.14, there is an issue xfce4-notifyd is not started by dbus. This is an annoyance, but it also triggers a much bigger issue with xfce4-power-manager.
Xfce4-power-manager takes down the machine, apparently because it has no access to org.freedesktop.Notifications. I've seen this happen twice, with two different xfce4 users on this machine. The machine has 32G ram, no swap. The first time I think the linux out-of-memory killer (oom killer) got it after many many hours, and second time I was able to kill it from the console. It took many hours to get to the console, find the pid, kill it. I think xfce4-power-manager had like 18G memory at the time.
A good way to trigger this:
journalctl --user --follow
- stop xfce4-notifyd
- send a notification, for example
$ notify-send 'hello'
This should trigger a log message like this:
Feb 01 23:46:52 silver dbus-daemon[1188]: [session uid=1010 pid=1188] Successfully activated service 'org.freedesktop.Notifications'
Feb 01 23:46:52 silver org.freedesktop.Notifications[7544]: failed to create display
And if xfce-power-manager is running, it will start spamming gigabytes into journald:
Feb 01 17:53:55 silver org.freedesktop.Notifications[3207]: failed to create display
Feb 01 17:53:55 silver dbus-daemon[1188]: [session uid=1010 pid=1188] Activating service name='org.freedesktop.Notifications' requested by ':1.28' (uid=1010 pid=1359 comm="/run/current-system/sw/bin/xfce4-power-manager " label="kernel")
Feb 01 17:53:55 silver dbus-daemon[1188]: [session uid=1010 pid=1188] Successfully activated service 'org.freedesktop.Notifications'
Feb 01 17:53:55 silver org.freedesktop.Notifications[3210]: failed to create display
Feb 01 17:53:55 silver dbus-daemon[1188]: [session uid=1010 pid=1188] Activating service name='org.freedesktop.Notifications' requested by ':1.28' (uid=1010 pid=1359 comm="/run/current-system/sw/bin/xfce4-power-manager " label="kernel")
Feb 01 17:53:55 silver dbus-daemon[1188]: [session uid=1010 pid=1188] Successfully activated service 'org.freedesktop.Notifications'
This activity seems to be associated with this xfce4-power-manager memory leak.
- Obviously a quick fix is to stop xfce4-power-manager or start xfce4-notifyd, but of course xfce4-power-manager shouldn't go out of control just because the notification service is off line.
- Also, not xfce4 devs fault, but why doesn't the Linux oom killer take action when the machine is hung for hours, and there is such obvious candidate?
- Should xfce be giving these services a memory limit? Is this even possible? Searching bug reports, it seems like people have been combating memory leaks in various xfce services on-and-off over the years.
- Shouldn't xfce4-power-manager back off on the notifications when they are failing instead of dumping several gigabytes into the log? When the notifyd is stopped other services may cause the occasional "failed to create display" message in the log, but nothing else seems to be going into a tight journal spamming loop.
That is about all I the data I have on this issue. I want to keep this machine up so I'm not letting xfce4-power-manager run to watch the memory usage or anything like that.
Thanks!