-
Notifications
You must be signed in to change notification settings - Fork 66
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
Workaround for Source 1 libtcmalloc_minimal.so.4 issues no longer works in Steam client beta #1361
Comments
The workaround also hasn't worked in CS: Source for some time now. |
This also affects Garrys mod |
Affects Black Mesa as well |
Affects Day of Defeat: Source as well. This issue is particularly with the flatpak.
|
This is now the Main Client, no-longer just the Beta. |
|
I still have this issue: |
It fixed Garry's Mod, ty. SHARED_LIBRARY_GUARD_CONFIG=/dev/null %command% |
Game information
A game affected by ValveSoftware/Source-1-Games#5043 (I tested Half-Life 2: Deathmatch and Fistful of Frags)
Distribution name and version where applicable
Probably any distro. I tested on Arch Linux
Flatpak info
Flatpak 1.15.10, default (Mesa) GL driver
Problem description
In the Steam client beta, this app's workaround for games based on the Source 1 engine no longer works.
The problem is that Source 1 games bundle a copy of
libtcmalloc_minimal.so.4
which overrides some but not all memory allocation functions. If some other component such as the graphics driver happens to call into the new C++17 alignednew
/delete
entry points, then the game will crash with an error message similar to this:Until recently, this Flatpak app has been able to work around that issue by installing a
LD_AUDIT
module (the "shared library guard") and configuring it to refuse to load the game's bundledlibtcmalloc_minimal.so.4
, resulting in the game instead loading a newer copy oflibtcmalloc_minimal.so.4
which is included in this Flatpak app.However, the Steam client beta runs games in a Steam Linux Runtime 1.0 (scout) container by default, and that container does not have its own copy of
libtcmalloc_minimal.so.4
. This means that instead of sometimes crashing withAttempt to free invalid pointer
, now the game will always crash, with message similar to:You can disable the no-longer-working workaround by setting an affected game's Launch Options to
SHARED_LIBRARY_GUARD_CONFIG=/dev/null %command%
, but on my test system, that simply returns me to theAttempt to free invalid pointer
error.The ideal solution would be for the affected games to stop using this interposed malloc implementation, but they're rather old and minimally-maintained, so that isn't necessarily going to happen any time soon.
I'm thinking about other possible solutions.
Does this issue reproduce with native Steam
Not on my system. With native Steam, the game's bundled
libtcmalloc_minimal.so.4
is loaded, but for whatever reason, ValveSoftware/Source-1-Games#5043 did not seem to be triggered.The text was updated successfully, but these errors were encountered: