[Bug 2120731] Re: Raspberry Pi 5 16G, Ubuntu 24.04: pemmican-reset waits for notification acknowledgement, prevents full desktop service startup
Kevin Brown
2120731 at bugs.launchpad.net
Fri Aug 15 18:59:00 UTC 2025
** Description changed:
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.
+ 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:
-
+ 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()
+ 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
```
--
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:
New
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