I can with 100% reliability crash steam by closing the CD drive. Also plugging
in my phone. Probably other things that trigger udev events too. I have a
hacky workaround that works for me so no big deal if no-one else can
reproduce. The output of sudo udevadm monitor -p -k -u when closing the
drive follows at the end of the post. Looking at the gdb backtrace (see below)
the last recognisable method is void SDL_JoystickUpdate() so I mocked that
and compiled it to a shared object and loaded it via LD_PRELOAD and problem
solved (I don't hotplug any joysticks).
Oh btw I am running a 32bit userspace on a 64bit kernel. Maybe that is
relevant because the backtrace ends in an sse instruction shrugs.
(gdb) bt
#0 __strcmp_sse4_2 () at ../sysdeps/i386/i686/multiarch/strcmp-sse4.S:229
#1 0xee44ca8a in udev_monitor_receive_device ()
from /lib/i386-linux-gnu/libudev.so.1
#2 0xf21d98a5 in ?? () from
$HOME/.steam/ubuntu12_32/libSDL2-2.0.so.0
#3 0xf21d60ef in ?? () from
$HOME/.steam/ubuntu12_32/libSDL2-2.0.so.0
#4 0xf215d1bd in ?? () from
$HOME/.steam/ubuntu12_32/libSDL2-2.0.so.0
#5 0xf2150e50 in SDL_JoystickUpdate ()
from $HOME/.steam/ubuntu12_32/libSDL2-2.0.so.0
#6 0xf3627f94 in ?? () from
$HOME/.steam/ubuntu12_32/steamui.so
#7 0xf3628430 in ?? () from
$HOME/.steam/ubuntu12_32/steamui.so
#8 0xf362b5ca in ?? () from
$HOME/.steam/ubuntu12_32/steamui.so
#9 0x56596ab0 in RunSteam(int, char**, bool) ()
[#10](/issue/ValveSoftware/steam-for-linux/10) 0x5657df5d in ?? ()
[#11](/issue/ValveSoftware/steam-for-linux/11) 0xf7b6aa63 in __libc_start_main (main=0x5657d1a0, argc=1, argv=0xffffd394,
init=0x56844ba0 <__libc_csu_init>, fini=0x56844c10
<__libc_csu_fini>, rtld_fini=0xf7febc90 <_dl_fini>, stack_end=0xffffd38c) at libc-start.c:287
[#12](/issue/ValveSoftware/steam-for-linux/12) 0x56580ca5 in _start ()
I can with 100% reliability crash steam by closing the CD drive. Also plugging
in my phone. Probably other things that trigger udev events too. I have a
hacky workaround that works for me so no big deal if no-one else can
reproduce. The output of
sudo udevadm monitor -p -k -uwhen closing thedrive follows at the end of the post. Looking at the gdb backtrace (see below)
the last recognisable method is
void SDL_JoystickUpdate()so I mocked thatand compiled it to a shared object and loaded it via LD_PRELOAD and problem
solved (I don't hotplug any joysticks).
Oh btw I am running a 32bit userspace on a 64bit kernel. Maybe that is
relevant because the backtrace ends in an sse instruction shrugs.
And the udev output: