Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steamwebhelper is not responding: steam-runtime-sniper.tar.xz not fully unpacked #10412

Open
Arcitec opened this issue Jan 20, 2024 · 36 comments

Comments

@Arcitec
Copy link

Arcitec commented Jan 20, 2024

Your system information

  • Steam client version (build number or date): 2024-01-20's beta update.
  • Distribution (e.g. Ubuntu): Fedora 38
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes
  • Steam Logs: Already uninstalled the beta.
  • GPU: Nvidia, proprietary driver, on X11 (also tried it on Wayland, same error)

Please describe your issue in as much detail as possible:

Steam doesn't open. Error message below appears on every startup. Attempting to restart "without GPU Acceleration" doesn't work. When starting steam with the terminal via flatpak run com.valvesoftware.Steam, I can see that it attempts to start steamwebhelper 6 times and that each one crashes.

This issue appeared in the January 20th, 2024 update of Steam Beta for Linux.

image

Steps for reproducing this issue:

  1. Enable GPU acceleration of web views in Steam (not sure if this matters).
  2. Enable beta interface updates in Steam.
  3. Update to the latest Steam version for Linux (the app does this automatically at startup).

Steps for fixing this issue:

  1. Close Steam if it's already running. Verify that there's nothing in ps aux | grep -i steam.
  2. Execute flatpak run com.valvesoftware.Steam -clearbeta which will tell Steam to delete the beta, and it will automatically go back to the stable release channel. (edit: People who use the native Steam packages instead should run steam -clearbeta instead.)
@micb25
Copy link

micb25 commented Jan 20, 2024

Same here with Fedora 39, X11 with NVIDIA 535.154.05 proprietary driver.

I've got the exact steamwebhelper launch parameters from ~/.local/share/Steam/logs/webhelper.txt and did run it manually. The process issues the following error three times in a row and gives up:

[0120/214842.449878:ERROR:angle_platform_impl.cc(43)] Display.cpp:1021 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1404.
ERR: Display.cpp:1021 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1404.
[0120/214842.449949:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1404.
[0120/214842.449987:ERROR:gl_display.cc(932)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED
[0120/214842.450031:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed.
[0120/214842.450891:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
[0120/214842.531294:INFO:crash_reporting.cc(262)] Crash reporting enabled for process: gpu-process

edit: the issued Vulkan error code -3 corresponds to VK_ERROR_INITIALIZATION_FAILED.

@Exzou
Copy link

Exzou commented Jan 21, 2024

Same issue, PopOS, 6.6.6-76060606-generic. I'm using an AMD CPU and GPU. Flatpak doesn't work due to the various SSD's I use not being accessible through flatpak.

I ran the steam -console -clearbeta command which worked but gave a no internet connection error and then ran again with steam -console and steam updated. I'm able to access all my games at first glance now using the non flathub version of the game so all is well for now.


steam -console
steam.sh[31162]: Running Steam on pop 22.04 64-bit
steam.sh[31162]: STEAM_RUNTIME is enabled automatically
setup.sh[31233]: Steam runtime environment up-to-date!
steam.sh[31162]: Steam client's requirements are satisfied
01/21 08:13:57 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(31304)
/usr/share/themes/Pop-dark/gtk-2.0/main.rc:775: error: unexpected identifier 'direction', expected character '}'
/usr/share/themes/Pop-dark/gtk-2.0/hacks.rc:28: error: invalid string constant "normal_entry", expected valid string constant
steamwebhelper.sh[31341]: === Sun Jan 21 08:13:58 AM CST 2024 ===
steamwebhelper.sh[31341]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/username/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 66 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 31405
steamwebhelper.sh[31455]: === Sun Jan 21 08:14:08 AM CST 2024 ===
steamwebhelper.sh[31455]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[31475]: === Sun Jan 21 08:14:18 AM CST 2024 ===
steamwebhelper.sh[31475]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
01/21 08:14:19 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(31304)
assert_20240121081419_27.dmp[31495]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240121081419_27.dmp
assert_20240121081419_27.dmp[31495]: Finished uploading minidump (out-of-process): success = yes
assert_20240121081419_27.dmp[31495]: response: CrashID=bp-e393604a-3caa-483e-9fec-c03e92240121
assert_20240121081419_27.dmp[31495]: file ''/tmp/dumps/assert_20240121081419_27.dmp'', upload yes: ''CrashID=bp-e393604a-3caa-483e-9fec-c03e92240121''
BRefreshApplicationsInLibrary 1: 0ms
steamwebhelper.sh[31907]: === Sun Jan 21 08:14:28 AM CST 2024 ===
steamwebhelper.sh[31907]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[31925]: === Sun Jan 21 08:14:39 AM CST 2024 ===
steamwebhelper.sh[31925]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
reaping pid: 31475 -- unknown
src/steamexe/main.cpp (264) : Assertion Failed: ReapProcess: waitid failed: 'No child processes'. Possibly leaking a zombie.

01/21 08:14:41 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(31304)
assert_20240121081441_36.dmp[31951]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240121081441_36.dmp
assert_20240121081441_36.dmp[31951]: Finished uploading minidump (out-of-process): success = yes
assert_20240121081441_36.dmp[31951]: response: CrashID=bp-b876253e-c2d8-428c-b980-e499d2240121
assert_20240121081441_36.dmp[31951]: file ''/tmp/dumps/assert_20240121081441_36.dmp'', upload yes: ''CrashID=bp-b876253e-c2d8-428c-b980-e499d2240121''
steamwebhelper.sh[31953]: === Sun Jan 21 08:14:49 AM CST 2024 ===
steamwebhelper.sh[31953]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[31972]: === Sun Jan 21 08:14:59 AM CST 2024 ===
steamwebhelper.sh[31972]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[32046]: === Sun Jan 21 08:15:09 AM CST 2024 ===
steamwebhelper.sh[32046]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper

^CSteam Runtime Launch Service: steam-runtime-launcher-service pid 31405 exited
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 32066
^CSteam Runtime Launch Service: steam-runtime-launcher-service pid 32066 exited
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 32085
steamwebhelper.sh[32089]: === Sun Jan 21 08:15:20 AM CST 2024 ===
steamwebhelper.sh[32089]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/user/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper


@Arcitec
Copy link
Author

Arcitec commented Jan 21, 2024

@Exzou Yeah, thankfully the -clearbeta flag works to rescue us from bad betas. :)

  • Be sure Steam isn't running first: ps aux | grep -i steam
  • Flatpak: flatpak run com.valvesoftware.Steam -clearbeta
  • Native: steam -clearbeta

@Guanran928
Copy link

Can confirm.
NixOS unstable / Linux 6.7.0-zen3 / NVIDIA 545.29.06 / SwayWM (Wayland) 1.8.1
Full HWProbe here: https://linux-hardware.org/?probe=f67367aa62

I can also see a lot of coredumps through coredumpctl

#781 (comment)
(original comment marked as off-topic elsewhere while trying to get a beta-only feature working,
including video and log.)

@asdfjkluiop
Copy link

Can confirm over here
Debian sid / Linux 6.7.1 / mesa 23.3.3
-clearbeta fixes it for me

@Guanran928
Copy link

image

Hmm, seems like its caused by something input method related... not sure why but Steam client launches normally after I unset GTK_IM_MODULE.

env GTK_IM_MODULE=wayland steam: crashes (before)
env GTK_IM_MODULE=fcitx steam: works
env -u GTK_IM_MODULE steam: works

However I'm not able to get Fcitx5 (input method) working...

❯ env | rg 'IM_MODULE|fcitx'
GTK_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
QT_PLUGIN_PATH=/nix/store/r895shrw5h3xjiy39fsn566gwc644pkj-fcitx5-with-addons-5.1.6/lib/qt-6/plugins

image

@smcv
Copy link
Contributor

smcv commented Jan 22, 2024

I think there might be several different things causing this same symptom, and if we let those stay as the same issue report, it quickly becomes really confusing.

Let's treat whatever is happening to @Arcitec as the canonical description of this issue, and break out the other ones into separate issues if there are identifiable differences.

A very major difference in the beta's steamwebhelper is that it now runs in the same environment as the Steam Linux Runtime 3.0 (sniper) compatibility tool.

@Arcitec:

Have games that run in the Steam container runtimes (Counter-Strike 2, recent Dota 2, Endless Sky, Retroarch, any Windows game via Proton 5.13+) worked correctly for you in the past?

What version of Flatpak are you using? Since you mention your OS is Fedora, I assume it's a reasonably recent one.

If you launch the beta, let it fail, then look in ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs, what is logged in webhelper.txt and steamwebhelper.log?

I'll ask for some more information/logs in a subsequent comment, but I'll need to get the beta running under Flatpak myself first.

@smcv
Copy link
Contributor

smcv commented Jan 22, 2024

@micb25:

Because you mentioned ~/.local/share/Steam, I think you are using Steam installed from a "native" OS-level package (RPM from rpmfusion, or similar) rather than installed via the Flatpak app from Flathub. Am I correct?

I've got the exact steamwebhelper launch parameters from ~/.local/share/Steam/logs/webhelper.txt and did run it manually

The error messages from this might be relevant - but they also might not, because the new version of steamwebhelper is designed to run in a specific container environment, not on your host system. While you are using the non-working beta, what else is logged in ~/.local/share/Steam/logs, especially in webhelper.txt and steamwebhelper.log?

@smcv
Copy link
Contributor

smcv commented Jan 22, 2024

@Guanran928, please could you open your own, separate issue, and make sure to mention GTK_IM_MODULE=wayland in the title? The fact that you can work around the crash you're seeing by unsetting GTK_IM_MODULE seems distinctive enough to be something to look at separately.

[edited to add: Also, because you have /nix/ paths visible in your crash dump, I think you are not using the Flatpak app like the original reporter of this issue was.]

@Arcitec
Copy link
Author

Arcitec commented Jan 22, 2024

Have games that run in the Steam container runtimes (Counter-Strike 2, recent Dota 2, Endless Sky, Retroarch, any Windows game via Proton 5.13+) worked correctly for you in the past?

Out of that list, the only thing I use is Windows games. I use Proton Experimental + Proton 8 + GE-Proton8 (most recent) and they have always worked.

What version of Flatpak are you using? Since you mention your OS is Fedora, I assume it's a reasonably recent one.

  • Works: Fedora 39, X11, "flatpak --version: Flatpak 1.15.6", RTX 3090 with proprietary driver, Flatpak Steam, Enabled beta + "hardware acceleration in web views". I also noted that flatpak run com.valvesoftware.Steam only had a single line for steamwebhelper, meaning it initialized immediately:
"steamwebhelper.sh[114]: === Mon 22 Jan 19:13:32 CET 2024 ===
steamwebhelper.sh[114]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/x/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
  • Didn't work: Fedora 38, X11, family computer, RTX 2070 Super with proprietary driver, Flatpak Steam, Enabled beta + "hardware acceleration in web views". At startup, there's about 6 steamwebhelper attempts to start before it gives up and presents the error. I have to go and check their computer again for more details.

If you launch the beta, let it fail, then look in ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs, what is logged in webhelper.txt and steamwebhelper.log?

I'll ask for some more information/logs in a subsequent comment, but I'll need to get the beta running under Flatpak myself first.

I'll try it on their computer again to look at that.

@Arcitec
Copy link
Author

Arcitec commented Jan 22, 2024

@smcv Okay the tests at the family computer are done. I enabled Beta on their computer again and it crashed.

  • Flatpak 1.15.4.
  • The Steam Flatpak itself is also fully up to date.
  • NVIDIA driver: 545.29.06 (same as on my working Fedora 39 machine)

flatpak run com.valvesoftware.Steam startup log:

$ flatpak run com.valvesoftware.Steam
INFO:root:https://github.com/flathub/com.valvesoftware.Steam/wiki
INFO:root:Will set XDG dirs prefix to /home/marianne/.var/app/com.valvesoftware.Steam
DEBUG:root:Checking input devices permissions
INFO:root:Overriding TZ to Europe/Stockholm
steam.sh[2]: Running Steam on org.freedesktop.platform 23.08 64-bit
steam.sh[2]: STEAM_RUNTIME is enabled automatically
setup.sh[74]: Steam runtime environment up-to-date!
steam.sh[2]: Steam client's requirements are satisfied
tid(108) burning pthread_key_t == 0 so we never use it
[2024-01-22 19:22:41] Startup - updater built Jan 20 2024 02:58:32
[2024-01-22 19:22:41] Startup - Steam Client launched with: '/home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/steam' '-no-cef-sandbox'
[2024-01-22 19:22:41] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
01/22 19:22:41 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(108)
[2024-01-22 19:22:41] Loading cached metrics from disk (/home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/package/steam_client_metrics.bin)
[2024-01-22 19:22:41] Using the following download hosts for Public, Realm steamglobal
[2024-01-22 19:22:41] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2024-01-22 19:22:41] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2024-01-22 19:22:41] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-01-22 19:22:41] Verifying installation...
[2024-01-22 19:22:41] Verification complete

