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

Segmentation fault when using microphone in Steam settings or Dota 2 #3503

Closed
timss opened this issue Sep 24, 2014 · 11 comments
Closed

Segmentation fault when using microphone in Steam settings or Dota 2 #3503

timss opened this issue Sep 24, 2014 · 11 comments
Assignees

Comments

@timss
Copy link

timss commented Sep 24, 2014

When trying to use a microphone in either the Steam voice settings, using the hotkey in Dota 2 or accessing the settings in Dota 2 I get a segmentation fault.

As it seems to be related to the Steam runtime/environment as a whole I chose to report this bug for the client itself. Note that I'm currently participating in the Steam Beta Update, but the bug was present without joining the beta aswell.

I've installed Steam using the official repository of Debian testing (jessie). To be on the safe side I completely reinstalled it (including the removal of $HOME/.steam) before debugging.

Using the same machine and install of Debian I remember the microphone working in Dota 2 about a year ago, but I can't say when the problems started to appear.

Unlike #847 over at the Dota 2 issue tracker, I experience segmentation faults both in Steam voice settings and in game. Other than that I was only able to find really old issues that were now supposedly resolved.

Debugging and output:

System Information (crash dumps IDs included and uploaded)

gdb output (includes backtrace)

LD_DEBUG=all (very long)

pacmd list-sinks (audio devices detected by PulseAudio)

Screenshots:

Steam Settings - Voice and Select Sound Input (relevant devices are listed, but all lead to crashes)

PulseAudio Volume Control - Input Devices (working microphone)

