ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.24k stars 175 forks source link

threaded-ml segmentation fault in libaudio.so on startup #9289

Open giraudan opened 1 year ago

giraudan commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

When I launch steam-runtime, I get a segmentation fault. Here is the standard output of steam-runtime, and here is what happens when launched with gdb.

I noticed that the steam updater finishes successfully (when there's an update) before the crash.

It looks like the issue is in libaudio.so, which seems to be like #9204.

Steps for reproducing this issue:

  1. Install steam from the multilib repository
  2. Launch steam-runtime

Additional details

Potentially relevant installed packages

community/bumblebee 3.2.1-21 [installed]
community/cuda 12.1.0-1 [installed]
community/cudnn 8.8.0.121-1 [installed]
community/gtk-layer-shell 0.8.0-1 [installed]
community/nccl 2.17.1-1 [installed]
community/waylandpp 1.0.0-1 [installed]
community/weston 11.0.1-1 [installed]
community/wl-clipboard 1:2.1.0-3 [installed]
community/wlroots 0.16.2-1 [installed]
core/amd-ucode 20230210.bf4115c-1 [installed]
extra/egl-wayland 2:1.1.11-3 [installed]
extra/ffnvcodec-headers 12.0.16.0-1 [installed]
extra/gst-plugin-pipewire 1:0.3.67-1 [installed]
extra/libpipewire 1:0.3.67-1 [installed]
extra/libwireplumber 0.4.14-1 [installed]
extra/nvidia-dkms 525.89.02-2 [installed]
extra/nvidia-prime 1.0-4 [installed]
extra/nvidia-settings 525.89.02-1 [installed]
extra/nvidia-utils 525.89.02-2 [installed]
extra/opencl-nvidia 525.89.02-2 [installed]
extra/pipewire 1:0.3.67-1 [installed]
extra/pipewire-alsa 1:0.3.67-1 [installed]
extra/pipewire-audio 1:0.3.67-1 [installed]
extra/pipewire-pulse 1:0.3.67-1 [installed]
extra/qt6-wayland 6.4.3-1 (qt6) [installed]
extra/wayland 1.21.0-2 [installed]
extra/wayland-protocols 1.31-1 [installed]
extra/wayland-utils 1.1.0-1 [installed]
extra/wireplumber 0.4.14-1 [installed]
extra/xf86-video-amdgpu 23.0.0-1 (xorg-drivers) [installed]
extra/xorg-xwayland 22.1.8-1 (xorg) [installed]
multilib/lib32-libpipewire 1:0.3.67-1 [installed]
multilib/lib32-libva 2.17.0-1 [installed]
multilib/lib32-libvdpau 1.5-1 [installed]
multilib/lib32-nvidia-utils 525.89.02-1 [installed]
multilib/lib32-pipewire 1:0.3.67-1 [installed]
multilib/lib32-wayland 1.21.0-1 [installed]

Libraries linking

By default, libtier0_s.so and libvstdlib_s.so are not found, but if I set LD_LIBRARY_PATH to /home/giraudan/.local/share/Steam/ubuntu12_32, they're found:

$ ldd /home/giraudan/.local/share/Steam/ubuntu12_32/libaudio.so
    linux-gate.so.1 (0xf7f6c000)
    libdl.so.2 => /usr/lib32/libdl.so.2 (0xf7e99000)
    librt.so.1 => /usr/lib32/librt.so.1 (0xf7e94000)
    /usr/lib/ld-linux.so.2 (0xf7f6f000)
    libtier0_s.so => not found
    libvstdlib_s.so => not found
    libpulse.so.0 => /usr/lib32/libpulse.so.0 (0xf7e38000)
    libopenal.so.1 => /usr/lib32/libopenal.so.1 (0xf7ca1000)
    libm.so.6 => /usr/lib32/libm.so.6 (0xf7bd0000)
    libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf7bcb000)
    libc.so.6 => /usr/lib32/libc.so.6 (0xf7800000)
    libpulsecommon-16.1.so => /usr/lib32/pulseaudio/libpulsecommon-16.1.so (0xf7b36000)
    libdbus-1.so.3 => /usr/lib32/libdbus-1.so.3 (0xf7ade000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7ab9000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7400000)
    libsndfile.so.1 => /usr/lib32/libsndfile.so.1 (0xf776b000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7a8d000)
    libsystemd.so.0 => /usr/lib32/libsystemd.so.0 (0xf7689000)
    libasyncns.so.0 => /usr/lib32/libasyncns.so.0 (0xf7a85000)
    libvorbisenc.so.2 => /usr/lib32/libvorbisenc.so.2 (0xf7373000)
    libFLAC.so.12 => /usr/lib32/libFLAC.so.12 (0xf7a3a000)
    libopus.so.0 => /usr/lib32/libopus.so.0 (0xf731a000)
    libvorbis.so.0 => /usr/lib32/libvorbis.so.0 (0xf765b000)
    libogg.so.0 => /usr/lib32/libogg.so.0 (0xf7a2d000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7656000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf764f000)
    libcap.so.2 => /usr/lib32/libcap.so.2 (0xf7643000)
    libgcrypt.so.20 => /usr/lib32/libgcrypt.so.20 (0xf721f000)
    liblzma.so.5 => /usr/lib32/liblzma.so.5 (0xf71e5000)
    libzstd.so.1 => /usr/lib32/libzstd.so.1 (0xf711d000)
    libgpg-error.so.0 => /usr/lib32/libgpg-error.so.0 (0xf70f7000)
