debcrafters-packages team mailing list archive
-
debcrafters-packages team
-
Mailing list archive
-
Message #00879
[Bug 2110040] Re: dbus-broker: fix compatibility with newer kernel's error code for SO_PEERPIDFD error case
> Please don't just change the verification tags without showing what
testing has been performed. I'm moving the tags back to verification-
needed.
Sure: I have re-performed the exact same check as described in the
templated description, with the package from -proposed instead of
manually built, and verified it still works as expected.
> So to reproduce the bug, or show that it is fixed, we need to trigger
the mentioned getsockopt() call, *AND* do that under kernel 6.16.
That is unnecessary, and unreasonable to ask. It is sufficient to show
that with the change, dbus-broker still works as expected - and it does.
IE, the getsockopt call (which runs every time there's a new client
connecting to the system or session bus) is still working fine with the
change, with current kernels.
The kernel change hasn't happened yet, as we want to be good citizens,
and ensure no regressions will happen. dbus-broker is the only client
relying on the exact old error code, so we are getting it updated in LTS
distributions that run a version that is affected (ie, v35 or newer).
We'll do the error code change afterwards. We did all this extra work as
we want to try and avoid causing issues for users running Noble and
building their own kernels (or future potential HWE backports).
** Tags removed: verification-needed verification-needed-noble verification-needed-oracular verification-needed-plucky
** Tags added: verification-done verification-done-noble verification-done-oracular verification-done-plucky
--
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to dbus-broker in Ubuntu.
https://bugs.launchpad.net/bugs/2110040
Title:
dbus-broker: fix compatibility with newer kernel's error code for
SO_PEERPIDFD error case
Status in dbus-broker package in Ubuntu:
Fix Released
Status in dbus-broker source package in Noble:
Fix Committed
Status in dbus-broker source package in Oracular:
Fix Committed
Status in dbus-broker source package in Plucky:
Fix Committed
Status in dbus-broker source package in Questing:
Fix Released
Bug description:
[Original Description/Impact]
dbus-broker in noble, oracular and plucky only checks for EINVAL when
calling the SO_PEERPIDFD getsockopt to check if a process already
exited.
The kernel in 6.16 is changing the return value from EINVAL to ESRCH so
that the particular case can be distinguished from generic errors:
https://lore.kernel.org/all/20250411-work-pidfs-
enoent-v2-2-60b2d3bb545f@xxxxxxxxxx/
The upstream main branch of dbus-broker has a fix for this:
https://github.com/bus1/dbus-
broker/commit/4b1d9da51dc2703b7596243cb555a689bb27b4c1
Without this fix, running a new kernel with the old dbus-broker won't
be able to detect this failure mode anymore, and dbus-broker will stop
working in case that happens, as it has been reported at:
https://lore.kernel.org/all/20250415223454.GA1852104@ax162/
Backporting this back to noble/oracular/plucky will ensure that users
running with a new kernel (e.g.: HWE, local backport) won't face this
issue.
[Test Plan]
Build and install the patched dbus-broker in a container and check
that it doesn't break:
Noble:
root@localhost:/tmp# apt install ./dbus-broker_35-2ubuntu0.1_amd64.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'dbus-broker' instead of './dbus-broker_35-2ubuntu0.1_amd64.deb'
The following NEW packages will be installed:
dbus-broker
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/169 kB of archives.
After this operation, 430 kB of additional disk space will be used.
Get:1 /tmp/dbus-broker_35-2ubuntu0.1_amd64.deb dbus-broker amd64 35-2ubuntu0.1 [169 kB]
Selecting previously unselected package dbus-broker.
(Reading database ... 27500 files and directories currently installed.)
Preparing to unpack .../dbus-broker_35-2ubuntu0.1_amd64.deb ...
Unpacking dbus-broker (35-2ubuntu0.1) ...
Setting up dbus-broker (35-2ubuntu0.1) ...
Replacing the running dbus-daemon with dbus-broker requires a reboot:
please reboot the system when convenient.
Created symlink /etc/systemd/user/dbus.service → /usr/lib/systemd/user/dbus-broker.service.
Created symlink /etc/systemd/system/dbus.service → /usr/lib/systemd/system/dbus-broker.service.
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for systemd (255.4-1ubuntu8) ...
root@localhost:/tmp# systemctl daemon-reload
root@localhost:/tmp# systemctl restart dbus-broker
root@localhost:/tmp# systemctl status dbus-broker
● dbus-broker.service - D-Bus System Message Bus
Loaded: loaded (/usr/lib/systemd/system/dbus-broker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-05-06 15:00:08 BST; 3s ago
TriggeredBy: ● dbus.socket
Docs: man:dbus-broker-launch(1)
Main PID: 2458 (dbus-broker-lau)
Tasks: 2 (limit: 66786)
Memory: 1.3M (peak: 2.1M)
CPU: 10ms
CGroup: /system.slice/dbus-broker.service
├─2458 /usr/bin/dbus-broker-launch --scope system --audit
└─2459 dbus-broker --log 4 --controller 9 --machine-id b70250626e354e8481fe3ed01e2a769f --max-bytes 5368>
May 06 15:00:08 localhost systemd[1]: Starting dbus-broker.service - D-Bus System Message Bus...
May 06 15:00:08 localhost dbus-broker-launch[2458]: Kernel is missing AppArmor DBus support.
May 06 15:00:08 localhost systemd[1]: Started dbus-broker.service - D-Bus System Message Bus.
May 06 15:00:08 localhost dbus-broker-launch[2458]: Ready
root@localhost:/tmp# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
Plucky:
root@localhost:/tmp# apt install ./dbus-broker_36-1ubuntu0.1_amd64.deb
Note, selecting 'dbus-broker' instead of './dbus-broker_36-1ubuntu0.1_amd64.deb'
The following packages were automatically installed and are no longer required:
icu-devtools libpython3.12t64 libxenmisc4.19 linux-tools-6.12.0-15
libicu-dev libunwind8 linux-tools-6.11.0-8 linux-tools-6.12.0-15-generic
libicu76 libxenmisc4.17t64 linux-tools-6.11.0-8-generic
Use 'apt autoremove' to remove them.
Installing:
dbus-broker
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
Download size: 0 B / 186 kB
Space needed: 475 kB / 14.5 GB available
Get:1 /tmp/dbus-broker_36-1ubuntu0.1_amd64.deb dbus-broker amd64 36-1ubuntu0.1 [186 kB]
Selecting previously unselected package dbus-broker.
(Reading database ... 35589 files and directories currently installed.)
Preparing to unpack .../dbus-broker_36-1ubuntu0.1_amd64.deb ...
Unpacking dbus-broker (36-1ubuntu0.1) ...
Setting up dbus-broker (36-1ubuntu0.1) ...
Replacing the running dbus-daemon with dbus-broker requires a reboot:
please reboot the system when convenient.
Created symlink '/etc/systemd/user/dbus.service' → '/usr/lib/systemd/user/dbus-broker.service'.
Created symlink '/etc/systemd/system/dbus.service' → '/usr/lib/systemd/system/dbus-broker.service'.
Processing triggers for man-db (2.13.0-1) ...
Processing triggers for systemd (257.4-1ubuntu3) ...
root@localhost:/tmp# systemctl daemon-reload
root@localhost:/tmp# systemctl restart dbus-broker
root@localhost:/tmp# systemctl status dbus-broker
● dbus-broker.service - D-Bus System Message Bus
Loaded: loaded (/usr/lib/systemd/system/dbus-broker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-05-06 15:02:31 BST; 2s ago
Invocation: f56d62e8fbef494bb7648f951f327d53
TriggeredBy: ● dbus.socket
Docs: man:dbus-broker-launch(1)
Main PID: 2449 (dbus-broker-lau)
Tasks: 2 (limit: 66786)
Memory: 1.3M (peak: 1.9M)
CPU: 14ms
CGroup: /system.slice/dbus-broker.service
├─2449 /usr/bin/dbus-broker-launch --scope system --audit
└─2450 dbus-broker --log 4 --controller 9 --machine-id c88acd22b631411c9e1d2467add01ca4 --max-bytes 5368>
May 06 15:02:31 localhost systemd[1]: Starting dbus-broker.service - D-Bus System Message Bus...
May 06 15:02:31 localhost dbus-broker-launch[2449]: Kernel is missing AppArmor DBus support.
May 06 15:02:31 localhost systemd[1]: Started dbus-broker.service - D-Bus System Message Bus.
May 06 15:02:31 localhost dbus-broker-launch[2449]: Ready
root@localhost:/tmp# cat /etc/os-release
PRETTY_NAME="Ubuntu 25.04"
NAME="Ubuntu"
VERSION_ID="25.04"
VERSION="25.04 (Plucky Puffin)"
VERSION_CODENAME=plucky
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=plucky
LOGO=ubuntu-logo
Oracular:
root@localhost:/tmp# apt install ./dbus-broker_36-1ubuntu0.1_amd64.deb
Note, selecting 'dbus-broker' instead of './dbus-broker_36-1ubuntu0.1_amd64.deb'
Installing:
dbus-broker
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
Download size: 0 B / 164 kB
Space needed: 422 kB / 14.5 GB available
Get:1 /tmp/dbus-broker_36-1ubuntu0.1_amd64.deb dbus-broker amd64 36-1ubuntu0.1 [164 kB]
Selecting previously unselected package dbus-broker.
(Reading database ... 26354 files and directories currently installed.)
Preparing to unpack .../dbus-broker_36-1ubuntu0.1_amd64.deb ...
Unpacking dbus-broker (36-1ubuntu0.1) ...
Setting up dbus-broker (36-1ubuntu0.1) ...
Replacing the running dbus-daemon with dbus-broker requires a reboot:
please reboot the system when convenient.
Created symlink '/etc/systemd/user/dbus.service' → '/usr/lib/systemd/user/dbus-broker.service'.
Created symlink '/etc/systemd/system/dbus.service' → '/usr/lib/systemd/system/dbus-broker.service'.
Processing triggers for man-db (2.12.1-3) ...
Processing triggers for systemd (256.5-2ubuntu3) ...
root@localhost:/tmp# systemctl daemon-reload
root@localhost:/tmp# systemctl restart dbus-broker
root@localhost:/tmp# systemctl status dbus-broker
● dbus-broker.service - D-Bus System Message Bus
Loaded: loaded (/usr/lib/systemd/system/dbus-broker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-05-06 15:05:32 BST; 2s ago
Invocation: 438703731d2a488bb4db9031f50906fd
TriggeredBy: ● dbus.socket
Docs: man:dbus-broker-launch(1)
Main PID: 3099 (dbus-broker-lau)
Tasks: 2 (limit: 66786)
Memory: 1.2M (peak: 1.9M)
CPU: 15ms
CGroup: /system.slice/dbus-broker.service
├─3099 /usr/bin/dbus-broker-launch --scope system --audit
└─3100 dbus-broker --log 4 --controller 9 --machine-id 6d2f232cba464e4d9af4ba93985aa438 --max-bytes 5368>
May 06 15:05:32 localhost systemd[1]: Starting dbus-broker.service - D-Bus System Message Bus...
May 06 15:05:32 localhost dbus-broker-launch[3099]: Kernel is missing AppArmor DBus support.
May 06 15:05:32 localhost systemd[1]: Started dbus-broker.service - D-Bus System Message Bus.
May 06 15:05:32 localhost dbus-broker-launch[3099]: Ready
root@localhost:/tmp# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.10"
NAME="Ubuntu"
VERSION_ID="24.10"
VERSION="24.10 (Oracular Oriole)"
VERSION_CODENAME=oracular
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=oracular
LOGO=ubuntu-logo
[Where problems could occur]
The updated logic adds a new expected error code from the SO_PEERPIDFD
getsockopt invocation. An issue here would affect the ability of dbus-
broker to get pidfds from clients, which would cause systemd and other
clients to fall back to pid-based tracking of requests.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dbus-broker/+bug/2110040/+subscriptions