Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam Big Picture Mode sound settings segfault #4753

Closed
IvanVojtko opened this issue Dec 14, 2016 · 25 comments
Closed

Steam Big Picture Mode sound settings segfault #4753

IvanVojtko opened this issue Dec 14, 2016 · 25 comments

Comments

@IvanVojtko
Copy link

Your system information

  • Steam client version:
  • Distribution (e.g. Ubuntu): Arch
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

After clicking in settings on Interface or Voice audio settings, steam crashes with
steam.sh: line 713: 10424 Segmentation fault (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
I've tried turning off beta and on. It was working like...half a year ago. I've got 5.1 audio setup. Can this be an issue? Thanks

Steps for reproducing this issue:

  1. Run Stam in BPM
  2. Go to settings
  3. Try Interface or Voice audio settings
@Tele42
Copy link

Tele42 commented Dec 14, 2016

Hello @IvanVojtko, please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report. If you can find any CrashIDs or minidump (.dmp) files related to this issue, please include them in this issue report.

@IvanVojtko
Copy link
Author

@kisak-valve
Copy link
Member

Hello @IvanVojtko, does this issue occur if you use a different nvidia driver version (375.26 or 375.10)?

@IvanVojtko
Copy link
Author

@kisak-valve Hello. 375.26 and still crashing.

@IvanVojtko
Copy link
Author

IvanVojtko commented Dec 22, 2016

I've checked it on my laptop (without 5.1 audio, Intel GPU) and it's crashing too.
steam.sh: line 713: 17977 Segmentation fault (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"

@kisak-valve
Copy link
Member

This may be a steam runtime compatibility issue. There is some documentation at #4768 and https://wiki.archlinux.org/index.php/Steam/Troubleshooting which might help.

@IvanVojtko
Copy link
Author

I've already tried everything in Arch Wiki. Nothing worked, still crashing. I can change sound settings in normal steam, but it'll be great if it'll work from BPM too.

@ghost
Copy link

ghost commented Feb 19, 2017

Any news on this? Also hitting this issue, with and without steam runtime enabled.
Here's a gdb trace of the core produced by the crash:

#0 0xebde2c5b in ?? () from ~/.local/share/Steam/ubuntu12_32/libaudio.so
[Current thread is 1 (Thread 0xab887b40 (LWP 331955))]
(gdb) bt
#0 0xebde2c5b in ?? () from ~/.local/share/Steam/ubuntu12_32/libaudio.so
#1 0xf02c332e in ?? () from /usr/lib32/libpulse.so.0
#2 0xef04bbfd in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#3 0xef04bf4d in pa_pdispatch_run () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#4 0xf02b84b5 in ?? () from /usr/lib32/libpulse.so.0
#5 0xef04e8ea in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#6 0xef051719 in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#7 0xef051ae6 in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#8 0xef052368 in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#9 0xf02cc6cc in pa_mainloop_dispatch () from /usr/lib32/libpulse.so.0
#10 0xf02ccb51 in pa_mainloop_iterate () from /usr/lib32/libpulse.so.0
#11 0xf02ccbfc in pa_mainloop_run () from /usr/lib32/libpulse.so.0
#12 0xf02db012 in ?? () from /usr/lib32/libpulse.so.0
#13 0xef061f2e in ?? () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#14 0xf736e4fa in start_thread (arg=0xab887b40) at pthread_create.c:456
#15 0xf72a1286 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:110

(intel haswell, linux-4.9.10, glibc-2.25, gcc-6.3, nvidia driver 378.13, gentoo 64bit)

@kisak-valve
Copy link
Member

kisak-valve commented Feb 19, 2017

Hello @mlauss, your backtrace seems strange to me. Why does it mix the steam runtime provided libaudio.so (media-libs/nas) with system provided pulseaudio? If the crash occurs with only system-provided libraries, then your issue should be reported upstream to nas/pulseaudio. EDIT: I'm fairly sure this was a mis-analysis.

As a side note, you can use package.env to enable debug symbols on a per-package basis. Documentation at https://wiki.gentoo.org/wiki//etc/portage/package.env#Example_1:_Enable_debug_information_for_a_specific_package.

@ghost
Copy link

ghost commented Feb 19, 2017

I didn't know that libaudio is also available in media-libs/nas.
So I installed it, but then how do I make steam NOT use the ~/.local/share/Steam/ubuntu12_32/libaudio.so one? Whenever I delete it, steam would restore it from its cache.
STEAM_RUNTIME=0 is already set:

Running Steam on gentoo 2.2 64-bit
STEAM_RUNTIME is disabled by the user
Installing breakpad exception handler for appid(steam)/version(1487202861)

Edit: to illustrate:

#0 0xee10dc5b in ?? () from /home/mano/.local/share/Steam/ubuntu12_32/libaudio.so
[Current thread is 1 (Thread 0xa15c7b40 (LWP 94671))]
(gdb) bt
#0 0xee10dc5b in ?? () from /home/mano/.local/share/Steam/ubuntu12_32/libaudio.so
#1 0xf015fa5e in context_get_sink_info_callback () from /usr/lib32/libpulse.so.0
#2 0xeeee89fd in run_action () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#3 0xeeee8d4d in pa_pdispatch_run () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#4 0xf0154be5 in pstream_packet_callback () from /usr/lib32/libpulse.so.0
#5 0xeeeeb6ca in do_read () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#6 0xeeeee4f9 in do_pstream_read_write () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#7 0xeeeee8c6 in srb_callback () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#8 0xeeeef118 in srbchannel_rwloop () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#9 0xf0168dfc in pa_mainloop_dispatch () from /usr/lib32/libpulse.so.0
#10 0xf0169281 in pa_mainloop_iterate () from /usr/lib32/libpulse.so.0
#11 0xf016932c in pa_mainloop_run () from /usr/lib32/libpulse.so.0
#12 0xf0177732 in thread () from /usr/lib32/libpulse.so.0
#13 0xeeefecce in internal_thread_func () from /usr/lib32/pulseaudio/libpulsecommon-10.0.so
#14 0xf741a4fa in start_thread (arg=0xa15c7b40) at pthread_create.c:456
#15 0xf734d286 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:110
(gdb) q
mano@dargo /cores $ ls -la /usr/lib32/libaudio.so
lrwxrwxrwx 1 root root 15 Feb 19 14:39 /usr/lib32/libaudio.so -> libaudio.so.2.4
lrwxrwxrwx 1 root root 15 Feb 19 14:39 /usr/lib32/libaudio.so.2 -> libaudio.so.2.4
-rwxr-xr-x 1 root root 544884 Feb 19 14:39 /usr/lib32/libaudio.so.2.4

@kisak-valve
Copy link
Member

@mlauss, starting with the 2017-01-19 steam client update, steam uses ldconfig to enable STEAM_RUNTIME_PREFER_HOST_LIBRARIES in the default configuration (with the steam runtime enabled), you may need to update your steam package to let steam find this command on Gentoo.

@ghost
Copy link

ghost commented Feb 19, 2017

libaudio.so is not part of the steam runtime, it lives one folder above it, in ~/steam/root/ubuntu12_32,
(where all the other valve libraries like steamclient.so, steamservice.so, etc live) while the steam runtime is in ~/steam/root/ubuntu12_32/steam-runtime/
Also, looking at the steam.sh script, STEAM_RUNTIME_PREFER_HOST_LIBRARIES is only effective when STEAM_RUNTIME=1, but I've already set STEAM_RUNTIME=0.

@ghost
Copy link

ghost commented Feb 20, 2017

@kisak-valve: the problem is not with steam-runtime (or lack thereof), but with the libaudio.so that the steam client itself ships with and uses. And after some digging, I'm convinced that this libaudio.so is a completely different library than the one produced by media-libs/nas. For starters, it depends on libtier_0 and other steam-client libraries.
So you might have a bug/pulseaudio-incompatibility somewhere in the libraries shipping with the steam client.

@IvanVojtko
Copy link
Author

I've found solution. It's (at least for me) problem with PulseAudio module module-equalizer-sink. After I disabled it, everything works! I disabled it because of huge stuttering of audio in games. Try it too. Now sound settings works on all of my devices. For me it's closed

@mercuriete
Copy link

I had the same problem with the sound setting.
But i had the same bug when i plug a PS4 dual shock controller #4891

I don't know why but steam doesn't like the pulse audio equalizer module.
Thanks @IvanVojtko for the advice.

@ghost
Copy link

ghost commented May 5, 2017

I don't use the equalizer plugin at all (it's not even built).
But, I've upgraded to the latest steam client beta and latest -git HEAD of PulseAudio (03-may-2017), and the issue is gone, audio can now be configured without any issues.

@thankjura
Copy link

I unload "module-echo-cancel" and problem disappeared

@Ilazki
Copy link

Ilazki commented Dec 17, 2017

I also ran into this problem on Debian (stable) as a consequence of #4891. No idea how long it's been a problem, since I never used BPM until I got a controller and Steam started it up for me. All the suggestions about unloading various PA modules didn't apply, since I wasn't using any of them except the combine-sink, but even with that disabled it still crashed. Beta client or stable, didn't matter, BPM was broken.

After banging my head against a wall for a while, I managed to find a workaround, though: I symlinked my distro's libpulsecommon to the name Steam uses (libpulsecommon-1.1.so) and used LD_PRELOAD to use it and libpulse instead of Steam's versions. Like so:

  1. install i386 version of libpulse0 (apt install libpulse0:i386)
  2. symlink distro version of libpulsecommon to libpulsecommon-1.1.so. In my case that was done via sudo ln -s /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-10.0.so libpulsecommon-1.1.so
  3. launch steam with the distro libs: env LD_PRELOAD='/usr/lib/i386-linux-gnu/libpulse.so.0 /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-1.1.so' steam

Once I did that, BPM stopped crashing. I also noticed that this problem was affecting something else as well: BPM is supposed to have sounds but it wasn't playing them before replacing the libs. Maybe this will help others that run into this problem until it's fixed.

@kisak-valve
Copy link
Member

Hello @Ilazki, you should be able to more aggressively have steam use the system pulse libraries so that you don't need LD_PRELOAD by pinning the libraries with

ln -s /usr/lib/i386-linux-gnu/libpulse.so.0 "${HOME}"/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libpulse.so.0
ln -s /usr/lib/i386-linux-gnu/libpulse-simple.so.0 "${HOME}"/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libpulse-simple.so.0

Libpulsecommon-1.x.so should never be called directly, so it should be a matter making sure the libraries calling it have a system variant available.

@Ilazki
Copy link

Ilazki commented Dec 17, 2017

Didn't know about the pinning, thanks. Nice to know.

Libpulsecommon-1.x.so should never be called directly, so it should be a matter making sure the libraries calling it have a system variant available.

That's what I expected and I tried only forcing libpulse first, but it still crashed until I did that. I may have left a PA sink that BPM dislikes loaded and didn't notice, though, because I checked again now and just using the system libpulse seems to be doing the trick as long as I have no unusual PA modules loaded.

On that note, BPM really dislikes PA modules that add sinks. I normally use a null sink (module-null-sink) and combine it + sound card (module-combine-sink) for recording with OBS (so I can record only game audio), and it looks like both modules cause BPM's settings to crash. You don't even have to be using them, it'll crash as soon as you load one, which means I have to unload those modules if I want to use the dualshock4 controller I have. :/

@TheTaLlesT
Copy link

I have the same segfault on Arch if the dualshock4 is connected, the controller support in steam is enabled, and module-null-sink is loaded. Interestingly module-loopback is fine. Steam is fine with any one of those three not being true. I tried the LD_PRELOAD and library pinning suggestion but neither had any effect.

@treierxyz
Copy link

I'm also having this issue.

@TTimo
Copy link
Collaborator

TTimo commented Jul 16, 2019

This crash should be fixed in latest Steam beta. Please test again!

@ghost
Copy link

ghost commented Jul 16, 2019

This crash should be fixed in latest Steam beta. Please test again!

It is fixed on my end. Thank you!

@DanMan
Copy link

DanMan commented Jul 17, 2019

No crashing here anymore either. Thanks.

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

No branches or pull requests