Fabian Vogt changed bug 1201349
What Removed Added
Status NEW CONFIRMED
CC   fvogt@suse.com

Comment # 1 on bug 1201349 from
I was able to reproduce it with wireplumber log-level 3.

It appears to be a race condition between logind/inotify and
pipewire/wireplumber.

Works:

Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Unknown PCM
dcahdmi:0,10
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Error opening PCM
device dcahdmi:0,10: No such file or directory
Jul 12 10:15:00 localhost.localdomain org_kde_powerdevil[1642]:
org.kde.powerdevil: The profile  "AC" tried to activate "DimDisplay" a
non-existent action. This is usually due to an installation problem, a
configuration problem, or because the action is not supported
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Successfully attached
to mixer 'hw:0'
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support 64 channels, changed to 2.
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support sample format s32le, changed to s16le.
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support 64 channels, changed to 2.
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support sample format s32le, changed to s16le.
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Profile
output:stereo-fallback+input:stereo-fallback available unknown -> yes
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Profile
output:stereo-fallback available unknown -> yes
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Profile
input:stereo-fallback available unknown -> yes
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Profile pro-audio
available yes -> unknown
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: activate profile: off
(0)
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]:
<WpDevice:35:0x55a0872b34f0> restore routes for profile off
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Default profile not
found for alsa_card.pci-0000_00_0a.0
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Best profile changed
to output:stereo-fallback+input:stereo-fallback in alsa_card.pci-0000_00_0a.0
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Setting profile
output:stereo-fallback+input:stereo-fallback on alsa_card.pci-0000_00_0a.0
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: activate profile:
output:stereo-fallback+input:stereo-fallback (1)
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Device: Stereo mapping
'Stereo' (stereo-fallback).
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Activating path
analog-output-lineout
Jul 12 10:15:00 localhost.localdomain wireplumber[2315]: Hardware volume ranges
from -125.00 dB to 0.00 dB.

Fails:

Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Unknown PCM
dcahdmi:0,10
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device dcahdmi:0,10: No such file or directory
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0c' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0c' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0c' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0p' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0p' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: open
'/dev/snd/pcmC0D0p' failed (-13)
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Error opening PCM
device hw:0: Permission denied
Jul 12 10:12:16 localhost.localdomain org_kde_powerdevil[1642]:
org.kde.powerdevil: The profile  "AC" tried to activate "DimDisplay" a
non-existent action. This is usually due to an installation problem, a
configuration problem, or because the action is not supported
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support 64 channels, changed to 2.
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support sample format s32le, changed to s16le.
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support 64 channels, changed to 2.
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: Device hw:0,0 doesn't
support sample format s32le, changed to s16le.
Jul 12 10:12:16 localhost.localdomain wireplumber[2315]: activate profile: off
(0)

When switching active sessions, logind adds and removes "uaccess" acls for
sound device access.
pipewire listens to inotify ATTRIB events on /dev/snd/* and checks for
accessibility there.
The order of those ATTRIB changes appears to be random, and some combinations
result in wireplumber trying to enable devices before they're completely
accessible.

Specifically, if /dev/snd/controlC0 is made accessible before the others, it
breaks. If it made accessible last, it works.

This can be reproduced manually by assuming the role of logind and setting acls
manually:

# Break access -> audio disabled
setfacl -m user:linux:- /dev/snd/*
# Grant access in the working order -> audio works again
setfacl -m user:linux:rw- /dev/snd/{pcm,hw,seq,timer}*; sleep 1; setfacl -m
user:linux:rw- /dev/snd/controlC0
# Break access again -> audio disabled
setfacl -m user:linux:- /dev/snd/*
# Grant access in the broken order -> audio still broken!
setfacl -m user:linux:rw- /dev/snd/controlC0; sleep 1; setfacl -m
user:linux:rw- /dev/snd/*

So pipewire needs to check for accessibility of more device files. I'll file a
report upstream.


You are receiving this mail because: