pid1: lookup owning PID of BusName= name of services asynchronously
authorLennart Poettering <lennart@poettering.net>
Thu, 17 Feb 2022 13:40:25 +0000 (14:40 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 18 Feb 2022 09:49:31 +0000 (10:49 +0100)
commite39eb045a502d599e6cd3fda7a46020dd438d018
tree0274e41fadbc5595338b6166653e5351c3e92ef8
parent1e8b312e5a22538f91defb89cf2997e09e106297
pid1: lookup owning PID of BusName= name of services asynchronously

A first step of removing blocking calls to the D-Bus broker from PID 1.
There's a lot more to got (i.e. grep src/core/ for sd_bus_creds
basically), but it's a start.

Removing blocking calls to D-Bus broker deals systematicallly with
deadlocks caused by dbus-daemon blocking on synchronous IPC calls back
to PID1 (e.g. Varlink calls through nss-systemd). Bugs such as #15316.

Also-see: https://github.com/systemd/systemd/pull/22038#issuecomment-1042958390
src/core/service.c
src/core/service.h