Steam logging initialized: directory: /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf03c88f0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf03c71c0
steamwebhelper.sh[114]: === mån 22 jan 2024 19:22:41 CET ===
steamwebhelper.sh[114]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 95 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 156
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
steamwebhelper.sh[175]: === mån 22 jan 2024 19:22:51 CET ===
steamwebhelper.sh[175]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[192]: === mån 22 jan 2024 19:23:01 CET ===
steamwebhelper.sh[192]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
01/22 19:23:02 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(108)
assert_20240122192302_28.dmp[211]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240122192302_28.dmp
assert_20240122192302_28.dmp[211]: Finished uploading minidump (out-of-process): success = yes
assert_20240122192302_28.dmp[211]: response: CrashID=bp-47318432-5151-4715-a092-e0a712240122
assert_20240122192302_28.dmp[211]: file ''/tmp/dumps/assert_20240122192302_28.dmp'', upload yes: ''CrashID=bp-47318432-5151-4715-a092-e0a712240122''
steamwebhelper.sh[218]: === mån 22 jan 2024 19:23:12 CET ===
steamwebhelper.sh[218]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
BRefreshApplicationsInLibrary 1: 1ms
steamwebhelper.sh[3122]: === mån 22 jan 2024 19:23:22 CET ===
steamwebhelper.sh[3122]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[3139]: === mån 22 jan 2024 19:23:32 CET ===
steamwebhelper.sh[3139]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (545) : Failed creating offscreen shared JS context
reaping pid: 218 -- unknown
src/steamexe/main.cpp (264) : Assertion Failed: ReapProcess: waitid failed: 'No child processes'. Possibly leaking a zombie.

src/steamexe/main.cpp (264) : Assertion Failed: ReapProcess: waitid failed: 'No child processes'. Possibly leaking a zombie.

01/22 19:23:34 Init: Installing breakpad exception handler for appid(steam)/version(1705720677)/tid(108)
assert_20240122192334_36.dmp[3161]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240122192334_36.dmp
assert_20240122192334_36.dmp[3161]: Finished uploading minidump (out-of-process): success = yes
assert_20240122192334_36.dmp[3161]: response: CrashID=bp-edfe410a-5d15-4ffb-8eca-212652240122
assert_20240122192334_36.dmp[3161]: file ''/tmp/dumps/assert_20240122192334_36.dmp'', upload yes: ''CrashID=bp-edfe410a-5d15-4ffb-8eca-212652240122''

webhelper.txt log doesn't exist.

steamwebhelper.log contents are as follows (this is all of it, since I reset the logs folder and ran it on the beta):

steamwebhelper.sh[3250]: === mån 22 jan 2024 19:24:33 CET ===
steamwebhelper.sh[3250]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
/home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh: line 286: /home/marianne/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point: No such file or directory

Contents of the directory on the broken Fedora 38 installation:

ll ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper 
totalt 8,0K
drwxr-xr-x. 1 marianne marianne  58  7 nov 17.29 sniper_platform_0.20231107.66301
-rwxr-xr-x. 1 marianne marianne  63 20 jan 07.29 checksum
-rw-r--r--. 1 marianne marianne 210  7 nov 17.29 toolmanifest.vdf

Contents of the directory on the working Fedora 39 installation on my own computer:

ll ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper 
total 32K
drwxr-xr-x. 1 johnny johnny   42 Nov  7 17:29 pressure-vessel
drwxr-xr-x. 1 johnny johnny   58 Nov  7 17:29 sniper_platform_0.20231107.66301
drwx------. 1 johnny johnny   28 Jan 22 19:13 var
-rwxr-xr-x. 1 johnny johnny   63 Jan 22 19:07 checksum
-rw-r--r--. 1 johnny johnny 2.4K Nov  7 17:29 README.md
-rwxr-xr-x. 1 johnny johnny  593 Nov  7 17:29 run
-rwxr-xr-x. 1 johnny johnny  593 Nov  7 17:29 run-in-sniper
-rw-r--r--. 1 johnny johnny  210 Nov  7 17:29 toolmanifest.vdf
-rwxr-xr-x. 1 johnny johnny 7.5K Nov  7 17:29 _v2-entry-point
-rw-r--r--. 1 johnny johnny  296 Nov  7 17:29 VERSIONS.txt

Both Steam installations were made on the same Fedora version (38) and have been kept up-to-date over time via Flatpak updates and Steam's own internal updater.

Because this problem is in the .var folder, it's user-data and should not have anything to do with the Flatpak packaging.

So this suggests that somewhere, something in Steam's own update process or code has clearly failed to install (or deleted) important files on the broken computer.

Maybe it would be possible to add a startup sanity check to Steam's code which restores the missing files.

@smcv
Copy link
Contributor

smcv commented Jan 22, 2024

Contents of the directory on the broken Fedora 38 installation:

Yes, this is clearly incomplete. During a previous run of Steam, the steamwebhelper.sh and steam-runtime-sniper.sh scripts unpacked steam-runtime-sniper.tar.xz into steam-runtime-sniper/, somehow failed the unpack half way through, but marked it as complete anyway.

Reading the scripts, I can't immediately see how this failure mode is possible - it looks as though they unpack the whole thing into a temporary location before creating the checksum file, which should be reliable. But improving the robustness of this step is something that is being worked on for future beta releases already.

The good news is that deleting the ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper directory should work as a workaround for this. The next time you run the Steam beta, it will be re-unpacked, hopefully with more success this time.

For non-Flatpak Steam, it would be ~/.steam/root/ubuntu12_64/steam-runtime-sniper instead.

Maybe it would be possible to add a startup sanity check to Steam's code which restores the missing files

That's certainly possible, but the harder part would be to make it reliably catch all errors, without delaying every Steam startup by up to 30 seconds, which you probably don't want either. It can take that long to check that everything in the container runtime is as it should be, particularly on slower HDD-based systems.

Some sort of compromise might be possible, like re-validating (or just deleting) the container runtime after steamwebhelper fails to start, but continuing to use an existing unpacked copy as long as it seems to be working.

Out of that list, the only thing I use is Windows games. I use Proton Experimental + Proton 8 + GE-Proton8 (most recent) and they have always worked.

On both of your computers, and in particular the affected/broken one?

The reason I ask this is because Proton >= 5.13 uses the same container runtime framework that is now being used for the steamwebhelper, so if Proton games have worked on your affected computer, then we can eliminate "container runtime framework is broken on this computer" as a possible root cause.

Proton GE is not supported by Valve, but I believe recent versions of it are using the same container runtime framework as official/supported Proton releases.

@smcv
Copy link
Contributor

smcv commented Jan 22, 2024

@micb25, @Exzou, @asdfjkluiop: Please could you check whether you have an incomplete steam-linux-runtime-sniper/ directory, like @Arcitec did? It should be in ubuntu12_64/steam-runtime-sniper relative to your top-level Steam directory.

For most installation methods (.deb, .rpm, Arch, NixOS ...) there is a symlink at ~/.steam/root pointing to your top-level Steam directory, which will usually be ~/.local/share/Steam or sometimes ~/.steam/debian-installation.

If you installed Steam as a Flatpak app from Flathub, your top-level Steam directory will be ~/.var/app/com.valvesoftware.Steam/.local/share/Steam instead.

