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

Some games in Steam crash when in-game community is enabled #61

Closed
RalfJung opened this issue Feb 24, 2013 · 12 comments
Closed

Some games in Steam crash when in-game community is enabled #61

RalfJung opened this issue Feb 24, 2013 · 12 comments

Comments

@RalfJung
Copy link
Contributor

Some games in Steam for Linux crash when using primusrun and enabling the in-game community: Bastion and Team Fortress 2.
In both cases, disabling the in-game community fixes the crash. So does running the game on my Intel card. Using optirun also crashes, however at a later point than primusrun: For both games, primusrun crashes before any window is opened, while optirun crashes shortly after the game window opens.
The crash happens both with primusrun 3f6ac5f and the current version baab116.

I got a backtrace for TF2 from a coredump, no sure how helpful it is:

#1  0xf770c2d9 in ?? () from /lib/ld-linux.so.2
#2  0xf771028f in ?? () from /lib/ld-linux.so.2
#3  0xf770bde6 in ?? () from /lib/ld-linux.so.2
#4  0xf770fb06 in ?? () from /lib/ld-linux.so.2
#5  0xf76cf92a in ?? () from /home/r/bin/steam.d/libc/i386/libdl.so.2
#6  0xf770bde6 in ?? () from /lib/ld-linux.so.2
#7  0xf76cf33a in ?? () from /home/r/bin/steam.d/libc/i386/libdl.so.2
#8  0xf76cf9ab in dlopen () from /home/r/bin/steam.d/libc/i386/libdl.so.2
#9  0xf738de65 in mdlopen (paths=0xf73a0df0 "/usr/$LIB/nvidia/libGL.so.1", flag=1) at libglfork.cpp:36
#10 0xf7397121 in CapturedFns::CapturedFns (this=0xf73aa438, lib=0xf73a0df0 "/usr/$LIB/nvidia/libGL.so.1") at libglfork.cpp:57
#11 0xf739b456 in PrimusInfo::PrimusInfo (this=0xf73aa420) at libglfork.cpp:191
#12 0xf73970af in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at libglfork.cpp:196
#13 0xf73970f1 in _GLOBAL__sub_I_libglfork.cpp(void) () at libglfork.cpp:827
#14 0xf770c202 in ?? () from /lib/ld-linux.so.2
#15 0xf770c2d9 in ?? () from /lib/ld-linux.so.2
#16 0xf76fe87f in ?? () from /lib/ld-linux.so.2
@amonakov
Copy link
Owner

Does it happen with STEAM_RUNTIME=0?

@RalfJung
Copy link
Contributor Author

Yes, it happens both with and without Steam runtime (I usually do not use the runtime).

I'm on Debian Wheezy 64bit and copied the libc from Ubuntu and added it to Steam's LD_LIBRARY_PATH to be able to launch Steam - the common way to get Steam running on Debian.

@amonakov
Copy link
Owner

Well as you see in the backtrace the copied library then invokes the system dynamic linker, which is of much older version than your copied libdl.

@RalfJung
Copy link
Contributor Author

You think that is the problem? I could try changing the dynamic linker which is used, however overlay with primusrun is working fine for other games like Amnesia or Psychonauts.

@amonakov
Copy link
Owner

Yes; ld-linux and libdl are parts of glibc, which includes many other components. Mixing different versions of glibc like that may cause demons fly out of your nose. It's hard to say what causes the segfault without looking in the debugger, or at least obtaining a full backtrace with symbol names.

Try changing the dynamic linker. However, a proper way would be to setup a chroot.

@RalfJung
Copy link
Contributor Author

I tried a chroot first, but could not get all the services (Pulseaudio, bumblebee etc.) cooperating nicely with the in-chroot steam.

I do not see a way to change the dynamic loader used by steam, as both the hl2_linux binary and the hl2.sh script will be re-downloaded if I change them... if I find the time next week, I will do some experiments with filesystem namespaces, maybe I can exchange /lib (and only /lib) for Steam.

@amonakov
Copy link
Owner

For 32-bit games you can temporarily swap 32-bit dynamic loader without risk of breaking your system.

@AnAkkk
Copy link

AnAkkk commented Feb 24, 2013

Since one of the latest commits, Steam Community now causes all games to crashes when launched through Steam (TF2, CS, etc). It was working fine with 3226503

@AnAkkk
Copy link

AnAkkk commented Feb 24, 2013

I guess it's caused by aab7519 or 299ef8d
My games work fine with Steam Community with baab116

@amonakov
Copy link
Owner

@anakin1, that should be fixed now with 31108a2

@AnAkkk
Copy link

AnAkkk commented Feb 25, 2013

Thanks, it works now.

@RalfJung
Copy link
Contributor Author

You were right, after getting primus and Steam to run with the 2.15 ld-linux.so, it's working now. Thanks for the pointer!
Well, I guess I will have to disable the steam community integration until libc 2.15 lands in Debian unstable.

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

No branches or pull requests

3 participants