Status quo, dbus-broker self-terminates when failing to parse a service config.
The stated reason are security concerns for possibly ignoring restricitve instructions.
Because of the heavy reliance of modern software stacks, including logind, on a functional system bus, the fatal failure of the system bus leads to an effectively disfunctional system that the user will to have to anaylze and fix offline.
Recent threads on the archlinux bbs¹ have shown that this condition will cause users to to engage in uninformed mitigational efforts (return to dbus-daemon over re-installation to wild actions on the filesystem), likely because they're overwhelmed by the error, the urge to return basic functionality and the need to fix it offline.
Flawed strategies include:
- Hope that google gets better at finding correct solutions.
The user will still be confronted with a complete system failure and there's no guarantee they'll be able to isolate the proper approaches from the noise (see the first bbs thread where another user picked up the flawed approach right after the situation had been explained ad nauseam)
- Hope that legacy services get fixed upstream.
They might no longer be maintained and the problem can occur for new bugs in services or downstream mistakes (bad "touch") or even bugs in dbus-broker.
Necessary changes:
dbus-broker is a system-critical process. It has to
a) be more resiliant and
b) communicate the problem, its cause and correct treatment better than "no login for you, lol"
Both imply that the affected system continues to function as much as possible.
Taking the security concerns somewhat into consideration, the broker certainly can detect that the syntactically flawed config indicates some problem (whether security related or not)
But that problem does not affect the broker directly.
It is very much capable of containing it, by denying the specific service access to the bus, whilst maintainig general functionality.
This might still lead to a partially misbehaving system (flawed sevice fails) but will on average allow
a) the user to login and inspect the running system and
b) the dbus-broker process, that is now aware of the problem, to communicate this to the user, eg.
- through any instance of org.freedesktop.Notifications appearing on any bus or
- with an aggressive error message and stalls during the boot (though splash systems and the mere absence of the user might spoil that)
- the system journal that might be consulted to inquire the failing service and resulting partial misbehavior
It is IMO however not the brokers job to fix the world by refusing action unless the system is in pristine condition.
It can itr eg. also not guarantee logic correctness of the service configurations.
¹ https://bbs.archlinux.org/viewtopic.php?id=292174
https://bbs.archlinux.org/viewtopic.php?id=292149
https://bbs.archlinux.org/viewtopic.php?id=292126
https://bbs.archlinux.org/viewtopic.php?id=292200
Status quo, dbus-broker self-terminates when failing to parse a service config.
The stated reason are security concerns for possibly ignoring restricitve instructions.
Because of the heavy reliance of modern software stacks, including logind, on a functional system bus, the fatal failure of the system bus leads to an effectively disfunctional system that the user will to have to anaylze and fix offline.
Recent threads on the archlinux bbs¹ have shown that this condition will cause users to to engage in uninformed mitigational efforts (return to dbus-daemon over re-installation to wild actions on the filesystem), likely because they're overwhelmed by the error, the urge to return basic functionality and the need to fix it offline.
Flawed strategies include:
The user will still be confronted with a complete system failure and there's no guarantee they'll be able to isolate the proper approaches from the noise (see the first bbs thread where another user picked up the flawed approach right after the situation had been explained ad nauseam)
They might no longer be maintained and the problem can occur for new bugs in services or downstream mistakes (bad "touch") or even bugs in dbus-broker.
Necessary changes:
dbus-broker is a system-critical process. It has to
a) be more resiliant and
b) communicate the problem, its cause and correct treatment better than "no login for you, lol"
Both imply that the affected system continues to function as much as possible.
Taking the security concerns somewhat into consideration, the broker certainly can detect that the syntactically flawed config indicates some problem (whether security related or not)
But that problem does not affect the broker directly.
It is very much capable of containing it, by denying the specific service access to the bus, whilst maintainig general functionality.
This might still lead to a partially misbehaving system (flawed sevice fails) but will on average allow
a) the user to login and inspect the running system and
b) the dbus-broker process, that is now aware of the problem, to communicate this to the user, eg.
It is IMO however not the brokers job to fix the world by refusing action unless the system is in pristine condition.
It can itr eg. also not guarantee logic correctness of the service configurations.
¹ https://bbs.archlinux.org/viewtopic.php?id=292174
https://bbs.archlinux.org/viewtopic.php?id=292149
https://bbs.archlinux.org/viewtopic.php?id=292126
https://bbs.archlinux.org/viewtopic.php?id=292200