$ LD_LIBRARY_PATH=/home/giraudan/.local/share/Steam/ubuntu12_32 ldd /home/giraudan/.local/share/Steam/ubuntu12_32/libaudio.so
    linux-gate.so.1 (0xf7ee0000)
    libdl.so.2 => /usr/lib32/libdl.so.2 (0xf7e0d000)
    librt.so.1 => /usr/lib32/librt.so.1 (0xf7e08000)
    /usr/lib/ld-linux.so.2 (0xf7ee3000)
    libtier0_s.so => /home/giraudan/.local/share/Steam/ubuntu12_32/libtier0_s.so (0xf7db0000)
    libvstdlib_s.so => /home/giraudan/.local/share/Steam/ubuntu12_32/libvstdlib_s.so (0xf7ccd000)
    libpulse.so.0 => /usr/lib32/libpulse.so.0 (0xf7c71000)
    libopenal.so.1 => /usr/lib32/libopenal.so.1 (0xf7ada000)
    libm.so.6 => /usr/lib32/libm.so.6 (0xf7a09000)
    libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf7a04000)
    libc.so.6 => /usr/lib32/libc.so.6 (0xf7600000)
    libpulsecommon-16.1.so => /usr/lib32/pulseaudio/libpulsecommon-16.1.so (0xf796f000)
    libdbus-1.so.3 => /usr/lib32/libdbus-1.so.3 (0xf7917000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf78f2000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7200000)
    libsndfile.so.1 => /usr/lib32/libsndfile.so.1 (0xf785d000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7831000)
    libsystemd.so.0 => /usr/lib32/libsystemd.so.0 (0xf751e000)
    libasyncns.so.0 => /usr/lib32/libasyncns.so.0 (0xf7516000)
    libvorbisenc.so.2 => /home/giraudan/.local/share/Steam/ubuntu12_32/libvorbisenc.so.2 (0xf748b000)
    libFLAC.so.12 => /usr/lib32/libFLAC.so.12 (0xf7440000)
    libopus.so.0 => /usr/lib32/libopus.so.0 (0xf71a7000)
    libvorbis.so.0 => /home/giraudan/.local/share/Steam/ubuntu12_32/libvorbis.so.0 (0xf717b000)
    libogg.so.0 => /home/giraudan/.local/share/Steam/ubuntu12_32/libogg.so.0 (0xf7437000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7176000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf716f000)
    libcap.so.2 => /usr/lib32/libcap.so.2 (0xf7163000)
    libgcrypt.so.20 => /usr/lib32/libgcrypt.so.20 (0xf7068000)
    liblzma.so.5 => /usr/lib32/liblzma.so.5 (0xf702e000)
    libzstd.so.1 => /usr/lib32/libzstd.so.1 (0xf6f66000)
    libgpg-error.so.0 => /usr/lib32/libgpg-error.so.0 (0xf6f40000)
TTimo commented 1 year ago

See https://github.com/ValveSoftware/steam-for-linux/issues/9060 - have you tried restarting the pipewire service to see if that has an impact on reproduction of the crash?

giraudan commented 1 year ago

Thank you for that, I hadn't found that issue. The crash seems to be intermittent, I can't reproduce it today, so I'll bookmark #9060 on my end, and if you want to close this issue, you can. Otherwise, whenever the crash happens again, I'll try the suggestion and update this issue.

RokkuCode commented 1 year ago

had the same problem. restarting pipwire solved it. i will look into it again after a restart wether the error returns.

giraudan commented 1 year ago

I confirm that running systemctl --user restart pipewire and relaunching also solves the issue for me

Alcaro commented 1 year ago

Ran into this myself (Ubuntu 22.04). The above workaround works, at least until next reboot.

Melechtna commented 3 months ago

This solution works in Fedora as well

thevbw commented 3 months ago

Same thing happened after booting up this morning. (Debian 12) Call stack of:

#0  0xe588cf64 in  () at /home/user/.local/share/Steam/ubuntu12_32/libaudio.so
#1  0xed804476 in  () at /lib/i386-linux-gnu/libpulse.so.0
#2  0xed23418d in  () at /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-16.1.so
#3  0xed234477 in pa_pdispatch_run () at /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-16.1.so
#4  0xed7f7d95 in  () at /lib/i386-linux-gnu/libpulse.so.0
#5  0xed236edd in  () at /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-16.1.so
#6  0xed239e65 in  () at /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-16.1.so
#7  0xed80d8f7 in pa_mainloop_dispatch () at /lib/i386-linux-gnu/libpulse.so.0
#8  0xed80dc2c in pa_mainloop_iterate () at /lib/i386-linux-gnu/libpulse.so.0
#9  0xed80dcdc in pa_mainloop_run () at /lib/i386-linux-gnu/libpulse.so.0
#10 0xed81c490 in  () at /lib/i386-linux-gnu/libpulse.so.0
#11 0xed24c7ac in  () at /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-16.1.so
#12 0xf7ad335d in  () at /lib/i386-linux-gnu/libc.so.6
#13 0xf7b6e688 in  () at /lib/i386-linux-gnu/libc.so.6

Not fixed by restarting pipewire-pulse.service, but restarting pipewire works. This has not happened before.

TTimo commented 3 months ago

@thevbw can you provide a crash ID for this issue from an upload to our servers? Or a crash_*.dmp file directly.

thevbw commented 3 months ago

@thevbw .. crash ID .. Or a crash_*.dmp file directly

Where would I get either of these things? I can try and retrieve the coredump saved by systemd if it is still present

TTimo commented 3 months ago

It's normally written out to /tmp/dumps. You can check in ~/.steam/steam/logs/console-linux.txt or run steam from a terminal to get more information when a crash or assert minidump is recorded.