ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.21k stars 174 forks source link

RaceTheSun.x86 aborts with invalid pointer error #4300

Closed Oblomov closed 5 years ago

Oblomov commented 8 years ago

After a recent system upgrade (Debian unstable), trying to run RaceTheSun fails. The program aborts after the "Importing game controller configs" with an invalid pointer error after munmap_chunk() or free(). I tried running the program within gdb to try and provide a stack trace, but in that case Mono receives a SIGPWR.

Typical logs when trying to run RTS:

Game update: AppID 253030 "Race The Sun", ProcID 9992, IP 0.0.0.0:0
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Set current directory to /oneforall/games/steam/oblomov/common/RaceTheSun
Found path: /oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun.x86
Mono path[0] = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Managed'
Mono path[1] = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Mono'
Mono config path = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Mono/etc'
displaymanager : xrandr version warning. 1.4
displaymanager : trying .X11-unix
client :0 has 1 screens
displaymanager screen (0): 3200 x 1800
Using libudev for joystick management

Importing game controller configs
*** Error in `./RaceTheSun.x86': munmap_chunk(): invalid pointer: 0x0c3c7c50 ***
Aborted
Game removed: AppID 253030 "Race The Sun", ProcID 9992 

or

Game update: AppID 253030 "Race The Sun", ProcID 9742, IP 0.0.0.0:0
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/oblomov/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Set current directory to /oneforall/games/steam/oblomov/common/RaceTheSun
Found path: /oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun.x86
Mono path[0] = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Managed'
Mono path[1] = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Mono'
Mono config path = '/oneforall/games/steam/oblomov/common/RaceTheSun/RaceTheSun_Data/Mono/etc'
displaymanager : xrandr version warning. 1.4
displaymanager : trying .X11-unix
client :0 has 1 screens
displaymanager screen (0): 3200 x 1800
Using libudev for joystick management

Importing game controller configs
*** Error in `./RaceTheSun.x86': free(): invalid pointer: 0xf7389898 ***
Aborted
Game removed: AppID 253030 "Race The Sun", ProcID 9742 
gdrewb-valve commented 8 years ago

You'll want to report this to the game developer also.

eriktorbjorn commented 8 years ago

I wonder if that's the same problem I've been seeing with a couple of other games recently, since I'm also running Debian unstable. For most of them, I don't get much output, but for some I'm also getting error messages about invalid pointers in free(), or in munmap_chunk().

For reference, the games I've been having trouble running so far are:

[Double Fine] Broken Age, Spacebase DF-9, Costume Quest, Costume Quest 2, Hack 'n' Slash, MASSIVE CHALICE, Brütal Legend, The Cave, Stacking

[Over The Moon] The Fall

[Koboldgames] Journey of a Roach

I don't know if it's significant, but all of these appear to be 32-bit games. (The 64-bit version of Journey of a Roach seems to work fine.) On the other hand, I have at least some other 32-bit games in Steam that still work fine. Also, a few of the problematic games work if I start them from a command prompt, but not if I start them from the Steam client.

Assuming this is the same problem, is there anything I can do to help narrow it down? (I did report the problem to Double Fine and Over The Moon, but this was very recently so they haven't been able to help me yet.)

gdrewb-valve commented 8 years ago

You can try disabling the Steam overlay. If that doesn't help you'll have to wait to see what the Steam team says.

bjwest commented 8 years ago

I get this on Civ V as well. I reported it to 2K games, but haven't heard anything back from them. Is this a Steam problem, seeing as how it effects so many games?

Edit: Forgot to mention, it only happens for me with official NVIDIA drivers 358.16 and above.

eriktorbjorn commented 8 years ago

Unfortunately, disabling the Steam overlay doesn't seem to make any difference for me.

At first I thought the problem was triggered by a recent Steam update, because that's when I first noticed it. But reverting to an older Steam version from a backup (and reconnecting from the Internet to prevent it from updating itself) didn't help. Assuming I didn't make some silly mistake, that would seem to indicate that the problem was tiggered by some recent Debian updated instead.

But since some of the games (e.g. The Cave) start up just fine when launched from a command prompt, Steam seems to be at least somewhat involved... maybe. This is all just speculation on my part.

Tele42 commented 8 years ago

@bjwest your issue is most likely unrelated to this unless @Oblomov and @eriktorbjorn are also using nvidia 358 or newer. There is a known general stability issue with nvidia 358 that is reported fixed with 361.18 and a separate issue between Aspyr games and libglvnd which has been fixed upstream, but has not yet been bundled with a nvidia driver release.

eriktorbjorn commented 8 years ago

I'm using the open source "radeonsi" driver. ("X.Org Gallium 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.7.1)", according to the Steam - System Information dialog.) I don't have Civilization V, but Fahrenheit: Indigo Prophecy Remastered seems to work fine.

eriktorbjorn commented 8 years ago

I just realized that I, too, have Race the Sun, probably from one of the many Humble Indie Bundles, and it seems to crash the same way for me as for @Oblomov. I feel less bad about hijacking this bug report now. :-)

rmbleeker commented 8 years ago

I just played a game of Race the Sun without issues on Ubuntu 14.04 LTS kernel 4.2.0-27 on an nVidia 560Ti with driver 361.18. I used keyboard and mouse, no controller plugged in, so since @Oblomov mentioned a controller maybe the problem lies there?

edit: when I start RTS from a terminal I get this output, after which the game starts and runs without issues.

Set current directory to /home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun
Found path: /home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun.x86
Mono path[0] = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Managed'
Mono path[1] = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Mono'
Mono config path = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Mono/etc'
displaymanager : xrandr version warning. 1.4
client has 2 screens
displaymanager screen (0)(DVI-I-2): 1680 x 1050
displaymanager screen (1)(DVI-I-3): 1680 x 1050
Using libudev for joystick management

