vrlink seems to deadlock when destroying its PipeWire audio nodes.
Thread 2 (Thread 0x7f2c28dff6c0 (LWP 18718) "vrlink-pw"):
#0 futex_wait (futex_word=0x7f2c90ad7708 <_rtld_global+1800>, expected=2, private=0) at ../sysdeps/nptl/futex-internal.h:126
#1 __GI___lll_lock_wait (futex=futex@entry=0x7f2c90ad7708 <_rtld_global+1800>, private=0) at lowlevellock.c:49
#2 0x00007f2c90502139 in lll_mutex_lock_optimized (mutex=0x7f2c90ad7708 <_rtld_global+1800>) at pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x7f2c90ad7708 <_rtld_global+1800>) at pthread_mutex_lock.c:108
#4 0x00007f2c90aa254d in _dl_close (_map=0x7f2c3c024280) at dl-close.c:763
#5 0x00007f2c90aa1456 in __GI__dl_catch_exception (exception=exception@entry=0x7f2c28dfeae0, operate=<optimized out>, args=<optimized out>) at dl-catch.c:241
#6 0x00007f2c90aa15a9 in _dl_catch_error (objname=0x7f2c28dfeb48, errstring=0x7f2c28dfeb50, mallocedp=0x7f2c28dfeb47, operate=<optimized out>, args=<optimized out>) at dl-catch.c:260
#7 0x00007f2c904faa03 in _dlerror_run (operate=<optimized out>, args=<optimized out>) at dlerror.c:138
#8 0x00007f2c904fa743 in __dlclose (handle=<optimized out>) at dlclose.c:31
#9 0x00007f2c907fb279 in ?? () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#10](/issue/ValveSoftware/SteamVR-for-Linux/10) 0x00007f2c907fb495 in ?? () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#11](/issue/ValveSoftware/SteamVR-for-Linux/11) 0x00007f2c907fbf3b in pw_unload_spa_handle () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#12](/issue/ValveSoftware/SteamVR-for-Linux/12) 0x00007f2c90805c79 in pw_impl_port_set_mix () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#13](/issue/ValveSoftware/SteamVR-for-Linux/13) 0x00007f2c908064a7 in ?? () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#14](/issue/ValveSoftware/SteamVR-for-Linux/14) 0x00007f2c907f7d0d in pw_impl_node_destroy () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#15](/issue/ValveSoftware/SteamVR-for-Linux/15) 0x00007f2c9081e3e3 in pw_stream_disconnect () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#16](/issue/ValveSoftware/SteamVR-for-Linux/16) 0x00007f2c9081e830 in pw_stream_destroy () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
[#17](/issue/ValveSoftware/SteamVR-for-Linux/17) 0x00007f2c848bbb6f in SVLAudioPipewire::Cleanup() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#18](/issue/ValveSoftware/SteamVR-for-Linux/18) 0x00007f2c848bbf09 in SVLAudioPipewire::ProcessThread() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#19](/issue/ValveSoftware/SteamVR-for-Linux/19) 0x00007f2c84a94300 in execute_native_thread_routine () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#20](/issue/ValveSoftware/SteamVR-for-Linux/20) 0x00007f2c904fe97a in start_thread (arg=<optimized out>) at pthread_create.c:454
[#21](/issue/ValveSoftware/SteamVR-for-Linux/21) 0x00007f2c905822bc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Thread 1 (Thread 0x7f2c90429780 (LWP 18374) "vrserver"):
#0 futex_wait (futex_word=0x7f2c640f16c8, expected=2, private=0) at ../sysdeps/nptl/futex-internal.h:126
#1 __GI___lll_lock_wait (futex=futex@entry=0x7f2c640f16c8, private=0) at lowlevellock.c:49
#2 0x00007f2c905020c4 in lll_mutex_lock_optimized (mutex=0x7f2c640f16c8) at pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x7f2c640f16c8) at pthread_mutex_lock.c:87
#4 0x00007f2c848bbca1 in SVLAudioPipewire::Stop() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
#5 0x00007f2c848bbd0d in SVLAudioPipewire::~SVLAudioPipewire() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
#6 0x00007f2c848bbd32 in SVLAudioPipewire::~SVLAudioPipewire() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
#7 0x00007f2c8487bb90 in SVLRoot::~SVLRoot() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
#8 0x00007f2c848b0751 in SVLServer::~SVLServer() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
#9 0x00007f2c848b07b2 in SVLServer::~SVLServer() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#10](/issue/ValveSoftware/SteamVR-for-Linux/10) 0x00007f2c848b0cd6 in SVLDriver::~SVLDriver() () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#11](/issue/ValveSoftware/SteamVR-for-Linux/11) 0x00007f2c904a84bc in __cxa_finalize (d=0x7f2c84b83ba0) at cxa_finalize.c:97
[#12](/issue/ValveSoftware/SteamVR-for-Linux/12) 0x00007f2c84845fe3 in __do_global_dtors_aux () from target:/home/sapphire/.local/share/Steam/steamapps/common/SteamVR/drivers/vrlink/bin/linux64/driver_vrlink.so
[#13](/issue/ValveSoftware/SteamVR-for-Linux/13) 0x00007fff3023ec50 in ?? ()
[#14](/issue/ValveSoftware/SteamVR-for-Linux/14) 0x00007f2c90aa1012 in _dl_call_fini (closure_map=0x7f2c68004ab0) at dl-call_fini.c:43
Same behavior observed on Bazzite 44, have to kill the process in System Monitor.
Edit: This was using a Quest 3 via Steam link.
Are all the folks seeing this running Bazzite, or are other distros affected?
Oh, wait, I see the Debian Trixie mention in the first post now. Okay, so it's not distro-specific, good to know.
yeah, I'm using Arch.
Can confirm this also happens on NixOS 25.11! (Pico 4 headset)
Same behavior observed on Nix 25.11 with Oculus Quest 2 and Steam Link
Yeah, it seems to definitely be an issue specifically with VRLink. At this point, the information I'm mostly interested in is whether anyone sees this with a wired headset -- if so, there's something else at play, but if it's ONLY VRLink connections that this happens with, I think I know where I need to dig a bit deeper.
Arch / SteamLink / Meta Quest 3 for me, have not tried wired.
That was surprisingly more annoying to untangle than I expected, but there's a fix for this in main now, so hopefully that can get flipped over to the release branch before the next beta build. :)
I can also confirm I have this issue, I deal with it for now by doing pkill -9 vrserver to fully stop SteamVR if it happens
Just to keep you posted: this fix has shifted over to release, and so will be in the 2.17.x beta builds when the first one lands. :)
It looks like after the latest update, the issue is now resolved (arch/x11, SteamVR Beta from Jun 6, 2026).
Now SteamVR exits properly.
Thanks! ❤️
Glad it works for you! I'll go ahead and close this out now. :)
Nothing extracted yet.
Describe the bug
SteamVR launches the vrserver process on steam vr launch.
However, after exiting vr (and even when completely ending steam processe) vrserver remains active, consuming ~150Mib of ram, and prevents steamvr from being launched again.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Steamvr should simply kill the vrserver process when steamvr is exited.
System Information (please complete the following information):
Please use the latest Steam beta client and SteamVR beta for your bug reports!
apt list --installed | grep steam: steam/stable,now 1:1.0.0.83~ds-3 i386 [installed];
Steam Beta Branch: Steam Beta Update
Steam Version: 1775175108
Steam Client Build Date: Fri, Apr 3, 2026 12:25 AM UTC -00:00
Steam Web Build Date: Fri, Apr 3, 2026 12:16 AM UTC -00:00
Debian 13; trixie
steam_runtime.txt
steam-logs.tar.gz
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.