Public bug reported:

After the automatic security upgrade from `249.11-0ubuntu3.21` to
`249.11-0ubuntu3.22` (installed via unattended-upgrades on 2026-08-11
06:57 local time), `journalctl` and `systemd-tmpfiles` fail immediately
with a symbol lookup error. The issue only manifested after a full
reboot; the system kept running normally for ~40 hours between the
package upgrade and the reboot, since the already-running processes kept
using the previously loaded (working) library in memory.

Steps to reproduce:
1. System running `249.11-0ubuntu3.21` upgrades to `249.11-0ubuntu3.22` via 
unattended-upgrades.
2. Reboot the machine.
3. Run `journalctl --version` or any `journalctl` command.

Expected result:
`journalctl` runs normally.

Actual result:
```
journalctl: symbol lookup error: journalctl: undefined symbol: strv_push, 
version SD_SHARED
```

The same error appears for `systemd-tmpfiles` during package
configuration.

Additional diagnostics:

- `dpkg -S /usr/bin/journalctl` confirms the binary belongs to the `systemd` 
package (version `249.11-0ubuntu3.22`).
- `debsums -c systemd` reports no checksum mismatches — the binary is not 
corrupted or modified locally; it matches exactly what the `.deb` package 
installs.
- `nm -D /usr/lib/systemd/libsystemd-shared-249.so | grep strv_push` shows the 
library only exports `strv_push_pair` and `strv_push_with_size` (both versioned 
`SD_SHARED`), but not a bare `strv_push` symbol.
- `objdump -T $(which journalctl) | grep strv_push` confirms `journalctl` has 
an **undefined** reference to plain `strv_push` versioned `SD_SHARED`.
- Reinstalling the same package version (`apt install --reinstall systemd 
libsystemd0 udev`) does not fix the issue — the same symbol mismatch persists 
after reinstall and after a full reboot.
- Downstream effects observed: `wireplumber.service` fails to start 
(`status=70`), breaking all audio output (wired and Bluetooth). Bluetooth 
devices are visible and the adapter is functional, but no audio profiles 
(A2DP/HSP/HFP) are advertised, since `wireplumber` never registers them with 
`bluetoothd`.

This looks like an internal ABI/symbol mismatch introduced by the `.22`
security update — specifically possibly related to the patch `basic-
strv-add-optimizable-version-of-strv_push-consume-e.patch` included in
that release's changelog, which appears to have altered how `strv_push`
is exported/split into `strv_push_pair`/`strv_push_with_size` without
updating all callers.

System information:
- Ubuntu 22.04 (Jammy)
- systemd version: 249.11-0ubuntu3.22
- Architecture: amd64

Workaround:
Downgrading `systemd`, `libsystemd0`, `udev`, and related packages to 
`249.11-0ubuntu3.21` should restore functionality, but these versions are no 
longer available in the standard Ubuntu archive pool (only `.22` and the 
original `.3` remain).

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163371

Title:
   journalctl and other systemd binaries fail with "undefined symbol:
  strv_push, version SD_SHARED" after upgrade to 249.11-0ubuntu3.22

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2163371/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to