Skip to content

Conversation

@PhilBrk8
Copy link

@PhilBrk8 PhilBrk8 commented Jan 25, 2026

Summary

  • Defer autoswitch when EnumRoute is not yet available
  • Add bounded retry logic to avoid infinite deferrals
  • Reduces profile switches while device routes/ports are incomplete

Background

During Bluetooth profile transitions,
GNOME’s libgnome-volume-control can crash if it receives port notifications before ports are populated.
WirePlumber may switch profiles before EnumRoute is ready, leading to transient portless streams.

Fix

Check for EnumRoute availability before switching/restoring profiles.
If not ready, defer with bounded retries.
Reset retry state on successful switch/restore.

Cross‑reference

Companion defensive fix in libgnome-volume-control PR:
GNOME/libgnome-volume-control#1
This avoids asserting on NULL ports during transient states.

Test plan

  • meson setup build && ninja -C build
  • Manual Bluetooth test: switch A2DP ↔ HFP while GNOME Settings is open; verify no logout/crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant