debcrafters-packages team mailing list archive
-
debcrafters-packages team
-
Mailing list archive
-
Message #00877
[Bug 2110040] Re: dbus-broker: fix compatibility with newer kernel's error code for SO_PEERPIDFD error case
a) Please don't just change the verification tags without showing what
testing has been performed. I'm moving the tags back to verification-
needed.
>From the SRU acceptance message:
"""
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble.
"""
b) There are two facts about this bug. From the description:
b1) dbus-broker in noble, oracular and plucky only checks for EINVAL when calling the SO_PEERPIDFD getsockopt to check if a process already exited
b2) The kernel in 6.16 is changing the return value from EINVAL to ESRCH
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.
The test plan also asks for a container, but without specifying the
host. In containers, the running kernel is that one from the host, and
since this bug is about a kernel interaction, I would think this to be
an important detail.
Overall, I think the test plan is not covering what's needed, nor
demonstrating that the bug is fixed. I don't know if we have a 6.16
kernel available for testing yet.
Could someone please clarify these issues? But at the very least, this
cannot be released now because the test plan verification doesn't even
have a comment stating what was done.
** Tags removed: verification-done verification-done-noble verification-done-oracular verification-done-plucky
** Tags added: verification-needed verification-needed-noble verification-needed-oracular verification-needed-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