protonscr

Steam crashes on startup: segfault with libpulse calling into libaudio

steamclosed Steam clientAudioDistro Family: Arch
ValveSoftware/steam-for-linux#9204 · opened 2023-02-15 by smcv · updated 2026-07-06 · 8 comments · github
Ssmcv 2023-02-15 github

Your system information

  • Steam client version (build number or date): beta 1675997500 and stable 1676336721
  • Distribution (e.g. Ubuntu): Arch, updated today (2023-02-15), kernel 6.1.11, pipewire-pulse 1:0.3.65-6
  • Opted into Steam client beta?: I tried both yes and no
  • Have you checked for system updates?: Yes

Steps for reproducing this issue:

Run steam from a terminal prompt (I used Konsole).

Please describe your issue in as much detail as possible:

Steam crashes shortly after startup, before the main UI has come up, with a segmentation fault in libaudio.so which was called from the PulseAudio client thread. Using Arch's lib32-libpulse version 16.1-1, I get this backtrace:

#0  0xdcc71147 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libaudio.so
#1  0xe78d46d9 in context_get_card_info_callback (pd=0xe8500ff0, command=2, tag=4, t=0xdd222070, userdata=0xe8501460)
    at ../pulseaudio/src/pulse/introspect.c:990
#2  0xe6daa618 in run_action (pd=0xe8500ff0, r=0xe85020c0, command=2, ts=0xdd222070) at ../pulseaudio/src/pulsecore/pdispatch.c:291
#3  0xe6dab87f in pa_pdispatch_run (pd=0xe8500ff0, packet=0xe8502920, ancil_data=0xe8500afc, userdata=0x578510e0)
    at ../pulseaudio/src/pulsecore/pdispatch.c:344
#4  0xe78c2493 in pstream_packet_callback (p=0xe8500910, packet=0xe8502920, ancil_data=0xe8500afc, userdata=0x578510e0)
    at ../pulseaudio/src/pulse/context.c:364