If you installed Steam as a Snap app from Canonical's app store (not recommended) there will be a symbolic link at ~/snap/steam/common/.steam/root that points to it, most likely ~/snap/steam/common/.local/share/Steam.

Even after opting out from the beta, I think the ubuntu12_64/steam-runtime-sniper directory will probably still exist: the stable client doesn't use it, but I think it also doesn't delete it. If it was unpacked correctly, it should be about 700M in total according to du -sh, and look something like @Arcitec's working installation as quoted above:

$ ls -l ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper 
total 32K
drwxr-xr-x. 1 johnny johnny   42 Nov  7 17:29 pressure-vessel
drwxr-xr-x. 1 johnny johnny   58 Nov  7 17:29 sniper_platform_0.20231107.66301
drwx------. 1 johnny johnny   28 Jan 22 19:13 var
-rwxr-xr-x. 1 johnny johnny   63 Jan 22 19:07 checksum
-rw-r--r--. 1 johnny johnny 2.4K Nov  7 17:29 README.md
-rwxr-xr-x. 1 johnny johnny  593 Nov  7 17:29 run
-rwxr-xr-x. 1 johnny johnny  593 Nov  7 17:29 run-in-sniper
-rw-r--r--. 1 johnny johnny  210 Nov  7 17:29 toolmanifest.vdf
-rwxr-xr-x. 1 johnny johnny 7.5K Nov  7 17:29 _v2-entry-point
-rw-r--r--. 1 johnny johnny  296 Nov  7 17:29 VERSIONS.txt

If you have the same failure mode seen by @Arcitec then it might be smaller, or might be obviously missing some files. Future betas will have a built-in way to validate that its contents are all there, but unfortunately the runtime version used in the current beta is slightly too old to have that feature.

If the problem you are seeing is not obviously the same as what @Arcitec had, then please switch back to the beta. If it is still failing for you, please collect logs/webhelper.txt and logs/steamwebhelper.log from your Steam directory so we can investigate.

@Arcitec
Copy link
Author

Arcitec commented Jan 22, 2024

Thank you @smcv. I am very impressed with your professionalism and intelligence and the whole way you're handling this. Going above and beyond in tracking this down!

Yes, this is clearly incomplete. During a previous run of Steam, the steamwebhelper.sh and steam-runtime-sniper.sh scripts unpacked steam-runtime-sniper.tar.xz into steam-runtime-sniper/, somehow failed the unpack half way through, but marked it as complete anyway.

Reading the scripts, I can't immediately see how this failure mode is possible - it looks as though they unpack the whole thing into a temporary location before creating the checksum file, which should be reliable. But improving the robustness of this step is something that is being worked on for future beta releases already.

I can confirm that I saw it creating /the/destination/folder.new (.new suffix) while unpacking and didn't change its name until it was done. The fact that the temporary folder is called .new and was then intentionally renamed by Steam means that we can rule out power outages, killed processes, etc.

At first I would say "maybe Valve just accidentally published a broken soldier runtime for a few minutes and we happened to successfully unpack a partial archive. But then I thought "but shouldn't we then have received the fixed Sniper runtime in the next app auto-update?". So that doesn't make any sense either.

My guess would be that tar somehow crashed while processing the archive once. And that the script somehow interpreted it as "DONE" and renamed the .new to the final folder name...

I can recommend using set -e in Steam's scripts in general, to catch all errors. It makes bash exit whenever there is any unhandled error in any program or pipe. In fact that flag would also have avoided this much more serious bug years ago which deleted all computer files for a few users: #3671

It's a nice flag since it still allows errors if you check for them, so if somecommand; then will be allowed to error, but somecommand or foo="$(somecommand | othercommand)" will not be allowed to continue running.

 

The good news is that deleting the ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper directory should work as a workaround for this. The next time you run the Steam beta, it will be re-unpacked, hopefully with more success this time.

Thanks, that is indeed the fix for this.

  • I switched their machine back to Beta. Startups failed again.
  • I ran the following command: rm -rf ~/".var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper"
  • Started steam and saw it create the steam-runtime-sniper.new folder while it was unpacking. And when it was done, it became renamed to the proper destination name.
  • Steam starts up properly now.

I did not see it fetching any new .tar.xz file from the CDN, so it seems like it unpacked the exact same file that had previously only been partially unpacked. I'm also guessing that Steam checks the hash of the .tar.xz before it even begins to unpack anything, which rules out the possibility that the old archive we had was partially downloaded.

That means I'd more likely suspect that the script was the failure, not the archive file itself. Either the script didn't validate the result, or something killed tar and the script assumed it was done.

The disk has a few hundred gigabytes of free space, so I am sure it didn't stop due to that, at least.

 

That's (validating all files) certainly possible, but the harder part would be to make it reliably catch all errors, without delaying every Steam startup by up to 30 seconds, which you probably don't want either. It can take that long to check that everything in the container runtime is as it should be, particularly on slower HDD-based systems.

Some sort of compromise might be possible, like re-validating (or just deleting) the container runtime after steamwebhelper fails to start, but continuing to use an existing unpacked copy as long as it seems to be working.

I just had a look in that runtime directory and see that it's "2188 directories, 15520 files" so I certainly see what you mean. It's a bit more than I expected and would take a long time to verify at every startup.

I agree with your ideas and think the best solution for "error recovery" would be one of the following things:

  • When Steam is starting up and steamwebhelper crashes (at startup), automatically run a scan of all on-disk files in the runtime, and automatically unpack (maybe even download a fresh tar file). Preferably with some kind of on-screen dialog that lets the user know it's processing things, otherwise the user may try to start many more instances or try to kill the "hung" steam process.
  • Or, if that's too invasive/slow/complex, we could just add it to the "critical steam error" dialog box that I showed in my first post at the top of this thread. That dialog certainly has room for an option that says "Repair steamwebhelper runtime environment" in the crash action window. It'd be a good-enough solution, I think. Some users may not realize it's there or may not dare to click on it, but I think most users would soon gravitate to trying that option after Steam keeps crashing.

 

Out of that list, the only thing I use is Windows games. I use Proton Experimental + Proton 8 + GE-Proton8 (most recent) and they have always worked.

On both of your computers, and in particular the affected/broken one?

The reason I ask this is because Proton >= 5.13 uses the same container runtime framework that is now being used for the steamwebhelper, so if Proton games have worked on your affected computer, then we can eliminate "container runtime framework is broken on this computer" as a possible root cause.

That's on both computers. They use a mixture of runtimes for each different game, but particularly Proton Experimental and GE-Proton. And the games have all worked. Strange, huh? Well, the issue happened 2 days ago, so I guess we didn't have any time to test games in the beta / sniper runtime.

We reverted back to non-beta on the same day, and I guess that means the older soldier runtime is used on that computer again. Either way, I checked and she hasn't launched any Steam games after Jan 15th, which was 5 days before this broken beta update happened.

 

