You are not logged in.

#1 Today 12:21:10

SubS0
Member
Registered: 2015-02-10
Posts: 40

wireplumber 0.5.16-1: ALSA sink nodes are never destroyed on USB

After upgrading to wireplumber 0.5.16-1 from extra-testing, ALSA sink nodes for USB audio devices are never destroyed when the device is unplugged. Each replug adds another node, so sinks accumulate indefinitely. Applications that try to bind to a stale node (Firefox here) become unresponsive.

I'm not a WirePlumber wizard, so maybe I'm missing something!
Downgrading the kernel from 7.2.2.arch1-1 -> 7.1.11.arch1-1 doesn't change this behavior.
Downgrading to wireplumber 0.5.15-1 (same DAC, same port, same cable, same me) from [extra] fixes it completely.


If I plug a USB DAC, unplug it, plug it again, checking `pactl list short sinks` against `/proc/asound/cards` at each step (device is an Amanero Combo384) here what I obtain:

                T0 unplugged   T1 plugged   T2 unplugged   T3 replugged
0.5.15          none           282          none           291
0.5.16          326            326, 361     326, 361       326, 361, 369

With 0.5.15 the node tracks the hardware exactly. With 0.5.16 no node is ever
removed. At T2 there are two sinks and zero matching ALSA cards.

The kernel handles the removal normally and the card disappears from /proc/asound/cards. At each removal I got:

usb 3-1: USB disconnect, device number 13

wireplumber sees it too, but the node survives:

spa.alsa: poll fd error/hangup (card removed?), removing poll sources
s-monitors: Could not find ALSA device for node alsa_output.usb-...
spa.alsa: 'front:3': playback open failed: No such file or directory
pw.node: (...) suspended -> error (Start error: No such file or directory)

If my understanding is right, the stale node keeps retrying on a card that no longer exists.

I can't open an issue on gitlab.archlinux.org and I'm not even sure that I don't miss something here… There is something in the changelog but it's unclear for me.

I read that 0.5.16 change "made monitors wait for successful device activation before storing the devices and nodes as managed objects". Is it related?

I kept the logs (journalctl and kernel messages) for each step if needed.

Is this a bug or do Ineed to change something on my config (but, as I tried with no ~/.config/wireplumber, I doubt)?

Offline

Board footer

Powered by FluxBB