ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.25k stars 175 forks source link

Steam (both Flatpak/native) crash upon start - `steamwebhelper` on NixOS 24.05 #11346

Open shymega opened 1 month ago

shymega commented 1 month ago

Your system information

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

Initially discovered on the Flatpak Steam client, but reproducible on native Steam as well. Upon start, the Steam client unpacks the runtime, and soon crashes. This happens on NixOS 24.05, and worked fine on NixOS 23.11. However, I am unsure if it is specific to NixOS. Given it happens in the Flatpak too, I have my doubts.

The Flatpak issue is here: https://github.com/flathub/com.valvesoftware.Steam/issues/1347

I have cleared the Steam data dir, and it is still reproducible.

Steps for reproducing this issue:

  1. Install Steam either via Flatpak or programs.steam.enable = true.
  2. Launch Steam via Flatpak or native.
  3. Wait for it to download updates and unpack runtime.
  4. The webhelper crash dialog should show
  5. Unable to proceed.

I have attached a screenshot of the crash dialog:

steamwebhelper-dialog

Thank you!

smcv commented 3 weeks ago

Steam client version (build number or date): Can't find this out, as Steam crashes before the login/library screen. Advice welcome.

FYI, console-linux.txt in your steam-logs-native.tar.gz says:

10/13 20:48:03 Init: Installing breakpad exception handler for appid(steam)/version(1726683985)/tid(3389951)

which means you were running build 1726683985 (2024-09-18).

[2024-10-13 20:48:03] Startup - Steam Client launched with: '/home/dzrodriguez/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened' '-steamdeck'
[2024-10-13 20:48:03] Opted in to client beta 'steamdeck_stable' via beta file
You are in the 'steamdeck_stable' client beta.

Is your NixOS system intentionally pretending to be a Steam Deck? I suspect that the Steam Deck build of Steam is not intended to be supportable on ordinary desktop systems.

I'd suggest using the ordinary desktop build of Steam (steam -clearbeta or rm ~/.steam/root/package/beta drops out from the beta, or printf publicbeta > ~/.steam/root/package/beta switches to the desktop public beta) and not giving Steam the -steamdeck argument.

In the desktop version, you can activate more or less the same games-console-style interface as the Steam Deck with Settings → Interface → Start Steam in Big Picture Mode, or by running it as steam -tenfoot or steam -gamepadui.

assert_20241013204847_30.dmp[3458563]: Finished uploading minidump (out-of-process): success = no
assert_20241013204847_30.dmp[3458563]: error: SSL peer certificate or SSH remote key was not OK

