#1153029 wireplumber: stuck on Dummy Output after login (EBUSY race with GDM greeter)

Package:
wireplumber
Source:
wireplumber
Description:
modular session / policy manager for PipeWire
Submitter:
Juan Pablo Peña Rocha
Date:
2026-11-04 18:29:01 UTC
Severity:
normal
#1153029#5
Date:
2026-11-04 18:14:23 UTC
From:
To:
Stuck on "Dummy Output" after login: WirePlumber does not retry when the
ALSA device is briefly busy (EBUSY) due to a race with GDM's greeter
PipeWire

Hardware / system:
- Desktop ASUS, AMD Ryzen APU (Phoenix1), Realtek ALC1220 on the Ryzen HD
  Audio Controller (snd_hda_intel, pci 0000:0a:00.6), plus AMD HDMI audio.
- Debian 13 (trixie), GNOME on Wayland.
- Kernel: 7.1.13+deb13-amd64 (backports).
- pipewire 1.4.2-1, wireplumber 0.5.8-2, pipewire-pulse 1.4.2-1,
  gdm3 48.0-2, gnome-shell 48.7-0+deb13u2.

Steps to reproduce:
1. Reboot and log in at the GDM screen (intermittent; depends on timing
   between the greeter session and the user session).
2. Check sound output in GNOME: only "Dummy Output" is offered.

Expected behavior:
The ALC1220 analog sink should be available.

Actual behavior:
Only "Dummy Output" appears, even though the ALSA card is present
(aplay -l shows "card 1: Generic_1, device 0: ALC1220 Analog").

What I found in the logs of a failing boot:
- 12:05:35 kernel: the codec probes fine at boot
  ("snd_hda_codec_alc882 hdaudioC1D0: autoconfig for ALC1220"), so the
  kernel/driver side is OK.
- 12:05:37 two independent PipeWire stacks start at the same time:
  one for the GDM greeter session (user Debian-gdm, uid 110) and one for
  the user session (uid 1000). Both start pipewire + wireplumber +
  pipewire-pulse.
- 12:05:38 the user session's pipewire fails to open the PCM because the
  greeter's pipewire is holding it:

    pipewire: spa.alsa: 'front:1': capture open failed: Dispositivo o
recurso ocupado (EBUSY)
    pipewire: mod.adapter: can't get format: Dispositivo o recurso ocupado
    wireplumber: s-monitors: Failed to create
alsa_input.pci-0000_0a_00.6.analog-stereo:
                 Object activation aborted: PipeWire proxy destroyed

- A few seconds later the greeter session is torn down and the device is
  released, but WirePlumber never retries, so the session is stuck with
  the dummy output until the audio stack is restarted.

Workaround:
systemctl --user restart pipewire pipewire-pulse wireplumber
brings the ALC1220 sink back immediately. Currently I run this via an
autostart script with a 3-second delay.

Notes:
- The same symptom has also appeared after suspend/resume.
- It would be nice if WirePlumber retried node creation when opening the
  ALSA device fails with EBUSY (or if the GDM greeter did not hold the
  audio device while the user session is starting).

Thanks,
Juan Pablo

#1153029#10
Date:
2026-11-04 18:27:04 UTC
From:
To:
Additional information for this bug:

- On the affected system (kernel 7.1.13+deb13-amd64 from backports,
  Debian 13) snd_hda_intel runs with power_save=10 and
  power_save_controller=Y. There is no local configuration setting
  these (no TLP, no modprobe.d options, no udev rules): they come from
  the new kernel defaults (power_save_controller defaults to on since
  kernel 6.15, IIRC).

- Timeline: audio worked fine with kernel 6.12.x; the intermittent
  failures started right after upgrading to kernel 7.1.8/7.1.13 from
  trixie-backports (mid-September 2026).

- I am now testing 'options snd_hda_intel power_save=0
  power_save_controller=N' as a mitigation for the suspend/resume
  variant. The login race (GDM greeter PipeWire vs user session) is
  unaffected by this and still needs the restart workaround.

El mié, 4 nov 2026 a la(s) 12:17 p.m., Debian Bug Tracking System (
owner@bugs.debian.org) escribió: