[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
Wed Sep 17 07:52:01 UTC 2025
** Changed in: pemmican (Ubuntu Questing)
Milestone: None => ubuntu-25.10-beta
** Changed in: pemmican (Ubuntu Plucky)
Status: New => Triaged
** Changed in: pemmican (Ubuntu Plucky)
Importance: Undecided => High
** Changed in: pemmican (Ubuntu Noble)
Status: New => Triaged
** Changed in: pemmican (Ubuntu Noble)
Importance: Undecided => High
** Changed in: pemmican (Ubuntu Noble)
Assignee: (unassigned) => Dave Jones (waveform)
** Changed in: pemmican (Ubuntu Plucky)
Assignee: (unassigned) => Dave Jones (waveform)
--
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:
Triaged
Status in pemmican source package in Plucky:
Triaged
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