Importing game controller configs
Killed

When I start Steam from a terminal the output for RTS is like this:

Running Steam on ubuntu 14.04 64-bit
STEAM_RUNTIME has been set by the user to: /home/rbleeker/.local/share/Steam/ubuntu12_32/steam-runtime
ExecCommandLine: "/home/rbleeker/.steam/root/ubuntu12_32/steam steam://open/driverhelperready"
ExecSteamURL: "steam://open/driverhelperready"
Game update: AppID 253030 "Race The Sun", ProcID 5040, IP 0.0.0.0:0
ERROR: ld.so: object '/home/rbleeker/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/rbleeker/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/rbleeker/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Set current directory to /home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun
Found path: /home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun.x86
Mono path[0] = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Managed'
Mono path[1] = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Mono'
Mono config path = '/home/rbleeker/.local/share/Steam/steamapps/common/RaceTheSun/RaceTheSun_Data/Mono/etc'
displaymanager : xrandr version warning. 1.4
client has 2 screens
displaymanager screen (0)(DVI-I-2): 1680 x 1050
displaymanager screen (1)(DVI-I-3): 1680 x 1050
Using libudev for joystick management

Importing game controller configs
Installing breakpad exception handler for appid(gameoverlayui)/version(20160204122232)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 78: saw unknown, expected number
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1454620878)
Killed
Game removed: AppID 253030 "Race The Sun", ProcID 5042 
eriktorbjorn commented 8 years ago

Probably not a controller issue - at least not solely - since I don't have one. I'm still more inclined to pin it on some reason change to Debian unstable, because that's something I do have in common with @Oblomov.

rmbleeker commented 8 years ago

Perhaps, although a game like this shouldn't be affected too much by the distro you're using. RTS is a Unity3D game I believe, or at least comes with it's own version of mono that it needs to run. So as long as your glibc is of a high enough version and your Steam Linux runtime is up-to-date, it should just run.

eriktorbjorn commented 8 years ago

For what it's worth, the non-Steam version of Race The Sun works fine for me. It's just the Steam version that doesn't.

DerBunman commented 8 years ago

The problem seems to be present in all 64 bit steam games:

Cities Skylines: * Error in `/home/ichi/.steam/SteamApps/common/Cities_Skylines/Cities.x64': free(): invalid pointer: 0x00000000028e6d78 *

Shovel Knight: * Error in `/home/ichi/.steam/SteamApps/common/Shovel Knight/64/ShovelKnight': free(): invalid pointer: 0x0000000001ed57a0 *

Transistor: * Error in `./Transistor.bin.x86_64': free(): invalid pointer: 0x00007f7234000078 *

Some of these games however run when you start them from an terminal.

Cheeseness commented 8 years ago

Some of these games however run when you start them from an terminal.

Do those games still run if you launch them from a terminal using the Steam Runtime (this launches the game outside of Steam, but using the libraries that Steam is bundled with)? Depending on where Steam is installed to, that'd be something like this:

~/.steam/steam/ubuntu12_32/steam-runtime/run.sh /Transistor.bin.x86_64
StarFscker commented 8 years ago

Cheeseness, I have tested what you proposed.

I am also running Sid, and when running games through the Steam Runtime, it does not work, and acts the same as though I'd launched the game through Steam .

When launching some games without, they seem to load fine.

I'm guessing this is a problem caused by the Steam libraries, perhaps a conflict between them and the distro's libraries?

Tabletop Simulator, for instance, runs through the terminal without steam.

Cities launches, but gets stuck on a black screen.

eriktorbjorn commented 8 years ago

I spent some time looking at the list of packages @DerBunman provided in bug #4319, and found that I could get many - unfortunately not all - of the broken games, including Race the Sun, to work by downgrading the ALSA libraries (libasound2 etc.) to 1.0.29-1.

I've seen other bug reports about problems involving ALSA 1.1.0 and Steam, but they were all about missing sound, not game crashes.

StarFscker commented 8 years ago

So I just tested this on a Debian Testing box I have, and the same problem exists, all the same games are crashing in the same way.

rmbleeker commented 8 years ago

Have any of you tried to see if all the right libraries are in place with ldd?

StarFscker commented 8 years ago

WORKAROUND!

LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam

when launching steam allows me to launch Cities: Skylines.

javiercantero commented 8 years ago

I've managed to fix the segfault in Broken Age. The solution should work with the other games too. You only need to remove or comment one line in /usr/share/alsa/alsa.conf (or apply this patch):

--- /usr/share/alsa/alsa.conf-1.1.0 2016-02-01 23:59:59.000000000 +0100
+++ /usr/share/alsa/alsa.conf   2016-02-25 11:46:36.099062833 +0100
@@ -367,7 +367,7 @@
    }
    type hw
    card $CARD
-   hint.description "Direct control device"
+###STEAM BUG###    hint.description "Direct control device"
 }

 ctl.shm {

See my comment in #4139 for details.

victorjchamorro commented 8 years ago

Comment that line is working! Thanks javiercantero.

Oblomov commented 8 years ago

For what it's worth, after some more recent system upgrades Race the Sun seems to be working for me now even without any of the workarounds mentioned here.

kisak-valve commented 5 years ago

Hello, since this issue report was last commented on Steam's handling of the Steam runtime has changed to prefer host libraries over the runtime variants. Is anyone still experiencing this issue on an up to date system?

eriktorbjorn commented 5 years ago

I had forgotten all about this, but I tried installing the game on Debian (unstable). Even though it's not a Linux distribution you official support, the game started and seemed to run just fine.

Oblomov commented 5 years ago

I have not experienced the error in a long time anymore, I think the issue can be marked as solved.