protonscr

steam-runtime segfaults with glXChooseVisual failed error, steam-native does not.

steamclosed Steam clientDistro Family: Arch
ValveSoftware/steam-for-linux#10152 · opened 2023-10-19 by queenbiscuit311 · updated 2023-10-21 · 18 comments · github
Qqueenbiscuit311 2023-10-19 github

Your system information

  • Steam client version (build number or date): 1696019606, Fri, Sep 29 12:38 UTC -08:00
  • Distribution (e.g. Ubuntu): Arch Linux
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes
  • Steam Logs: [generate by running this command in a terminal tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]
    https://pastebin.com/CsgZsXvm (copied from terminal)
  • GPU: Intel/NVIDIA, steam runs on intel GPU

Please describe your issue in as much detail as possible:

Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist

Steam suddenly segfaults upon trying to open it, along with the error glXChooseVisual failed. Steam will show the updater window, then immediately close it before crashing. Instaling steam-native-runtime from the Arch Linux repos and running the steam-native script causes steam to start without issue. The problem only appears when starting steam with the steam runtime. I have not changed anything about my system that should cause this to happen, and other game launchers still work.

Steps for reproducing this issue:

  1. Run steam-runtime in a terminal
  2. It segfaults with the aforementioned error
  3. Run steam-native
  4. It does not segfault
Kkisak-valve maintainer 2023-10-19 github

Hello @queenbiscuit311, this reads like an incompatible dependency with Arch's steam packaging or a broken 32 bit OpenGL render path.

After you added the steam-native-runtime system package and its dependencies, did steam-runtime also start working? Are you able to determine which system package added by steam-native-runtime stopped the crash?

This issue should be mentioned to your distro's package maintainer(s) for their Steam package.

Also, please copy the contents of Steam Runtime Diagnostics from Steam (Steam -> Help -> Steam Runtime Diagnostics) and put it in a gist, then include a link to the gist in this issue report.

Qqueenbiscuit311 2023-10-19 github

Installing the steam-native-runtime package did not also fix steam-runtime, unfortunately. I already had the majority of the packages it installed so it only installed a handful and they didn't seem to affect steam-runtime. I would be willing to try to determine wich package it is that works in native that doesn't in runtime, I'm just not too sure how to. I will test the package in a clean environment and if the issue persists I'll submit an issue to the arch repos.

Here are my steam runtime diagnostics, I got them by opening steam with steam-native and going into the diagnostic option:

https://gist.github.com/queenbiscuit311/f05a2c58e9afa36132facce703052b40#file-steamruntimediag-txt

Looks like there's a few libraries that couldn't be found. Would I have to reinstall the steam runtime packages or something?

A broken 32 bit OpenGL render path seems to be what everyone else with this issue had, but if that's the case here too I'm not sure what's caused it on my system or why, given that it worked a few days ago.

Kkisak-valve maintainer 2023-10-19 github

Thanks. In general, disabling the Steam runtime is unsupportable and you or the package maintainers who gave you the option to disable it are responsible for the missing libraries in that configuration. Unfortunately, one of the missing dependencies prevents getting a direct answer about 32 bit OpenGL at https://gist.github.com/queenbiscuit311/f05a2c58e9afa36132facce703052b40#file-steamruntimediag-txt-L1993-L2004, but if we look at the same section with one of the container environments, it shows that render path is definitely broken. (https://gist.github.com/queenbiscuit311/f05a2c58e9afa36132facce703052b40#file-steamruntimediag-txt-L4707-L4747)

Can you double check that you have the lib32-mesa system package installed and that any 32 bit OpenGL application like glxinfo32 -B from lib32-mesa-utils works?

Qqueenbiscuit311 2023-10-19 github

Yeah, that's mainly why I wanted to get steam-runtime fixed, since while steam-native works it seems like a bad idea to keep it that way due to incompatibility when not using the steam runtime.

glxinfo32 -B appears to work, and I have lib32-mesa, lib32-mesa-utils, and lib32-mesa-vdpau installed. glxgears32 also appears to work, so 32 bit applications definitely seem to be able to render.

If some of the dependencies in the steam runtime are are missing, and that's why disabling the steam runtime makes steam launch as normal, how would I go about trying to fix it? I've tried verifying the files for all three steam runtimes in steam itself, but it says they're all intact. I'm not sure what would have caused it to break like that.

Ssmcv 2023-10-19 github

Seeing the runtime diagnostics with steam-native is not necessarily directly useful here, because that situation isn't the one that you are reporting a bug in. Ideally we'd want to see the Steam Runtime Diagnostics for Steam running in its supported mode (the one that Arch calls steam-runtime).

There's an obvious chicken and egg problem there, because it's impossible for you to look at a Steam window when Steam doesn't start, but you can avoid that by running the diagnostic tool more directly:

~/.steam/root/ubuntu12_32/steam-runtime/run.sh -- steam-runtime-system-info > srsi.log

and then attach srsi.log or send it as a Gist.

I've tried verifying the files for all three steam runtimes in steam itself, but it says they're all intact

I assume you mean the three things called "Steam Linux Runtime x.0 (something)". Those are a different layer, and are used for some specific games, but not to run Steam itself.

The runtime that gets disabled by steam-native is stored in ~/.steam/root/ubuntu12_32/steam-runtime, and is not visible in your Steam library. If you suspect that runtime has got corrupted, the way to check that is to move the ~/.steam/root/ubuntu12_32/steam-runtime directory into a safe place, then start Steam (using the Steam (runtime) shortcut or steam-runtime executable as usual). Steam should unpack a new copy of ~/.steam/root/ubuntu12_32/steam-runtime from a tarball.

Please move it into a safe place instead of deleting it - if re-unpacking the runtime solves your problem, then we will want to investigate how the bad version differs from the good version.

Also please check that the md5sum of ~/.steam/root/ubuntu12_32/steam-runtime.tar.xz matches ~/.steam/root/ubuntu12_32/steam-runtime.checksum.

As of today, if you are not running the Steam beta, the correct md5sum starts with 39f3b66e (which is version steam-runtime_0.20230801.56012).

Qqueenbiscuit311 2023-10-19 github

I tried deleting the steam-runtime folder. It did indeed unpack another one, but it didn't work either. Upon comparing the md5sums of both the tarball and the checksum file, they seem to be the same. That seems to rule out the runtime itself being broken.

Here's the steam runtime log: https://gist.github.com/queenbiscuit311/a44d031937e8e1d7e55beb709234454b#file-srsi-log

Looking at it myself, it would appear that there are a few va-api, glx, and egl errors in there. Not sure what would be causing that, though, as given that steam starts with the native runtime and that 32-bit glx apps work, I would assume that some or all of those things should be working for 32-bit apps. There's also a libgpg error thrown in there.

Ssmcv 2023-10-19 github

Working 32-bit GLX is necessary to run Steam, and unfortunately your 32-bit GLX does not seem to be working in the Steam Runtime environment:

            "Waffle error: 0x2 WAFFLE_ERROR_UNKNOWN: glXQueryExtensionsString failed"

That's probably the root cause here. (Vulkan is also important for games, and your 32-bit Vulkan driver is also not working, for whatever reason.)

32-bit VA-API, VDPAU and EGL are non-essential and can be ignored for now (although you might want to fix those later, to get accelerated video).

Perhaps try with ~/.steam/root/ubuntu12_32/steam-runtime/run.sh -- steam-runtime-system-info --verbose? That would tell us exactly which 32-bit libraries are getting loaded.

Also in the 32-bit section, this seems bad:

      "glx_drivers" : [
      ]

This would seem to indicate that either you don't have /usr/lib32/libGLX_{nvidia_mesa}.so.0, or you have them but we're not finding them for whatever reason?

Do you perhaps have a non-default 32-bit libGL.so.1 installed in some unexpected location?

I don't yet understand how your 32-bit glxgears can be working successfully in the absence of working 32-bit GLX drivers, or why steam-native is producing different results.

Ssmcv 2023-10-19 github

There's also a libgpg error

libgpg-error.so.0 is a library for GPG to help with error handling and other common code, and it isn't a problem for it to exist. Just because it comes up when you search for "error", that doesn't mean it is an error :-)

Ssmcv 2023-10-19 github

ldd $(which glxgears32) and ldd $(which glxinfo32) might also provide useful information about what is going on with your 32-bit GLX.

Qqueenbiscuit311 2023-10-19 github

I see. Looking at my /usr/lib32 folder, I have the following so files with libGLX in their names present:

libGLX_indirect.so.0
libGLX_mesa.so
libGLX_mesa.so.0
libGLX_mesa.so.0.0.0
libGLX_nvidia.so
libGLX_nvidia.so.0
libGLX_nvidia.so.545.23.06
libGLX.so
libGLX.so.0
libGLX.so.0.0.0

libGL.so.1 is also in there

glxgears32 and glxinfo32 seem to be using these libraries.

ldd $(which glxgears32)
` linux-gate.so.1 (0xf7f3a000)

    libGL.so.1 => /usr/lib32/libGL.so.1 (0xf7e80000)

    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7d2e000)

    libm.so.6 => /usr/lib32/libm.so.6 (0xf7c5a000)

    libc.so.6 => /usr/lib32/libc.so.6 (0xf7a00000)

    libGLdispatch.so.0 => /usr/lib32/libGLdispatch.so.0 (0xf7984000)

    libGLX.so.0 => /usr/lib32/libGLX.so.0 (0xf7949000)

    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7c2d000)

    /lib/ld-linux.so.2 => /usr/lib/ld-linux.so.2 (0xf7f3c000)

    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7c28000)

    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7942000)

`
Replacing glxgears32 with glxinfo32 produces the same output.

Here's the result of ~/.steam/root/ubuntu12_32/steam-runtime/run.sh -- steam-runtime-system-info --verbose

Also my bad about the libgpg error thing, I kind of skimmed over that one since it didn't seem related and since it was red I just assumed it was one lol

Also, not sure what's going on with the formatting on the code block i sent, but its still readable so I'll leave it that way.

Qqueenbiscuit311 2023-10-19 github

Also while the nvidia libglx so file shows that I am using the nvidia beta drivers, i already tried fully reverting them back to 535 with no luck on the steam side, which makes sense since steam should in theory be opening on the igpu even if it does appear to be using some of the nvidia libraries.

Kkisak-valve maintainer 2023-10-19 github

This is more of a blind guess than anything, but can you reinstall the lib32-libglvnd system package? I suspect part of it got overwritten by the NVIDIA beta driver install.

Qqueenbiscuit311 2023-10-19 github

This is more of a blind guess than anything, but can you reinstall the lib32-libglvnd system package? I suspect part of it got overwritten by the NVIDIA beta driver install.

No change, unfortunately.

Ssmcv 2023-10-19 github

I'm confused by why the diagnostic tool isn't finding your libGLX_*. The --verbose output confirms that it is finding your libGL.so.1 successfully.

Qqueenbiscuit311 2023-10-19 github

wondering if I should try temporarily removing my .local/share/Steam directory and reinstalling to see if that does anything

Qqueenbiscuit311 2023-10-19 github

Removing ~/.local/share/steam doesn't seem to have worked either which is unfortunate

Qqueenbiscuit311 2023-10-21 github

I've opened lutris for the first time in a while and its also complaining about missing 32-bit libraries that still exist. looks like somethings real messed up with my system config, but idk what it is

Qqueenbiscuit311 2023-10-21 github

Issue solved by reinstalling every single lib32 package on my system. No idea what happened, especially since reinstalling relevant packages did nothing but reinstalling all packages fixed it.

Nothing extracted yet.