Your crash dumps aren't being uploaded, which is probably harming Valve's ability to get more information. Does the environment in which you are running Steam have standard CA certificates installed and available in /etc/ssl/certs? (On Debian the relevant package is ca-certificates, but I don't know the NixOS equivalent.)

smcv commented 3 weeks ago

If you run Steam with STEAM_LINUX_RUNTIME_VERBOSE=1 in the environment, that will put more information in webhelper-linux.txt which might help to diagnose this further.

shymega commented 3 weeks ago

To the best of my knowledge, I have not told the native Steam package to use Steam Deck. However, I had somehow left Jovian-NixOS's overlay in. I have now removed this, and am rebuilding.

Ideally, I would rather use Flatpak, as it isolates from the rest of the system.

Do you want me to run STEAM_LINUX_RUNTIME_VERBOSE=1 in the Flatpak and native Steam?

With regards to the SSL cert, this happened at the time of the report, and the correct path for NixOS is /etc/ssl/certs/ca-certificates.crt.

I will update you shortly.

smcv commented 3 weeks ago

Ideally, I would rather use Flatpak, as it isolates from the rest of the system.

Valve does not generally provide support for the unofficial Flatpak app, and it's more complicated; so if there is a bug that is affecting you both with and without Flatpak, it will usually be more likely to be solvable without Flatpak.

Do you want me to run STEAM_LINUX_RUNTIME_VERBOSE=1 in the Flatpak and native Steam?

Ideally both, and collect both logs (it can't hurt...), but the native version is the one where you are more likely to get help, so if you only have time to test one, that's the higher priority.

The commands would end up looking something like:

shymega commented 3 weeks ago

I have reproduced the steamwebhelper crash on both Flatpak and native, using your commands.

The Flatpak has the following line, which might be why it crashes:

(zenity:5447): Gdk-WARNING **: 23:53:26.753: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop

However, native Steam is more complex - it crashes whilst trying to load libva:

pressure-vessel-wrap[60784]: D: An error occurred trying to resolve "/nix/store/gp1ddg84k2x5ykcx02anhsbhnq545466-libva-1.8.3/lib/dri" in sysroot: opendir(/nix/store/gp1ddg84k2x5ykcx02anhsbhnq545466-libva-1.8.3/lib/dri): No such file or directory

My proposal is that we split this issue into two distinct problems - what do you think?

I've attached a tarball with logs from Flatpak and native Steam.

Thanks.

steam-logs-flatpak.tar.gz steam-logs-native.tar.gz

smcv commented 3 weeks ago

it crashes whilst trying to load libva

No it doesn't: that's a debug message, not a fatal error. Please read that as "I tried to do this, but there was no such file or directory; moving on..."

This might prevent use of features that require VA-API on NixOS (where does NixOS keep its VA-API drivers?), but it's unlikely to be fatal.

smcv commented 3 weeks ago

Looking at the webhelper-linux.txt in your latest steam-logs-native.tar.gz, it seems like the container runtime setup might be hanging (or possibly crashing? no longer producing output, anyway) at a point shortly after the debug message you quoted.

Do you have evidence that it is crashing - perhaps a crash report being recorded by systemd-coredump or similar, or a message in the system log or systemd Journal - or is the pressure-vessel-wrap process still running after that point?

Either way, it might be useful to try with PRESSURE_VESSEL_SINGLE_THREAD=1 STEAM_LINUX_RUNTIME_VERBOSE=1 which might narrow down how far we are getting.

smcv commented 3 weeks ago

The Flatpak has the following line, which might be why it crashes:

(zenity:5447): Gdk-WARNING **: 23:53:26.753: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop

I don't think that's going to be fatal. If you get a zenity progress bar (a small GTK window, usually light grey) popping up and ... progressing while this is going on, then that part is working fine despite the warning.

(But you should probably install at least xdg-desktop-portal and xdg-desktop-portal-gtk on your host system if you want to use Flatpak, plus your desktop environment's desktop-environment-specific portal backend like xdg-desktop-portal-gnome or xdg-desktop-portal-kde if it has one. If you don't, lots of Flatpak apps will not work correctly.)

Are you sure you passed through STEAM_LINUX_RUNTIME_VERBOSE=1 to the Flatpak version of Steam, and are you sure you attached the correct logs? I don't see any of the verbose/debug logging in your Flatpak logs that I would have expected.

smcv commented 3 weeks ago

My proposal is that we split this issue into two distinct problems - what do you think?

I don't think there is enough information here yet to know whether you are experiencing the same problem in native-world and in Flatpak-world, or two different problems. The differences you quoted don't look like something that I would expect to be fatal.

shymega commented 3 weeks ago

On 18.10.2024 05:55, Simon McVittie wrote:

The Flatpak has the following line, which might be why it crashes:

(zenity:5447): Gdk-WARNING **: 23:53:26.753: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop

I don't think that's going to be fatal. If you get a zenity progress bar (a small GTK window, usually light grey) popping up and ... progressing while this is going on, then that part is working fine despite the warning.

(But you should probably install at least xdg-desktop-portal and xdg-desktop-portal-gtk on your host system if you want to use Flatpak, plus your desktop environment's desktop-environment-specific portal backend like xdg-desktop-portal-gnome or xdg-desktop-portal-kde if it has one. If you don't, lots of Flatpak apps will not work correctly.)

Yes, all that's correct on my setup.

Are you sure you passed through STEAM_LINUX_RUNTIME_VERBOSE=1 to the Flatpak version of Steam, and are you sure you attached the correct logs? I don't see any of the verbose/debug logging in your Flatpak logs that I would have expected.

I did indeed. I copied and pasted the command you provided.

Best wishes,

Dom Rodriguez GPG Fingerprint: EB0D 45E6 D0DC 1BA1 A2B5 FC24 72DC F123 1E54 BD43

shymega commented 3 weeks ago

On 18.10.2024 05:57, Simon McVittie wrote:

My proposal is that we split this issue into two distinct problems - what do you think?

I don't think there is enough information here yet to know whether you are experiencing the same problem in native-world and in Flatpak-world, or two different problems. The differences you quoted don't look like something that I would expect to be fatal.

That's fair enough. I'll try and get more debug logs, and a video of the issue for both native+Flatpak.

Best wishes,

Dom Rodriguez GPG Fingerprint: EB0D 45E6 D0DC 1BA1 A2B5 FC24 72DC F123 1E54 BD43

shymega commented 3 weeks ago

On 18.10.2024 05:41, Simon McVittie wrote:

it crashes whilst trying to load libva

No it doesn't: that's a debug message, not a fatal error. Please read that as "I tried to do this, but there was no such file or directory; moving on..."

This might prevent use of features that require VA-API on NixOS (where does NixOS keep its VA-API drivers?), but it's unlikely to be fatal.

NixOS doesn't store the VA-API drivers in a 'typical' FHS structure. That said, native Steam on NixOS should find the correct files.

Best wishes,

Dom Rodriguez GPG Fingerprint: EB0D 45E6 D0DC 1BA1 A2B5 FC24 72DC F123 1E54 BD43

shymega commented 3 weeks ago

On 18.10.2024 05:49, Simon McVittie wrote:

Looking at the webhelper-linux.txt in your latest steam-logs-native.tar.gz, it seems like the container runtime setup might be hanging (or possibly crashing? no longer producing output, anyway) at a point shortly after the debug message you quoted.

Do you have evidence that it is crashing - perhaps a crash report being recorded by systemd-coredump or similar, or a message in the system log or systemd Journal - or is the pressure-vessel-wrap process still running after that point?

I've got a dump from native Steam - attached to this email with tarballs of the logs directory, and invocation output from Flatpak+native Steam.

I was not able to capture the dump from Flatpak steam, but I do have a crash ID that was uploaded to Valve - CrashID=bp-87f9fc40-97e9-4283-a609-3685b2241018.

Either way, it might be useful to try with PRESSURE_VESSEL_SINGLE_THREAD=1 STEAM_LINUX_RUNTIME_VERBOSE=1 which might narrow down how far we are getting.

Best wishes,

Dom Rodriguez GPG Fingerprint: EB0D 45E6 D0DC 1BA1 A2B5 FC24 72DC F123 1E54 BD43

kisak-valve commented 3 weeks ago

Hello @shymega, please use a gist, attach as a file, or use another pastebin service when posting logs. Because you dumped it inline in an email response, GitHub does not allow formatting like collapsing the wall of text into an expandable HTML block.

I've removed the inline log so that it doesn't directly interfere with the discussion taking place. @smcv, you should be able to view the removed log in the edit history of the last comment.

shymega commented 3 weeks ago

Hey @kisak-valve - sorry, I've been working with mailing lists recently, and I must have gotten mixed up.

Would you like me to re-upload the original attachments in a new comment, but as a Gist?

kisak-valve commented 3 weeks ago

Feel free to re-add the log as a gist.

shymega commented 3 weeks ago

Attached - should be less noisy.

steam-native-dump-assert_20241018174624_31.dmp steam-logs-native-3.tar.gz steam-logs-flatpak-3.tar.gz steam-native-invocation.log steam-flatpak-invocation.log

shymega commented 2 weeks ago

Update - tested on my other AMD PC - 7735HS CPU, 680M GPU. Flatpak and native Steam work fine. Completely identical configuration, save for hardware-specific settings.

I did find this line on the problematic host (8840U CPU, 780M GPU) - it has been reported before:

src/steamUI/steamuisharedjscontroller.cpp (653) : Failed creating offscreen shared JS context

To clarify, I'm not using beta at all.

smcv commented 2 weeks ago

src/steamUI/steamuisharedjscontroller.cpp (653) : Failed creating offscreen shared JS context

As far as I can tell without access to the proprietary Steam code, this just means "I wasn't able to contact steamwebhelper", and doesn't really indicate anything specific about the reason for that failure.

shymega commented 2 weeks ago

Well, it's hard to tell. I did have a one-off success setting LIBVA_DRIVER_NAME="vdpau" on native (NixOS) Steam, and then it failed when I tried again. I.e, it got to the logon screen.

I think there's not a lot you or I can do.