Even after opting out from the beta, I think the ubuntu12_64/steam-runtime-sniper directory will probably still exist: the stable client doesn't use it, but I think it also doesn't delete it. If it was unpacked correctly, it should be about 700M in total

I can confirm. Sniper still exists when switching back to the stable Steam version, and here's the size of it:

$ du -h -d0 ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
695M	/home/johnny/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper

 

There might be more files missing in her Steam folder though. When I "fixed" the Sniper runtime, she could start Steam Beta. But her "Steam Settings: Account" tab looks like this. I tried the same tab on my own computer with Steam Beta and the content looks correct for me.

It looks like it's using an embedded web view. But she is able to browse to Store pages and Community pages with hers on Beta though. So it's not an app-wide "web view failure".

image

 

She's back on the stable version of Steam now, which doesn't have any visible issues.

If there's any other issues in the future, I'll just backup her compatdata and wipe the .var/com.valvesoftware.Steam folder to recreate everything from scratch. For now, I'll leave it like it is, in case you have any other things you want us to investigate.

I really don't know how this system broke. Nothing makes sense. It might have been due to one of my theories above, but I think we'll never know for sure. So I guess the best Steam can do is a review of the installation script robustness, and an easier runtime recovery option in the crash window.

@smcv
Copy link
Contributor

smcv commented Jan 23, 2024

I can recommend using set -e in Steam's scripts in general, to catch all errors.

I would recommend that too, but the scripts that are relevant to this issue are already doing that, so this presumably can't be the problem :-)

We do know that set -e is working as intended in steam-runtime-sniper.sh, because before this beta went public, there were some problems with set -e being too trigger-happy, and terminating the script on more harmless failures like the zenity UI that was used to show a progress bar (not enough || true in the script). That's why you don't currently get a progress bar during unpacking - a later beta will probably add that back in.

My guess would be that tar somehow crashed while processing the archive once. And that the script somehow interpreted it as "DONE" and renamed the .new to the final folder name...

That's the only way I can see for the observed symptoms to happen - but it really shouldn't have happened, because if tar fails gracefully (like it would if your disk was full), or if it's killed by a signal (like if there's a segfault or if you use kill), the shell script that ran it will see that as a nonzero exit status, and set -e will stop it. I'm continuing to investigate.

I'm also guessing that Steam checks the hash of the .tar.xz before it even begins to unpack anything, which rules out the possibility that the old archive we had was partially downloaded.

The Steam client itself checks the size (but not content) of the .tar.xz, which is enough to detect a partial download or partial unpack. It's actually distributed wrapped in another archive runtime_sniper_ubuntu12.zip.something rather than directly, and that archive is checked against a cryptographic hash (sha256 if I remember correctly) before unpacking, with the "good" hash value checked against a signed manifest. steam-runtime-sniper.sh also checks the tarball against a md5 hash, which is probably unnecessary; and then the compression format also has a checksum that should usually detect any accidental corruption. So I think we can be relatively confident that the tarball is correct.

(Yes, tar-in-zip is an odd way to distribute this, but there are behind-the-scenes reasons. Some of this might change around later in this beta cycle, but at the moment the priority is making it work at all, rather than making it efficient.)

The disk has a few hundred gigabytes of free space, so I am sure it didn't stop due to that, at least.

I did wonder whether to ask you that, but if that had been the problem, then tar should have exited with a nonzero status, which the script should already catch. Thanks for confirming that this wasn't it, though!

That's on both computers. They use a mixture of runtimes for each different game, but particularly Proton Experimental and GE-Proton. And the games have all worked. Strange, huh? Well, the issue happened 2 days ago, so I guess we didn't have any time to test games in the beta / sniper runtime.

At the moment the sniper runtime that is used as a compatibility tool for newer games and Proton versions (CS2, Dota 2, Proton 8+) and the sniper runtime that is used for steamwebhelper are completely separate. They have very similar content - ideally they'd be literally identical, but at the moment the one for steamwebhelper is a bit older - but they're distributed through different routes. The copy that's used for games is in steamapps/common, comes from the same Steampipe CDN as games and Proton, and is written to disk as individual files. The copy that's used for steamwebhelper is in ubuntu12_64 and is downloaded as part of the Steam client and written to disk as a .tar.xz, which then needs to be unpacked.

The problem you had was with the .tar.xz unpacking, which means it only affects the copy in ubuntu12_64 that is used for steamwebhelper, and does not affect the copy in steamapps/common that is used for games. The reason I asked you about Proton games was so that I could rule out some other factors that could in theory have gone wrong, but in fact are working OK for you.

It would be more space-efficient if we could use the same copy of sniper for both purposes, but there are technical problems with downloading from Steampipe before the user interface is available, and steamwebhelper is the user interface, so downloading sniper from Steampipe would have a chicken-and-egg problem. This is something that might change/improve in later betas.

There might be more files missing in her Steam folder though. When I "fixed" the Sniper runtime, she could start Steam Beta. But her "Steam Settings: Account" tab looks like this. I tried the same tab on my own computer with Steam Beta and the content looks correct for me.

This looks like a problem with the actual web content rather than with starting the steamwebhelper, so it's out of scope for this issue (and I am not able to investigate or solve it myself, I only work on the Steam Runtime). If this isn't fixed by a new beta, please report it as a separate issue.

It looks like it's using an embedded web view. But she is able to browse to Store pages and Community pages with hers on Beta though. So it's not an app-wide "web view failure".

Yes, basically all of the Steam UI is web views (hence steamwebhelper). There are only a few exceptions to that, mainly for UI that needs to run very early (like the progress bar you see while a new version is unpacked) or UI that specifically needs to work even if steamwebhelper has crashed (notably the "Steamwebhelper is not responding" dialog).

@smcv
Copy link
Contributor

smcv commented Jan 23, 2024

@kisak-valve, would you mind renaming this issue to reflect what we have diagnosed from @Arcitec and distinguish it from other reasons why steamwebhelper might be broken? Perhaps something like:

Steamwebhelper is not responding: steam-runtime-sniper.tar.xz not fully unpacked

If other commenters find that they have the same root cause as described in #10412 (comment), then they are reporting this issue and are in-scope here. If they find that they are getting the same symptom for a different reason, we should try to take that to a separate issue report.

Thanks!

@kisak-valve kisak-valve changed the title [Beta] SteamWebHelper is not Responding, Steam won't open! Steamwebhelper is not responding: steam-runtime-sniper.tar.xz not fully unpacked Jan 23, 2024
@micb25
Copy link

micb25 commented Jan 23, 2024

@micb25, @Exzou, @asdfjkluiop: Please could you check whether you have an incomplete steam-linux-runtime-sniper/ directory, like @Arcitec did? It should be in ubuntu12_64/steam-runtime-sniper relative to your top-level Steam directory.

