ValveSoftware / steam-runtime

A runtime environment for Steam applications
Other
1.18k stars 86 forks source link

Bad RIP value from gtk3-nocsd package #286

Closed marekmarecki closed 3 years ago

marekmarecki commented 3 years ago

Proton version: 5.13-1 Ubuntu 20.04.1, nvidia

Games affected (all non-native games that I have installed are affected):

With proton 5.0-9 everything above was launching ok.

I can see some strange things in syslog: Oct 22 20:53:38 ubuntu-pc kernel: [ 593.762926] pressure-vessel[12294]: segfault at 0 ip 0000000000000000 sp 00007fffaeee1eb8 error 14 in pressure-vessel-launch[400000+14000] Oct 22 20:53:38 ubuntu-pc kernel: [ 593.762933] Code: Bad RIP value.

Logs that I collected:

Putting PROTON_LOG=1 %command% in launch options is not creating any logs (it was creating logs with proton 5.0-9).

Where should I look to get to the bottom of the problem?

Thanks


Small update: I have the exact same problem (the same errors in logs) on another machine (also Ubuntu 20.04.1 but steam installed from package provided by Steam's site, not provided by distro - if that makes any difference anyway)

kisak-valve commented 3 years ago

Hello @marekmarecki, this reads like a pressure vessel issue, which Proton 5.13 runs on top of. I suspect that the debian-modified Steam package is stealing any useful hints from the terminal spew and putting it in ~/.steam/error.log. Can you check if that exists and if there's any hints in it?

marekmarecki commented 3 years ago

Hi @kisak-valve. My bad. When I last checked this file, there was nothing interesting inside. Now it is generating more info. I updated the problem description with another gist. There are some errors there, like this for example:

_ERROR: ld.so: object '/home/marek/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. /usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_new Failed to load module: /usr/lib/x8664-linux-gnu/gio/modules/libgvfsdbus.so Segmentation fault

Here is content of /usr/lib/x86_64-linux-gnu/gio/modules/: -rw-r--r-- 1 root root 270 lip 8 21:44 giomodule.cache -rw-r--r-- 1 root root 67656 mar 11 2020 libdconfsettings.so -rw-r--r-- 1 root root 22680 cze 23 08:45 libgiognomeproxy.so -rw-r--r-- 1 root root 133408 cze 23 08:45 libgiognutls.so -rw-r--r-- 1 root root 18584 cze 23 08:45 libgiolibproxy.so -rw-r--r-- 1 root root 133344 kwi 14 2020 libgioremote-volume-monitor.so -rw-r--r-- 1 root root 231928 kwi 14 2020 libgvfsdbus.so

marekmarecki commented 3 years ago

I can confirm that removing gtk3-nocsd package from system and rebooting OS solves the problem: log from game running on 5.13-1. Confirmed on two machines. Big thanks to aib's comment.

smcv commented 3 years ago

The libgtk3-nocsd.so.0 preload library is known to break non-Steam programs quite regularly, too, and the GTK maintainers consider it to be a problem. I would recommend not using it.

If we do anything to solve this crash, it will probably be the brute-force approach: when we are adjusting LD_PRELOAD to work inside the container, remove any entry that looks like it might be libgtk3-nocsd.

marekmarecki commented 3 years ago

I removed the package, no problem. It was not installed directly, just as some dependency at some point in the past, I do not need it. But some folks may also have it and not know what to do, especially if it don't come up in logs that easily (in my attached logs there is no mention of this lib; would need to dig deeper to find it). Cheers and keep up the good work :+1:

aib commented 3 years ago

Indeed; I used gdb to trace the segfault to nocsd. And there's no direct connection to Steam or Proton, so it would be hard to stumble upon the solution. That's why I commented; glad to see it helped!

smcv commented 3 years ago

pressure-vessel versions >= 0.20210105.0 automatically disable gtk3-nocsd for the container.

These versions are available in the beta branch of SteamLinuxRuntime and SteamLinuxRuntime_soldier starting from today (check VERSIONS.txt). They are not in the normal/stable branch yet, but probably will be soon.

kisak-valve commented 3 years ago

Closing per the last comment.