PulseAudio Volume Control - Recording - Mumble is working (Using PulseAudio's 'Default Input' works using Mumble)

When I press 'test microphone' in the Steam voice settings, Steam pop up for a very short period in PulseAudio Volume Control, showing that it atleast can locate the PulseAudio process:

PulseAudio Volume Control - Recording - Steam appearing for a milisecond

More information?

I tried to keep this concise and add everything I could find. Please notify if there's something missing and I'd be happy to help.

@timss
Copy link
Author

timss commented Sep 25, 2014

Confirmed that the segmentation fault when accessing Dota 2 settings is related to the same bug.

$ ps aux | grep "dota 2"
tim       3089  0.0  0.2 103312 43436 pts/1    S+   18:59   0:00 /bin/sh -c "/home/tim/.steam/steam/SteamApps/common/dota 2 beta/dota.sh" -novid
tim       3090  0.0  0.2 113188 45912 pts/1    S+   18:59   0:00 /bin/bash /home/tim/.steam/steam/SteamApps/common/dota 2 beta/dota.sh -novid
tim       3093 74.1  5.2 1236128 867464 pts/1  Sl+  18:59   0:28 /home/tim/.steam/steam/SteamApps/common/dota 2 beta/dota_linux -novid

$ gdb -p 3093
...
(gdb) c
Continuing.
[New Thread 0xe43e3b40 (LWP 3204)]
[Thread 0xe43e3b40 (LWP 3204) exited]
[New Thread 0xe43e3b40 (LWP 3205)]

Program received signal SIGSEGV, Segmentation fault.
0xf7ec0680 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
(gdb) bt
#0  0xf7ec0680 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
#1  0xf327ce1f in ?? () from /home/tim/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1
#2  0xf329b348 in ?? () from /home/tim/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1
#3  0xf327421c in alcGetIntegerv () from /home/tim/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1
...

Full gdb output can be found here

@timss
Copy link
Author

timss commented Sep 25, 2014

A hint might be that libopenal.so.1 was modified 01.07.14:

$ pwd
/home/tim/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu

$ ls -l | grep libopenal
lrwxrwxrwx 1 tim tim   19 01.07.14 21:33 libopenal.so.1 -> libopenal.so.1.13.0
-rw-r--r-- 1 tim tim 291K 01.07.14 21:33 libopenal.so.1.13.0

$ file libopenal.so.1.13.0
libopenal.so.1.13.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=e626c6eda14a3dd60b302bfb50a210cef9d582a0, stripped

ELF information can be found here:

readelf -a -W libopenal.so.1

@timss
Copy link
Author

timss commented Sep 25, 2014

All right. Some progression.

I found out that when I selected HDA Intel MID [ALC892 Analog] (hw:0,0) via ALSA as the audio input device in Steam settings after a fresh boot I can hear myself when using the 'test microphone'. However seeing as this is using ALSA directly on a PulseAudio setup it will crash as soon as another program try to use the same device, e.g. opening PulseAudio Volume Control (pavucontrol) or Mumble.

With this in mind I came across this thread when Googling:

forum.megaglest.org - Solution to fix OpenAL (sound) problems

While changing the drivers=pulse,alsa in /etc/openal/alsoft.conf didn't seem to have any effect, killing PulseAudio using $ pulseaudio -k did. By doing this I could no longer see the hardware devices in Phonon, but rather only a "PulseAudio Sound Server" entry. Even so, PulseAudio itself seems to restart(?) and run just fine and I can now use my microhpone both in the Steam client, Dota 2 and other programs such as Mumble.

Phonon - Device Preference - Audio Recording

Not sure how relevant it is, but I also tried different audio backends (VLC/GStreamer) in Phonon, but it didn't seem to have any effect, with or without killing PulseAudio first. It would also be possible to remove PulseAudio entirely and only run ALSA/Phonon with VLC backend as a sound server, but I'll wait with that until I get a response to this issue.

I can't really tell if this is a bug in the way Steam uses OpenAL, how OpenAL interacts with PulseAudio or maybe even because of Phonon. While I can now get everything to work, I'm hesitant to close this issue because the reason for this weird behaviour is yet unknown. More so, it should probably work without doing this hack for other users out there.

One theory could be that I've never had working PulseAudio in Steam/Dota 2, that it rather always fell back on using ALSA in conjunction with Phonon/VLC backend. It's hard to say.

Would it be possible to get a comment on this issue, and maybe someone has any idea why it doesn't work in my initial setup, which is default in KDE?

@Plaque-fcc
Copy link

Hi. 

I actually don't know what made you use Phonon over PulseAudio (seems like over ALSA/OSS/JACK also), I doubt you wanted to complicate it all this way.

@timss
Copy link
Author

timss commented Sep 25, 2014

@Plaque-fcc Hi.

I never intentionally created this setup, I believe it was default in Debian with full KDE desktop, or maybe it has ended up like this after some updates. I'm open to change, do you have any suggestions for a better setup?

Everything has worked just fine until now, including in-game sound in Dota 2. The use of Microphone has been my only struggle, which strikes me as a bit odd. A friend of mine uses Phonon with VLC as the backend and only using ALSA. Supposedly it works fine for multiple processes accessing the same device (as a sound server), so maybe I should make that change.

@Plaque-fcc
Copy link

Honestly, I can't recall which schema this will result in. Anyways,
with KDE Phonon is a default sound server, which means, AFAIK, you can
throw away either PulseAudio or Phonon on your choice. On my side there
is buggy weird PulseAudio + ALSA (and some time ago it was fine with
ALSA only. Things generally work.

@timss
Copy link
Author

timss commented Sep 26, 2014

I'll take a look into it. Still baffles me how everything except the microhpone was working just fine if my setup was weird. Oh well.

@emillynge
Copy link

Hi

I'm on debian jessie 64 bit. Just wanted to say that pulseaudio -k fixed my problem of Dota crashing when trying to access settings.
gdb excerpt
"
Program received signal SIGSEGV, Segmentation fault.
0xf76894e0 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
(gdb) bt
#0 0xf76894e0 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
#1 0xf2be6f4a in ?? () from /usr/lib/i386-linux-gnu/libopenal.so.1
"
My sound still works in dota even though i killed the daemon...

I hope this will bring an end to the random crashes i've been experiencing.

Thx!

@kisak-valve
Copy link
Member

Hello @timss, are you still experiencing this issue on an up to date system?

@timss
Copy link
Author

timss commented Mar 30, 2018 via email

@kisak-valve
Copy link
Member

Thanks for the feedback, closing.

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

6 participants