race-condition between wireplumber and pipewire-pulse
- PipeWire version (
pipewire --version
):pipewire 0.3.58
andwireplumber 0.4.11
- Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
):Debian GNU/Linux bookworm/sid
Description of Problem:
For context, Debian packages don't use pipewire-media-session.service
alias in pipewire-pulse.service
[1] and wireplumber.service
[2] as a workaround to a bug in systemd not correctly managing alias [3].
As reported on Debian https://bugs.debian.org/1019944#33, a race condition could still happen between wireplumber and pipewire-pulse.
It has been mitigated by adding a session manager in Wants=
and After=
fields of pipewire-pulse.service in pipewire!970 (merged). This seemed to do the trick when aliases were in place. But, without aliases it seems pipewire-pulse.service can be ready before wireplumber.service.
The proposed solution not to have this race condition again seems to add sd_notify [4] to wireplumber and send a signal to systemd when it is set up correctly and have the wireplumber service wait for that signal (Type=notify).
How Reproducible:
Not reproducible by all users.