fwupd-refresh.service always fails after hibernate
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
fwupd (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Won't Fix
|
Undecided
|
Unassigned | ||
Jammy |
New
|
Undecided
|
Unassigned | ||
Kinetic |
Won't Fix
|
Undecided
|
Unassigned | ||
Lunar |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
fwupd-refresh.
- Desktop is active, NetworkManager is connected.
- Machine is hibernated.
- On wakeup, systemd will start NetworkManager then fwupd-refresh.
There's however, a race condition there:
- NetworkManager starts first.
- fwupd-refresh.
- fwupd-refresh.
- NetworkManager connects to network a couple seconds later.
The following journal logs illustrate that:
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown kernel: r8169 0000:06:00.0 enp6s0: Link is Down
Feb 27 11:27:27 brown fwupd[2459754]: 11:27:27:0099 GLib-GObject value "1818326128" of type 'guint' is invalid or out of range for property 'kind' of type 'guint'
Feb 27 11:27:27 brown acpid[2037]: client connected from 4266[0:0]
Feb 27 11:27:27 brown acpid[2037]: 1 client rule loaded
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown systemd[1]: man-db.service: Deactivated successfully.
Feb 27 11:27:27 brown systemd[1]: Finished Daily man-db regeneration.
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown NetworkManager[
Feb 27 11:27:27 brown dbus-daemon[2047]: [system] Successfully activated service 'org.freedeskto
Feb 27 11:27:27 brown systemd[1]: Starting Update APT News...
Feb 27 11:27:27 brown systemd[1]: Started Firmware update daemon.
Feb 27 11:27:27 brown systemd[1]: Starting Update the local ESM caches...
Feb 27 11:27:27 brown fwupdmgr[2459622]: (fwupdmgr:2459622): Fwupd-DEBUG: 11:27:27.743: Emitting ::status-changed() [idle]
Feb 27 11:27:27 brown fwupdmgr[2459622]: Updating lvfs
Feb 27 11:27:27 brown fwupdmgr[2459622]: (fwupdmgr:2459622): Fwupd-DEBUG: 11:27:27.750: downloading https:/
Feb 27 11:27:27 brown fwupdmgr[2459622]: (fwupdmgr:2459622): Fwupd-DEBUG: 11:27:27.751: Emitting ::status-changed() [downloading]
Feb 27 11:27:27 brown fwupdmgr[2459622]: Downloading…: 0%
Feb 27 11:27:27 brown fwupdmgr[2459622]: (fwupdmgr:2459622): Fwupd-DEBUG: 11:27:27.751: Emitting ::status-changed() [idle]
Feb 27 11:27:27 brown systemd[1]: fwupd-refresh.
Feb 27 11:27:27 brown systemd[1]: fwupd-refresh.
Feb 27 11:27:27 brown systemd[1]: Failed to start Refresh fwupd metadata and update motd.
Feb 27 11:27:27 brown systemd[1]: apt-news.service: Deactivated successfully.
Feb 27 11:27:27 brown systemd[1]: Finished Update APT News.
Feb 27 11:27:28 brown wpa_supplicant[
Feb 27 11:27:29 brown ModemManager[2147]: <info> [base-manager] couldn't check support for device '/sys/devices/
Feb 27 11:27:29 brown ModemManager[2147]: <info> [base-manager] couldn't check support for device '/sys/devices/
Feb 27 11:27:30 brown wpa_supplicant[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
Feb 27 11:27:30 brown NetworkManager[
The service will be in a failed state, until fwupd-refresh.timer kicks in, which can take up to 12h to happen.
As I have alerts on my machine to detect failed systemd units, this ends up triggering every time the machine is hibernated. Arguably, the alert should be bound by the 12h fwupd-refresh.timer (and only trigger after 12h of being continuously in a fail state, but it seems that addressing this race condition, would still be valid.
One possibility, is to leverage systemd [Service] Restart, and add some retries there, with a couple seconds interval. This should be enough to give time for NetworkManager to get network access working, so fwupd-refresh.
ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: fwupd 1.7.9-1~22.04.1 [modified: lib/systemd/
ProcVersionSign
Uname: Linux 5.15.0-60-generic x86_64
NonfreeKernelMo
ApportVersion: 2.20.11-0ubuntu82.3
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: Budgie:GNOME
Date: Mon Feb 27 12:08:54 2023
InstallationDate: Installed on 2023-02-11 (15 days ago)
InstallationMedia: Ubuntu-MATE 22.04.1 LTS "Jammy Jellyfish" - Release amd64 (20220809.1)
SourcePackage: fwupd
UpgradeStatus: No upgrade log present (probably fresh install)
Can you please bring this bug report upstream for discussion?
I think we want a general solution not a Ubuntu specific one.