@smcv, thanks for all your help. I have uploaded my log files here. The only suspicious thing I can spot is i386-linux-gnu-capsule-capture-libs: warning: libudev.so.0 has an unexpected DT_SONAME, ignoring: libudev.so.1 in the steamwebhelper.log. The steam-runtime-sniper seems to be okay: size is around 697MB and ./run-in-sniper vkcube works just fine. I also installed the flatpak version of steam, both steam and steambeta work out of the box without any issues. Thus, I also included the steamwebhelper.log of the steambeta from flatpak which interestingly also shows the Vulkan error I have mentioned in a previous post. I guess you were absolutely right that this might not be causing the issue. Thanks again for all your work!

@smcv
Copy link
Contributor

smcv commented Jan 23, 2024

@micb25: Your steamwebhelper crash does not look related to the one initially reported here, so please report it as a separate issue.

Unfortunately, I can't find anything obvious in your logs to distinguish it from other root causes for the same symptom. If you watch the contents of steamwebhelper.log with tail -F you might be able to get more details out of it.

A Steam developer might be able to get something interesting from the crash dump that Steam uploaded for you, CrashID=bp-df246868-056c-4dfe-9380-e38782240123, but I don't have access to crash dumps.

I agree that the Vulkan/EGL/ANGLE error seems to be scary-looking but harmless. I get that too, on an Nvidia test system (Ubuntu 22.04, if that matters) where the steamwebhelper is working correctly.

[edited to add]

The only suspicious thing I can spot is i386-linux-gnu-capsule-capture-libs: warning: libudev.so.0 has an unexpected DT_SONAME, ignoring: libudev.so.1

That indicates an incorrect system setup (it is wrong for libudev.so.0 to be a symlink to libudev.so.1), but the container runtime framework is working around it, so it shouldn't cause any harm.

The steam-runtime-sniper seems to be okay: size is around 697MB

That sounds complete, so, not the original failure mode seen here.

./run-in-sniper vkcube works just fine

This is also a useful diagnostic step that confirms that steam-runtime-sniper is reasonably complete and non-broken.

@Arcitec
Copy link
Author

Arcitec commented Jan 24, 2024

My guess would be that tar somehow crashed while processing the archive once. And that the script somehow interpreted it as "DONE" and renamed the .new to the final folder name...

That's the only way I can see for the observed symptoms to happen - but it really shouldn't have happened, because if tar fails gracefully (like it would if your disk was full), or if it's killed by a signal (like if there's a segfault or if you use kill), the shell script that ran it will see that as a nonzero exit status, and set -e will stop it. I'm continuing to investigate.

I'm also guessing that Steam checks the hash of the .tar.xz before it even begins to unpack anything, which rules out the possibility that the old archive we had was partially downloaded.

The Steam client itself checks the size (but not content) of the .tar.xz, which is enough to detect a partial download or partial unpack. It's actually distributed wrapped in another archive runtime_sniper_ubuntu12.zip.something rather than directly, and that archive is checked against a cryptographic hash (sha256 if I remember correctly) before unpacking, with the "good" hash value checked against a signed manifest. steam-runtime-sniper.sh also checks the tarball against a md5 hash, which is probably unnecessary; and then the compression format also has a checksum that should usually detect any accidental corruption. So I think we can be relatively confident that the tarball is correct.

Thanks for the overview. I am completely stumped how this could have happened then. Since the script already checks the checksum of the downloaded archive many times, before and after extraction, and set -e is used, and it unpacks to .new before it atomically moves the folder to its destination "only if extraction succeeded", and there was enough disk space.

We can rule out disk space, power outages, sigkill, crashed processes etc, since all of those should have resulted in .new without being renamed to the final "successful" folder name.

There are therefore only three things I can think of:

  1. Either the sniper runtime tar was corrupt on Steam's servers for a while and was distributed with only a few files in the archive for a moment. So our machine unpacked "everything" successfully, but it was only a partially packaged runtime. And after such a partial runtime had been extracted and placed in the destination folder, the startup scripts "think" the runtime is installed and attempts to start the UI itself, which fails due to missing files, so I guess that after such a partial runtime has been installed, Steam wouldn't be able to start far enough to detect and download a newer sniper runtime tar from the CDN, which would explain why the runtime tar didn't re-download and fix itself for us.
  2. Or, something failed during unpacking and then the script still determined "that's fine, it's done, rename .new to the final destination". Could there be any scenario like that? Maybe if Steam starts, crashes, and then the next startup detects ".new" and moves it?
  3. Does the unpacking script delete OLD .new folders if there were old, corrupt leftovers? Before it attempts to unpack the newest archive? Maybe there's some kind of "folder .new already exists, tar skips the extraction" or "Steam startup script sees old .new folder and renames it to the final destination at startup"? But nah, I don't think tar cares if a folder already exists, and I think it would have exited with an error code if it did. And I am guessing you already looked through the unpack script to determine that it's not renaming old, potentially broken .new folders at startup.

All we know for sure now is that deleting the broken Sniper runtime folder triggered a new unpacking (which may have downloaded a newer, fixed tar file from the CDN?).

@asdfjkluiop
Copy link

@smcv sorry for the delayed reply. I don't even have a steam-runtime-sniper folder in ~/.steam/debian-installation/ubuntu12_64. I do have ~/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper.new however it's completely empty.

@smcv
Copy link
Contributor

smcv commented Jan 26, 2024

I am completely stumped how this could have happened then.