#5  0xe6db098a in do_read (p=p@entry=0xe8500910, re=re@entry=0xe8500a50) at ../pulseaudio/src/pulsecore/pstream.c:1023
#6  0xe6db181d in do_pstream_read_write (p=0xe8500910) at ../pulseaudio/src/pulsecore/pstream.c:261
#7  0xe78d6374 in dispatch_pollfds (m=0x56eb7de0) at ../pulseaudio/src/pulse/mainloop.c:676
#8  pa_mainloop_dispatch (m=0x56eb7de0) at ../pulseaudio/src/pulse/mainloop.c:917
#9  0xe78d6b23 in pa_mainloop_iterate (m=0x56eb7de0, block=1, retval=0x0) at ../pulseaudio/src/pulse/mainloop.c:948
[#10](/issue/ValveSoftware/steam-for-linux/10) 0xe78d6bdd in pa_mainloop_run (m=0x56eb7de0, retval=0x0) at ../pulseaudio/src/pulse/mainloop.c:963
[#11](/issue/ValveSoftware/steam-for-linux/11) 0xe78e7eb9 in thread (userdata=0x56faab20) at ../pulseaudio/src/pulse/thread-mainloop.c:101
[#12](/issue/ValveSoftware/steam-for-linux/12) 0xe6dc4c84 in internal_thread_func (userdata=0x56faab70) at ../pulseaudio/src/pulsecore/thread-posix.c:81
[#13](/issue/ValveSoftware/steam-for-linux/13) 0xf7a85eca in start_thread (arg=<optimized out>) at pthread_create.c:444
[#14](/issue/ValveSoftware/steam-for-linux/14) 0xf7b2201c in clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111

If I remove lib32-libpulse and use the Steam Runtime's (very old) libpulse, I get a similar crash, but with less detail shown in gdb.

It was running successfully from Debian 11 on the same hardware earlier today.

Ssmcv 2023-02-15 github

#0 0xdcc71147 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libaudio.so

I realise this path looks strange for an Arch system, but this is a test machine with my /home shared between multiple OSs, and Steam was originally installed via Debian.

As another data point, Steam seems to be working fine in an installation of Debian 12 on the same hardware (pipewire-pulse 0.3.65-2, libpulse0:i386 16.1+dfsg1-2+b1, kernel 6.1.8-1).

TTTimo 2023-02-20 github

This sounds like https://github.com/ValveSoftware/steam-for-linux/issues/9060, which I haven't been able to reproduce or get useful backtraces from. I thought it was Arch specific so far though, but maybe not.

Ssmcv 2023-02-20 github

This sounds like https://github.com/ValveSoftware/steam-for-linux/issues/9060

Yes, it could well be the same crash.

I thought it was Arch specific

Yes, this is Arch too. My results, on a machine with multiple OSs sharing hardware and /home, are:

  • Arch: this crash
  • Debian 12 prerelease: good
  • Debian 11: good
Ssmcv 2023-02-20 github

I don't think I can get Steam to upload minidumps from Arch, because it consistently crashes. But if I run it on Arch, let it crash, reboot to Debian and re-launch Steam from the same $HOME, would that upload a crash dump that would be useful to you? If yes, I'll try that tomorrow.

Ssmcv 2023-02-21 github

It looks like Steam beta 2023-02-20 (1676935611) and stable version 2023-02-14 (1676336721) are no longer crashing on my Arch system.

Since 1676336721 is one of the versions that was crashing before, I assume this means the crash I've been experiencing must have been something to do with an OS library and was fixed in Arch. Pipewire was upgraded to 1:0.3.66-2 today, so maybe it's that.

Ggegnep 2026-07-05 github

Still reproducible in July 2026 with a new trigger device. Same backtrace as OP — segfault in libaudio.so called from pa_pdispatch_run in the card-info reply path.
System:

  • Steam client: buildid 1782866176 (updater built Jun 24 2026), steam 1.0.0.85
  • Distro: NixOS 26.11 (unstable), kernel: 7.1.2-cachyos
  • Audio: PipeWire 1.6.5 / pipewire-pulse, WirePlumber
  • Trigger device: Focusrite Scarlett 2i2 4th Gen on the pro-audio profile
  • GPU: AMD RX 9070 XT (RADV), CPU: Ryzen 7 5800X3D
    Behavior: 32-bit ubuntu12_32/steam segfaults seconds after spawning steamwebhelper, 100% reproducible. Crash thread:
#0  libaudio.so + 0x4d942
#1  libpulse.so.0 + 0x1a1bf
#2  libpulsecommon-1.1.so + 0x3225d
#3  pa_pdispatch_run (libpulsecommon-1.1.so + 0x32660)
#4  libpulse.so.0 + 0xd4dd

Uploaded minidumps: bp-a6516fea-8856-47a4-be09-2fd112260704, bp-a85b2be3-0ee7-4c63-ab3f-b00902260704
Bisection: crash occurs iff the Scarlett's pro-audio profile card is visible to the client. pactl set-card-profile alsa_card.usb-Focusrite_Scarlett_2i2_4th_Gen_S27YCMT52ABC24-00 off → steam starts fine; re-enable → crash. All other cards (AMD GPU HDMI, onboard, webcam) irrelevant.
Workaround (keeps pro-audio for all other clients): pipewire-pulse per-client quirk —

# /etc/pipewire/pipewire-pulse.conf.d/99-steam-libaudio.conf
pulse.rules = [
  { matches = [ { application.process.binary = "steam" } ]
    actions = { quirks = [ force-s16-info ] } }
]

Suggests libaudio's card/format introspection can't handle non-S16 sample formats in pro-audio profile info. Given the bundled libpulse is 1.1-era, an updated bundle or bounds-checking in the card-info callback would fix the class of crash.

Ssmcv 2026-07-06 github

Still reproducible in July 2026 with a new trigger device

The issue that I was experiencing was fixed, so please open a separate issue with your own information: anything that I said here is not necessarily relevant any more.

The fact that you experienced the same symptom as me (a segfault during Steam startup with libpulse calling into libaudio) does not mean that you were experiencing it for the same reason.

Kkisak-valve maintainer 2026-07-06 github

Newer comment is likely a duplicate of #13174.