#1147647 ukui-service-manager: service reuse fails with dbus-broker

#1147647#5
Date:
2026-09-14 07:34:47 UTC
From:
To:
Dear Maintainer,

ukui-service-manager can fail to activate a system service plugin when
another plugin is already using the same service space.

This is visible in UKUI Control Center. Opening
Accounts -> Account Information can block until the D-Bus activation
times out if another Settings plugin has already been started.

Steps to reproduce:

   1. Restart ukui-system-service-manager.service.
   2. Activate com.control.center.qt.systemdbus.
   3. Activate org.ukui.groupmanager.
   4. Alternatively, open Accounts -> Account Information after another
   Settings plugin has already been started.

Actual result:

org.ukui.groupmanager does not finish activating, and Control Center
stays blocked waiting for the D-Bus call to return.

Expected result:

Both plugins should be able to use the same service space, and the
second plugin should activate normally without blocking Control Center.

Reproduced with:

   - ukui-service-manager 0.1.0-1
   - ukui-control-center 4.20.0.4-1

Regards,

#1147647#10
Date:
2026-09-14 07:51:46 UTC
From:
To:
Dear Maintainer,

I did some further testing and narrowed this down to the system D-Bus
implementation.

The issue reproduces when dbus-broker 37 is used as the system bus, but
I could not reproduce it on an OpenKylin system using dbus-daemon
1.16.2.

The current D-Bus policy relies on send_destination_prefix.
dbus-daemon supports this policy attribute, while dbus-broker 37 does
not, so the corresponding allow rule is ineffective with dbus-broker.

As a result, when org.ukui.Service.Settings already exists, the
launchServices call is rejected by the system bus policy and
org.ukui.groupmanager does not finish activating. Control Center then
stays blocked waiting for the synchronous D-Bus call.

This is relevant to Ubuntu 26.10, where dbus-broker is the default
D-Bus provider.

Tested with:

   - ukui-service-manager 0.1.0-1
   - ukui-control-center 4.20.0.4-1
   - dbus-broker 37
   - dbus-daemon 1.16.2

Regards,