[Pkg-utopia-maintainers] Bug#1050498: pipewire-pulse systemd service not restarted despite dpkg upgrade of all pipewire packages
bouddebbug at cosmo.torun.pl
bouddebbug at cosmo.torun.pl
Fri Aug 25 11:57:46 BST 2023
Package: pipewire-pulse
Version: 0.3.78-1
Severity: normal
Dear pipewire maintainers,
* What led up to the situation?
I'm trying to getting Mobian Pinephone (PP) audio phone calls to fully
work (person on remote phone hears me and I hear the person on the
remote phone). See
https://salsa.debian.org/Mobian-team/packages/alsa-ucm-conf/-/issues/8
https://salsa.debian.org/Mobian-team/packages/alsa-ucm-conf/-/issues/9
for details.
A bug related to callaudiod in pipewire-0.3.77 was reported to be fixed
in 0.3.78: https://gitlab.com/mobian1/callaudiod/-/issues/30 .
I had pipewire 0.3.77-1 from Mobian/Debian/trixie installed.
* What exactly did you do (or not do) that was effective (or
ineffective)?
I compiled pipewire 0.3.78-1 from Debian (salsa) source with
'fakeroot debian/rules binary'
after applying the two patches in debian/patches/ .
I installed all the newly compiled *.deb files that matched names that I already had
from 0.3.77-1, using dpkg -i *.deb. More specifically, I did:
'for i in gstreamer1.0-pipewire_0.3.78-1_arm64.deb libpipewire-0.3-0_0.3.78-1_arm64.deb libpipewire-0.3-modules_0.3.78-1_arm64.deb libspa-0.2-bluetooth_0.3.78-1_arm64.deb libspa-0.2-jack_0.3.78-1_arm64.deb libspa-0.2-libcamera_0.3.78-1_arm64.deb libspa-0.2-modules_0.3.78-1_arm64.deb pipewire_0.3.78-1_arm64.deb pipewire-alsa_0.3.78-1_arm64.deb pipewire-audio_0.3.78-1_all.deb pipewire-audio-client-libraries_0.3.78-1_all.deb pipewire-bin_0.3.78-1_arm64.deb pipewire-jack_0.3.78-1_arm64.deb pipewire-pulse_0.3.78-1_arm64.deb; do sudo dpkg -i ${i}; done'
four times, as a brute force alternative to working out in which order the
packages depended on each other. The first three times each reported missing
dependencies, but fewer each time. The fourth iteration appeared to be error-free.
I checked that the apt system was clean with
dpkg --audit
which gave an empty response.
I restarted pipewire (several times).
* What was the outcome of this action?
Some phone calls worked :). And some phone calls failed :(.
More specifically, after analysing and tidying log files for my main bug,
I found that the old /usr/bin/pipewire-pulse (0.3.77-1) is still running.
The output of 'pw-dump' shows that there is a mix of 0.3.78-1 and 0.3.77-1
running in parallel. I've kept this situation for the purposes of reporting
this bug, but I'll kill off the old pipewire-pulse process after filing the bug
report.
* What outcome did you expect instead?
What I expected was that the dpkg/apt system and/or the systemd system
should have recognised that the old 'pipewire-pulse' process was invalid
and should have forced it to restart with the 0.3.78-1 version.
SUGGESTED SOLUTIONS:
(1) dpkg or the debian/control or other debian/* file - if pipewire
is re-installed and pipewire-pulse is present, then pipewire-pulse
must not only be updated to the same version, but any processes
actually running must be restarted too. This depends on whether the
debian/* files force restarting of the systemd services or not.
If the services are restarted, then it seems to me that pipewire-pulse
must be restarted along with pipewire (if pipewire-pulse is installed).
(2) systemd alone - if (i) the pipewire-pulse service exists, and (ii)
pipewire is restarted, then (iii) pipewire-pulse must be restarted. I
can only make an educated guess as to what the systemd rules for this
should be. My guess is:
/lib/systemd/user/pipewire.service
PropagatesStopTo=pipewire-pulse
/lib/systemd/user/pipewire-pulse.service
StopPropagatedFrom=pipewire
since a 'restart' is presumably a stop and a start. There doesn't
seem to be a pair PropagatesRestartTo and RestartPropagatesTo.
COMMENT: If upstream has a separate 'pipewire-pulse' package, then
this issue should presumably be also fixed upstream.
DIAGNOSTICS:
$ dpkg -l |grep pipewire
ii gstreamer1.0-pipewire:arm64 0.3.78-1 arm64 GStreamer 1.0 plugin for the PipeWire multimedia server
ii libpipewire-0.3-0:arm64 0.3.78-1 arm64 libraries for the PipeWire multimedia server
ii libpipewire-0.3-modules:arm64 0.3.78-1 arm64 libraries for the PipeWire multimedia server - modules
ii pipewire:arm64 0.3.78-1 arm64 audio and video processing engine multimedia server
ii pipewire-alsa:arm64 0.3.78-1 arm64 PipeWire ALSA plugin
ii pipewire-audio 0.3.78-1 all recommended set of PipeWire packages for a standard audio desktop use
ii pipewire-audio-client-libraries 0.3.78-1 all transitional package for pipewire-alsa and pipewire-jack
ii pipewire-bin 0.3.78-1 arm64 PipeWire multimedia server - programs
ii pipewire-jack:arm64 0.3.78-1 arm64 PipeWire JACK plugin
ii pipewire-pulse 0.3.78-1 arm64 PipeWire PulseAudio daemon
$ ls -l /usr/bin/pipewire-pulse /usr/share/pipewire/pipewire-pulse.conf
lrwxrwxrwx 1 root root 8 Aug 22 13:51 /usr/bin/pipewire-pulse -> pipewire
-rw-r--r-- 1 root root 5990 Aug 22 13:51 /usr/share/pipewire/pipewire-pulse.conf
$ head /usr/share/pipewire/pipewire-pulse.conf
# PulseAudio config file for PipeWire version "0.3.78" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
#
$ ls ~/.config/pipewire*
ls: cannot access '/home/mobian/.config/pipewire*': No such file or directory
[+58%]@mobian:~$ systemctl --user status pipewire
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-08-25 10:42:20 CEST; 1h 28min ago
TriggeredBy: ● pipewire.socket
Main PID: 84989 (pipewire)
Tasks: 3 (limit: 3167)
Memory: 4.4M
CPU: 248ms
CGroup: /user.slice/user-1000.slice/user at 1000.service/session.slice/pipewire.service
└─84989 /usr/bin/pipewire
Aug 25 10:42:20 mobian systemd[774]: Started pipewire.service - PipeWire Multimedia Service.
[+58%]@mobian:~$ systemctl --user status pipewire-pulse
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled)
Active: active (running) since Tue 2023-08-22 13:47:08 CEST; 2 days ago
TriggeredBy: ● pipewire-pulse.socket
Main PID: 853 (pipewire-pulse)
Tasks: 3 (limit: 3167)
Memory: 13.9M
CPU: 25.507s
CGroup: /user.slice/user-1000.slice/user at 1000.service/session.slice/pipewire-pulse.service
└─853 /usr/bin/pipewire-pulse
Aug 22 13:47:08 mobian systemd[774]: Started pipewire-pulse.service - PipeWire PulseAudio.
$ ps -A uf |grep "/usr.*pipewire" |grep -v grep
mobian 853 0.0 0.6 110704 19028 ? S<sl Aug22 0:25 \_ /usr/bin/pipewire-pulse
mobian 84989 0.0 0.3 110120 11404 ? S<sl 10:42 0:00 \_ /usr/bin/pipewire
$ pw-dump |grep -B2 "0\.3\.[0-9]*"
"user-name": "mobian",
"host-name": "mobian",
"version": "0.3.78",
--
"module.name": "libpipewire-module-rt",
"module.usage": "( nice.level=<priority: default 20(don't change)> ) ( rt.prio=<priority: default 88> ) ( rt.time.soft=<in usec: default -1> ) ( rt.time.hard=<in usec: default -1> ) ( rlimits.enabled=<default true> ) ( rtportal.enabled=<default true> ) ( rtkit.enabled=<default true> ) ",
"module.version": "0.3.78",
--
"module.description": "Native protocol using unix sockets",
"module.name": "libpipewire-module-protocol-native",
"module.version": "0.3.78",
--
"module.description": "Generate Profiling data",
"module.name": "libpipewire-module-profiler",
"module.version": "0.3.78",
--
"module.description": "Allow clients to create metadata store",
"module.name": "libpipewire-module-metadata",
"module.version": "0.3.78",
--
"module.description": "Provide a factory to make SPA devices",
"module.name": "libpipewire-module-spa-device-factory",
"module.version": "0.3.78",
--
"module.description": "Provide a factory to make SPA nodes",
"module.name": "libpipewire-module-spa-node-factory",
"module.version": "0.3.78",
--
"module.description": "Allow clients to create and control remote nodes",
"module.name": "libpipewire-module-client-node",
"module.version": "0.3.78",
--
"module.description": "Allow clients to create and control remote devices",
"module.name": "libpipewire-module-client-device",
"module.version": "0.3.78",
--
"module.name": "libpipewire-module-access",
"module.usage": "( access.force=flatpak ) ( access.allowed= [ <cmd-line>,.. ] ) ( access.rejected= [ <cmd-line>,.. ] ) ( access.restricted= [ <cmd-line>,.. ] ) ",
"module.version": "0.3.78",
--
"module.description": "Manage adapter nodes",
"module.name": "libpipewire-module-adapter",
"module.version": "0.3.78",
--
"module.name": "libpipewire-module-link-factory",
"module.usage": "( allow.link.passive=<bool, default false> ) ",
"module.version": "0.3.78",
--
"module.description": "Implements objects for session management",
"module.name": "libpipewire-module-session-manager",
"module.version": "0.3.78",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"clock.power-of-two-quantum": true,
"core.name": "pipewire-mobian-1685",
"core.version": "0.3.77",
--
"config.name": "/usr/share/wireplumber/wireplumber.conf",
"core.name": "pipewire-mobian-84995",
"core.version": "0.3.78",
--
"config.name": "/usr/share/wireplumber/wireplumber.conf",
"core.name": "pipewire-mobian-84995",
"core.version": "0.3.78",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"config.name": "pipewire-pulse.conf",
"core.name": "pipewire-mobian-853",
"core.version": "0.3.77",
--
"clock.power-of-two-quantum": true,
"core.name": "pipewire-mobian-87647",
"core.version": "0.3.78",
-- System Information:
Debian Release: trixie/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: arm64 (aarch64)
Kernel: Linux 6.1-sunxi64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_CRAP, TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages pipewire-pulse depends on:
ii init-system-helpers 1.65.2
ii pipewire 0.3.78-1
Versions of packages pipewire-pulse recommends:
ii wireplumber 0.4.14-4
Versions of packages pipewire-pulse suggests:
ii libspa-0.2-bluetooth 0.3.78-1
ii pulseaudio-utils 16.1+dfsg1-2+b1
-- no debconf information
Cheers
Boud
More information about the Pkg-utopia-maintainers
mailing list