Yes, me too :-(

The only theory I have come up with so far is that you might somehow have had more than one steamwebhelper.sh running at the same time? If that somehow happens, then they'll fight (e.g. one can be deleting files from steam-runtime-sniper.new/ at the same time that the other one is renaming it into active use). That isn't meant to be possible, though, because the Steam client shouldn't allow that to happen.

If you want to see whether you can spot something that I've missed, the relevant scripts are ubuntu12_64/steamwebhelper.sh and ubuntu12_64/steam-runtime-sniper.sh.

the sniper runtime tar was corrupt on Steam's servers for a while and was distributed with only a few files in the archive for a moment

In theory it's possible, but I doubt it? At the time of writing, I'm reasonably sure there has only been one version of this distributed to the public so far, which is the initial one that most users are unpacking successfully. The next big update in the beta channel will probably catch it up to the same version that's in the beta branch of SteamLinuxRuntime_sniper.

I guess that after such a partial runtime has been installed, Steam wouldn't be able to start far enough to detect and download a newer sniper runtime tar from the CDN

I've tried truncating the archive, and Steam is able to recover. It can't start its main UI, but it can start enough modules to verify file sizes and re-download.

Or, something failed during unpacking and then the script still determined "that's fine, it's done, rename .new to the final destination". Could there be any scenario like that?

It shouldn't be possible, but perhaps there's a logic error I'm not seeing?

Maybe if Steam starts, crashes, and then the next startup detects ".new" and moves it?

No, for simplicity steam-runtime-sniper.sh never reuses the .new directory: it just deletes it and starts again.

Does the unpacking script delete OLD .new folders if there were old, corrupt leftovers?

Yes. The point of no return is when it renames steam-runtime-sniper.new/steam-runtime-sniper/ to steam-runtime-sniper/. If it crashes out at any point before that, then the next startup will pessimistically assume that the .new/ unpack directory is corrupt or incomplete, and will delete it and start again.

All we know for sure now is that deleting the broken Sniper runtime folder triggered a new unpacking (which may have downloaded a newer, fixed tar file from the CDN?).

Without logs/output, we can't tell whether it downloaded anything from the CDN or not, but if your tar file was intact, then deleting the broken unpack directory should have just triggered a new unpack, without needing to re-download anything.

@smcv
Copy link
Contributor

smcv commented Jan 26, 2024

@asdfjkluiop:

I don't even have a steam-runtime-sniper folder in ~/.steam/debian-installation/ubuntu12_64. I do have ~/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper.new however it's completely empty.

OK, this is weird. The next time you start Steam, it should automatically recover from this by deleting steam-runtime-sniper.new and re-unpacking the archive.

I don't know what's happening on your system (please look for logs, especially logs/webhelper.txt and logs/steamwebhelper.log) but whatever it is, I don't think it's quite the same thing that @Arcitec was seeing.

@MastaG
Copy link

MastaG commented Jan 31, 2024

For me the problem is not related to the sniper runtime.
It's present for me.
The steamwebhelper.log file shows:

steamwebhelper.sh[3866]: === Wed Jan 31 10:10:40 CET 2024 ===
steamwebhelper.sh[3866]: Starting steamwebhelper under bootstrap sniper steam runtime at /userdata/saves/flatpak/data/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
x86_64-linux-gnu-capsule-capture-libs: warning: Dependencies of libnvidia-pkcs11.so.545.29.06 not found, ignoring: Missing dependencies: Could not find "libcrypto.so.1.1" in LD_LIBRARY_PATH "", ld.so.cache, DT_RUNPATH or fallback /lib:/usr/lib
steam-runtime-launch-client[3888]: E: Can't find session bus: Error spawning command line `dbus-launch --autolaunch=6b3a9ea93eca9786eec2fc8a65b9ce24 --binary-syntax --close-stderr': Failed to execute child process "dbus-launch" (No such file or directory)
steamwebhelper.sh[3866]: Starting steamwebhelper with sniper steam runtime at /userdata/saves/flatpak/data/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
x86_64-linux-gnu-capsule-capture-libs: warning: Dependencies of libnvidia-pkcs11.so.545.29.06 not found, ignoring: Missing dependencies: Could not find "libcrypto.so.1.1" in LD_LIBRARY_PATH "/userdata/saves/flatpak/data/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32:/userdata/saves/flatpak/data/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/panorama:/app/lib/i386-linux-gnu/GL/default/lib:/app/lib/i386-linux-gnu/GL/nvidia-545-29-06/lib:/app/lib32:/app/lib/i386-linux-gnu:/lib64:/app/lib:/usr/lib/x86_64-linux-gnu/GL/default/lib:/usr/lib/x86_64-linux-gnu/GL/nvidia-545-29-06/lib:/usr/lib/x86_64-linux-gnu/openh264/extra:/usr/lib/x86_64-linux-gnu", ld.so.cache, DT_RUNPATH or fallback /lib:/usr/lib
steam-runtime-launch-client[3946]: E: Can't find session bus: Error spawning command line `dbus-launch --autolaunch=6b3a9ea93eca9786eec2fc8a65b9ce24 --binary-syntax --close-stderr': Failed to execute child process "dbus-launch" (No such file or directory)

@smcv
Copy link
Contributor

smcv commented Jan 31, 2024

@MastaG: You have a similar symptom, but for an entirely different reason. Please open a separate issue, and make its title as specific to your situation as possible, for example perhaps "steamwebhelper beta not starting under Flatpak: Failed to execute child process "dbus-launch".

I have confirmed that steamwebhelper does normally work correctly under Flatpak, so there must be something specific to your system that is making it fail in this way. It looks as though Steam is not receiving the DBUS_SESSION_BUS_ADDRESS environment variable.

Please try launching Steam as:

STEAM_LINUX_RUNTIME_VERBOSE=1 flatpak run com.valvesoftware.Steam

This will put a lot more information in steamwebhelper.log which will help to figure out what is happening on your system.

[edited to add]

Since the recent beta, running Steam under Flatpak requires a D-Bus session bus with the flatpak-portal service available. This is normally true on systems that can run Flatpak apps (and on desktop Linux in general), but I see from your linked issue report that you are using something called Batocera Linux, and I don't know whether that operating system is missing this functionality.

When running Steam un-sandboxed, a D-Bus session bus is strongly recommended but not strictly required: it's only when it has been installed as a Flatpak app that the D-Bus session bus is a functional requirement.

@asdfjkluiop
Copy link

@smcv well I don't know what happened. I switched back to beta to gather the logs and the beta now works just fine. Was there an update? I had switched back and forth between stable and beta several times while debugging this and it always broke the same way, few days later and it's fixed now

@smcv
Copy link
Contributor

smcv commented Feb 1, 2024

@asdfjkluiop:

I switched back to beta to gather the logs and the beta now works just fine. Was there an update?

There has been at least one update to the container runtime (the most visible part of that is that there's now a progress bar shown while it's being unpacked), and there have probably also been updates to steamwebhelper itself. https://steamcommunity.com/groups/SteamClientBeta/announcements often doesn't have all the details of internal changes like these.

It seems that this works most of the time for most people, but not always. With the information available here, I can't tell what happened to you more precisely - it might have been the same root cause as the original issue report here, or it might have been more like #10431, or something different.

If the Steam beta continues to work for you, then it will not be possible to diagnose what happened, so we will have to dismiss this as "you were unlucky". If it fails again in a similar way in future, please try to collect logs, then report the issue with full details, and we can try to figure out what is going on from there.

@CaptainMorgan12
Copy link

CaptainMorgan12 commented Feb 7, 2024

deleting all the steam /.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-heavy related files and folders did the trick for me Flatpak install.

When running it from the terminal you can see what it creates and then delete the runtime files.

@smcv
Copy link
Contributor

smcv commented Feb 7, 2024

@CaptainMorgan12: Are you sure you mean steam-runtime-heavy and not steam-runtime-sniper?

This issue report is about the beta client, which has stopped using the steam-runtime-heavy LD_LIBRARY_PATH runtime for the steamwebhelper, and replaced it with the steam-runtime-sniper container. So I would be quite surprised if cleaning up steam-runtime-heavy files helps at all.

But, if you're using the stable (non-beta) client, perhaps there is some older bug where steam-runtime-heavy can somehow end up only halfway unpacked, similar to the situation seen in the beta for steam-runtime-sniper? If that's the case, then it's reasonable to expect that sniper would still have the analogous issue.

We don't understand how this "half unpacked" situation can happen, so any logs you can provide of the failing scenario from ~/.steam/root/logs or the systemd Journal would be very useful - the main thing we need here is enough information to be able to identify what actually happened! Probably there is something we are assuming to be true that can't actually be guaranteed, but so far I've been unable to identify it.

@jhaand

This comment was marked as off-topic.

@smcv
Copy link
Contributor

smcv commented Feb 29, 2024

There are several situations that can cause the steamwebhelper not to work: some of them are related to the sniper runtime, and some are not. For this specific issue report, the only one that is in-scope is if there are signs of steam-runtime-sniper.tar.xz not being fully unpacked. For any other "Steamwebhelper is not responding" scenarios, please take them to a separate issue report.

For anyone else who is experiencing the "Steamwebhelper is not responding" dialog, please check the Steam logs for more information (Flatpak users: ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs, Snap users: ~/snap/steam/common/.local/share/Steam/logs, everyone else: ~/.steam/root/logs). steamwebhelper.log is likely to be the most important log file.

If your symptoms and logs match symptoms and logs seen by other users, you can subscribe to an existing bug report without adding comments by using the "Notifications" panel. You can help us to solve bugs more quickly by only replying if you have new information.

@essence-of-orange
Copy link

essence-of-orange commented Mar 15, 2024

Replying to #10412 (comment)

Just wanted to say thanks. I've been experiencing this issue and this fixed it. There were two runtimes in that folder (heavy and sniper). I deleted them both, steam re-unpacked sniper and it worked again.

@dAn84imola

This comment was marked as off-topic.

@TomasuBE
Copy link

TomasuBE commented Apr 15, 2024

Contents of the directory on the broken Fedora 38 installation:

Yes, this is clearly incomplete. During a previous run of Steam, the steamwebhelper.sh and steam-runtime-sniper.sh scripts unpacked steam-runtime-sniper.tar.xz into steam-runtime-sniper/, somehow failed the unpack half way through, but marked it as complete anyway.

thanks, man although in my case, only deleting resulted in the same problem; the pop up with progress bar extracting the txz exiting too soon. i manually extracted it to steam-runtime-sniper and its working now.
i run on gentoo and had this with both flatpak and native (installed flatpak after native failing lol :p)

@christoph2005
Copy link

christoph2005 commented May 18, 2024

I was just having the same problem, but I'm not using the beta client, and I'm on linux Ubuntu 22.04. I'm also only using the Valve-recommended steam_latest.deb file and apt to install it. I'm not using flatpak or snap.

What appears to have caused it for me was that I had just updated my mesa video drivers, from sudo add-apt-repository ppa:oibaf/graphics-drivers and during the reboot process the system hanged so I needed to force power down.

When I rebooted steam would show itself in taskbar and report that everything was working in the output in the bash shell, but the steamwebhelper application kept freezing with that popup message.

I purged all the mesa drivers and tried steam, and the error continued.
=== Revert to original drivers ===
To revert to standard Ubuntu drivers type the following in a prompt shell:
$ sudo apt-get install ppa-purge
$ sudo ppa-purge ppa:oibaf/graphics-drivers

I reinstalled steam and the error continued

I removed steam with apt and then manually searched my drive for anything containing the word "steam" but that seemed related to "code files" such as JSON or Python or Lua, etc, and I deleted everything except several image files (which I'm not sure if they were associated with steam) and deleted all the folders, and everything in the folders (except the common folder, which I copied somewhere else). There are in fact a lot of files left behind after an uninstall...

I used APT to reinstall the packages that steam originally installed as dependencies or otherwise used apt autoremove to remove them, and then I reinstalled steam again. This time it seemed to do a more clean "reinstall" as it told me it had several dependencies that it needed to install, again, (just like the first time). This was a good sign to me.

I tried deleting the steam-runtime-sniper folder, as you suggested (which is probably unnecessary as I deleted everything steam just before)

After all that, the problem persisted, but I didn't get the "steamwebhelper has stopped responding" error anymore. Steam just didn't show in the taskbar and wasn't visible, but reported itself as already running. I tried several times to kill and reopen it, but it kept-on this way; the error kept happening the same way...

Finally I figured I'd just try putting the "sudo add-apt-repository ppa:oibaf/graphics-drivers" mesa drivers back on Directions here, only I used vulkan-tools instead of vulkan-utils, I guess the package name changed since the directions were written..., and installed vulkan and VDPAU VAAPI, etc, all the mesa stuff. Did the update/upgrade step with apt, and after doing that, lo-and-behold the steam UI would show up after-all.

I still haven't tested if the games are working as I'm still in the process of copying the common folder... I'm fairly confident this portion will go smoothly now that the primary steam application appears to be working again and I was able to log back in with it.
I'll try to update this post after I'm able to test the game. Perhaps I should have "moved" the common folder instead of "copying" it...

[Update]
Ok... So the game (GTAV) took forever to validate, but it did run, but then my whole system completely locked up/froze (perhaps I forgot to reboot after updating the video drivers again? I suspect I may have had my ram overclocked a bit too high/unstable so I took that down a notch also)
Anyways, when I rebooted the Ubuntu-desktop had failed and wouldn't load the login manager.
So to fix that I used
sudo apt reinstall gnome-shell
sudo apt reinstall ubuntu-desktop
I actually used both, in that order, but the 2nd one is probably all I really needed to use. And then I got my desktop manager back...
After that I tried again to play the game, this time I deleted the shader cache. Then I needed to reapply all the graphics settings. And the game seems to be working just fine.

So I hope that helps you and I hope you don't go through the same trouble I did...

[Update 2]
I'm also not sure why, but the game is performing at a higher/more consistent framerate.
Perhaps it's always advised to reinstall ubuntu-desktop after switching graphics drivers, on linux. I'm really not sure but it's definitely a plus.

@smcv
Copy link
Contributor

smcv commented May 20, 2024

@christoph2005:

I was just having the same problem

It seems that you had a similar symptom, but for different reasons involving swapping between graphics drivers. That is not this issue.

There are several situations that can cause the steamwebhelper not to work: some of them are related to the sniper runtime, and some are not. For this specific issue report, the only one that is in-scope is if there are signs of steam-runtime-sniper.tar.xz not being fully unpacked. For any other "Steamwebhelper is not responding" scenarios, please take them to a separate issue report.

@jlarata
Copy link

jlarata commented Sep 16, 2024

The good news is that deleting the ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper directory should work as a workaround for this. The next time you run the Steam beta, it will be re-unpacked, hopefully with more success this time.

just wanted to say this comment was helpful for me. i had a shutdown while updating steam so the sniper-whatever was incomplete.

only difference, my sniper steam directory by default was /home/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper

thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests