[Bug 2120731] Re: Raspberry Pi 5 16G, Ubuntu 24.04: pemmican-reset waits for notification acknowledgement, prevents full desktop service startup
Dave Jones
2120731 at bugs.launchpad.net
Tue Sep 16 14:28:25 UTC 2025
Hmm, the issue with exiting is that the process isn't around to respond
to requests for "more information" which is part of the spec. Your AI
has identified where the process exits in the event there are no more
pending notifications (such as in the case that the PSU is sufficient,
or that it's insufficient but all warnings are inhibited), but I suspect
the actual issue is the registration as a oneshot service, when it
should probably be a regular service which is permitted to "exit
cleanly" without requiring restart.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to pemmican in Ubuntu.
Matching subscriptions: pemmican-bugs
https://bugs.launchpad.net/bugs/2120731
Title:
Raspberry Pi 5 16G, Ubuntu 24.04: pemmican-reset waits for
notification acknowledgement, prevents full desktop service startup
Status in pemmican package in Ubuntu:
Triaged
Status in pemmican source package in Noble:
New
Status in pemmican source package in Plucky:
New
Status in pemmican source package in Questing:
Triaged
Bug description:
When pemmican-reset starts and finds that the power supply is
insufficient, it issues a notification. This is all well and good.
But the way it does so is to *wait for the notification to be
acknowledged* before it exits. That is *not* all well and good,
because in doing so it prevents systemd user services such as
graphical-session from starting. And this is so because it specifies
in its systemd service description:
```
[Install]
WantedBy=graphical-session.target
```
The end result is that if it issues a notification, the graphical
session service will hang waiting for it to complete until the user
explicitly acknowledges the notification. This, in turn, causes xdg-
desktop-portal to fail to start, and that causes gnome-terminal-
service to fail to start because it waits for the identifier supplied
by xdg-desktop-portal to become available via dbus. And as a
consequence, you can't start gnome-terminal until you clear the
notification (and perhaps not even then, since these other service
startups might well have timed out by the time the notification is
acknowledged).
This is a serious bug. Ubuntu users on Pi5 systems that have power
supplies that would result in this notification will *all* be affected
by this in various ways, depending on what user services need to be up
and running for them to do what they do.
The bottom line is this: pemmican-reset *must not* block in such a way
as to prevent anything else from starting. Its systemd descriptor
says that it's a one-shot startup:
```
[Service]
Slice=session.slice
Type=oneshot
ExecStart=pemmican-reset
Restart=on-failure
RestartSec=1s
```
which means that systemd will wait for it to exit.
I worked around this issue by supplying my own augmentation to the
pemmican-reset systemd descriptor:
```
# /etc/systemd/user/pemmican-reset.service.d/fix-deps.conf
[Unit]
After=graphical-session.target
[Install]
WantedBy=default.target
```
While pemmican-reset still sits there until the notification is
acknowledged, the above at least allows the rest of the desktop system
to start properly and thus gnome-terminal now starts as expected.
The bottom line is this: pemmican-reset should issue the notification
and *exit immediately*, rather than waiting for the user to
acknowledge the message. The AI I've been working with to diagnose
this claims this to be the offending code:
/usr/lib/python3/dist-packages/pemmican/gui.py:
```
# If nothing is pending (already!), just exit immediately
if not self.notifier.pending:
self.main_loop.quit()
```
which seems sensible.
LSB release info:
```
No LSB modules are available.
Description: Ubuntu 24.04.3 LTS
Release: 24.04
```
Package info:
```
kevin at printserver-pi4:~$ dpkg -l pemmican-desktop
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================-==============-============-=========================================================================
ii pemmican-desktop 1.0.3-0ubuntu1 all Notify users of Raspberry Pi 5 power issues via freedesktop notifications
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pemmican/+bug/2120731/+subscriptions
More information about the foundations-bugs
mailing list