protonscr

Steam X segfault

steamclosed
ValveSoftware/steam-for-linux#8333 · opened 2022-01-04 by theunkn0wn1 · updated 2022-01-09 · 7 comments · github
Ttheunkn0wn1 2022-01-04 github

Your system information

  • Steam client version 1639697812, installed version 1639697812, existing pending version 0
  • Distribution (e.g. Ubuntu): Ubuntu 20.04
  • Opted into Steam client beta?: [YesNo] No
  • Have you checked for system updates?: [Yes/No] yes

Please describe your issue in as much detail as possible:

Attempted to launch steam client via GUI, no UX appears.
Attempted to launch steam client via CLI to debug, discovered steam crashing to a segfault.

Attempted diagnostics steps from other GH issues with similar logs, ineffective.
Attempted to downgrade NVidia driver versions to 495 in case it was a driver issue, downgrade ineffective.

NVidia driver version:

$ nvidia-smi
Mon Jan  3 18:19:27 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.29.05    Driver Version: 495.29.05    CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+

Steps for reproducing this issue:

  1. Install steam for linux via deb
  2. launch steam from CLI
  3. observe crash

Logs:
https://gist.github.com/theunkn0wn1/b09b33b4933f901ac8a2c200fbecb63d

Kkisak-valve maintainer 2022-01-04 github

Hello @theunkn0wn1, swrast is mesa's slower software renderer, and the fact that Steam is trying to use it hints that you're using the nVidia proprietary driver, but don't have the driver's 32 bit userspace libraries installed. The nVidia proprietary driver requires the driver's running kernel module, 32 bit userspace libraries, and 64 bit userspace libraries are installed and have exactly the same version to work properly.

The fix would be to install the libnvidia-gl-495:i386 system package, but NVIDIA's third party repository do not provide a matched version to go with the rest of the driver from their repository. That issue is being tracked at #5778 and can not be fixed by Valve. Closing as a duplicate.

Ttheunkn0wn1 2022-01-04 github

@kisak-valve note the second crash does not involve swrast at all.

Also: installing the specified libnvidia-gl-495:i386 does not resolve the crash.

$ steam
steam.sh[6735]: Running Steam on ubuntu 20.04 64-bit
steam.sh[6735]: STEAM_RUNTIME is enabled automatically
setup.sh[6837]: Steam runtime environment up-to-date!
steam.sh[6735]: Steam client's requirements are satisfied
[2022-01-03 18:54:53] Startup - updater built Dec 16 2021 22:39:04
Installing breakpad exception handler for appid(steam)/version(1639697812)
SteamUpdateUI: An X Error occurred
X Error of failed request:  BadValue (integer parameter out of range for operation)
Kkisak-valve maintainer 2022-01-04 github

For the sake of argument, please test if any 32 bit OpenGL application like glxinfo from a 32 bit build of mesa-utils works. Unfortunately, Ubuntu doesn't provide a 32 bit builds of this package on 20.04, so maybe try unpacking https://packages.ubuntu.com/bionic/i386/mesa-utils/download with an archive utility and using the utility without installing it to the system.

Also, please share the output of apt policy libnvidia-gl-495 libnvidia-gl-495:i386.

Ttheunkn0wn1 2022-01-04 github

As an update, after my laptop crashed (probably from libnvidia-gl-495:i386's install without rebooting), steam successfully launched.

For the sake of argument, unp

unpacked the specified package. Both the packaged glxinfo and glxgears do run, likely because of the reboot.

~/Downloads/temp ⌚ 19:27:12
$ ./usr/bin/glxgears         
8802 frames in 5.0 seconds = 1760.265 FPS
^C

~/Downloads/temp ⌚ 19:27:21
$ apt policy libnvidia-gl-495 libnvidia-gl-495:i386 
libnvidia-gl-495:
  Installed: (none)
  Candidate: 495.29.05-0ubuntu1
  Version table:
     495.44-0ubuntu0.20.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu focal-security/restricted amd64 Packages
     495.29.05-0ubuntu1 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
libnvidia-gl-495:i386:
  Installed: 495.44-0ubuntu0.20.04.1
  Candidate: 495.44-0ubuntu0.20.04.1
  Version table:
 *** 495.44-0ubuntu0.20.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages
        500 http://us.archive.ubuntu.com/ubuntu focal-security/restricted i386 Packages
        100 /var/lib/dpkg/status
Kkisak-valve maintainer 2022-01-04 github

libnvidia-gl-495: Installed: (none) tells us that the 64 bit render path now does not have NVIDIA's userspace libraries, which is also unhealthy. You want both of those packages installed, and Debian's multilib implementation requires that arch variants have exactly the same version. I'd try something like sudo apt install libnvidia-gl-495 libnvidia-gl-495:i386 which should tell apt to figure out what it needed to do to have both, and from what you shared, 495.44-0ubuntu0.20.04.1 is the only package version it can pick to make that happen.

It wouldn't be surprising if the desktop environment was using the 64 bit render path through the NVIDIA driver, and in an earlier attempt to force libnvidia-gl-495:i386 to install, you gave apt permission to uninstall the 64 bit variant. I would also check that NVIDIA's running kernel module is also 495.44 instead of 495.29.05.

Ttheunkn0wn1 2022-01-04 github
$ sudo apt install libnvidia-gl-495 libnvidia-gl-495:i386
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libnvidia-gl-495:i386 is already the newest version (495.44-0ubuntu0.20.04.1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libnvidia-gl-495 : Breaks: libnvidia-gl-495:i386 (!= 495.29.05-0ubuntu1) but 495.44-0ubuntu0.20.04.1 is to be installed
 libnvidia-gl-495:i386 : Breaks: libnvidia-gl-495 (!= 495.44-0ubuntu0.20.04.1) but 495.29.05-0ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

yes, i gave apt permission to uninstall the x64 bit version because it provided no choice in the matter. You are correct in this being unhealthy, as the laptop now fails to restore from hibernate.

Ttheunkn0wn1 2022-01-09 github

Update:
While i could get steam to launch, even native games like factorio had horrendous framrates (that used to have good FPS), and proton games failed to launch.

it seems steam is mutually exclusive to CUDA, which is a problem since i need that for some of the workflows i use this machine for.

I ended up applying the fix described in https://github.com/ValveSoftware/steam-for-linux/issues/7477#issuecomment-758234122

now both proton games and native games launch again with acceptable performance.