protonscr

Steam with symlinks crashing repeatedly in `steamwebhelper` on startup

steamclosed Distro Family: ArchWeb Component
ValveSoftware/steam-for-linux#10547 · opened 2024-02-28 by 62832 · updated 2024-04-01 · 27 comments · github
662832 2024-02-28 github
  • Steam client version: Whatever the latest stable build is at the time of writing (28/02/2024)
  • Distribution: Artix Linux
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD (RX 6650 XT)

Similarly to issues #10431 and #10538 and immediately following installation of the new Steam update today, Steam consistently refuses to start up due to steamwebhelper crashing every time. Reinstalling Steam as a whole under its standard location does nothing to fix this either.

steamwebhelper.sh[11616]: === Wed 28 Feb 19:51:08 GMT 2024 ===
steamwebhelper.sh[11616]: Starting steamwebhelper under bootstrap sniper steam runtime at /extra/_/Games/Steam/ubuntu12_64/steam-runtime-sniper
exec ./steamwebhelper --no-sandbox -lang=en_US -cachedir=/extra/_/Games/Steam/config/htmlcache -steampid=6966 -buildid=1708985249 -steamid=76561198101579138 -logdir=/extra/_/Games/Steam/logs -uimode=7 -startcount=22 -steamuniverse=Public -realm=Global -clientui=/extra/_/Games/Steam/clientui -steampath=/extra/_/Games/Steam/ubuntu12_32/steam -launcher=0 -no-restart-on-ui-mode-change --enable-smooth-scrolling --password-store=basic --log-file=/extra/_/Games/Steam/logs/cef_log.txt --disable-quick-menu --disable-features=DcheckIsFatal
[0228/195109.116349:ERROR:context.cc(100)] The browser_subprocess_path directory (./steamwebhelper) is not an absolute path. Defaulting to empty.
[0228/195109.132847:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 0
[0228/195109.132886:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1708962035
[0228/195109.132890:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0228/195109.132894:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0228/195109.132897:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux
[0228/195109.133160:INFO:crash_reporting.cc(239)] Crash reporting enabled for process: browser
[0228/195109.134049:WARNING:task_impl.cc(32)] No task runner for threadId 0
[0228/195109.134856:WARNING:task_impl.cc(32)] No task runner for threadId 0
[0228/195109.150949:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 76561198101579138
[0228/195109.150950:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 76561198101579138
[0228/195109.151008:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1708985249
[0228/195109.151016:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1708985249
[0228/195109.151017:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0228/195109.151020:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0228/195109.151021:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0228/195109.151023:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0228/195109.151024:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux
[0228/195109.151026:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux
Gtk-Message: 19:51:12.732: Failed to load module "canberra-gtk-module"
TTTimo 2024-02-28 github

Hello @62832 - your logs report a Failed creating offscreen shared JS context error, try running steam with -cef-disable-gpu?

662832 2024-02-28 github

try running steam with -cef-disable-gpu?

Assuming I was supposed to invoke $ steam -cef-disable-gpu in a terminal, that still did nothing. New logs attached below for this attempt.
steam-logs.tar.gz

TTTimo 2024-02-28 github

If your system is setup to collect crashes (coredumpctl) you could check for steamwebhelper crashes and provide the coredumpctl debug output for some of those?

662832 2024-02-28 github

Since I use a non-systemd based distribution, I do not have coredumpctl available. However, I can provide the most recent minidump that Steam / steamwebhelper seems to create under /tmp/dumps/, if that's of any use.
dump.tar.gz

Ssballe73 2024-02-29 github

Got the same issue in ubuntu 22. from several issues discussions I tried -cef-disable-gpu, -system-composer but nothing worked.

steam.sh[107040]: Running Steam on ubuntu 22.04 64-bit
steam.sh[107040]: STEAM_RUNTIME is enabled automatically
setup.sh[107110]: Steam runtime environment up-to-date!
steam.sh[107040]: Steam client's requirements are satisfied
tid(107172) burning pthread_key_t == 0 so we never use it
[2024-02-29 06:36:08] Startup - updater built Feb 29 2024 00:39:10
[2024-02-29 06:36:08] Startup - Steam Client launched with: '/home/sballe/.steam/debian-installation/ubuntu12_32/steam' '-nominidumps' '-nobreakpad'
02/29 06:36:08 Init: Installing breakpad exception handler for appid(steam)/version(1709168962)/tid(107172)
[2024-02-29 06:36:08] Loading cached metrics from disk (/home/sballe/.steam/debian-installation/package/steam_client_metrics.bin)
[2024-02-29 06:36:08] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2024-02-29 06:36:08] Using the following download hosts for Public, Realm steamglobal
[2024-02-29 06:36:08] 1. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-02-29 06:36:08] Verifying installation...
[2024-02-29 06:36:08] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/sballe/.steam/debian-installation/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf08879c0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf08861f0
steamwebhelper.sh[107197]: === jeu. 29 févr. 2024 06:36:08 CET ===
steamwebhelper.sh[107197]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/sballe/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 107426
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
steamwebhelper.sh[107601]: === jeu. 29 févr. 2024 06:36:19 CET ===
steamwebhelper.sh[107601]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/sballe/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[107900]: === jeu. 29 févr. 2024 06:36:29 CET ===
steamwebhelper.sh[107900]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/sballe/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
src/steamUI/steamuisharedjscontroller.cpp (546) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (546) : Failed creating offscreen shared JS context
02/29 06:36:30 Init: Installing breakpad exception handler for appid(steam)/version(1709168962)/tid(107172)
assert_20240229063630_28.dmp[108061]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240229063630_28.dmp
assert_20240229063630_28.dmp[108061]: Finished uploading minidump (out-of-process): success = yes
assert_20240229063630_28.dmp[108061]: response: CrashID=bp-afad04ff-aa0e-45ec-89c4-44a9a2240228
assert_20240229063630_28.dmp[108061]: file ''/tmp/dumps/assert_20240229063630_28.dmp'', upload yes: ''CrashID=bp-afad04ff-aa0e-45ec-89c4-44a9a2240228''
[2024-02-29 06:36:40] Shutdown

and from steamwebhelper log :

steamwebhelper.sh[107900]: === jeu. 29 févr. 2024 06:36:29 CET ===
steamwebhelper.sh[107900]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/sballe/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
exec ./steamwebhelper --no-sandbox -lang=en_US -cachedir=/home/sballe/.steam/debian-installation/config/htmlcache -steampid=107172 -buildid=1709168962 -steamid=0 -logdir=/home/sballe/.steam/debian-installation/logs -uimode=7 -startcount=2 -steamuniverse=Public -realm=Global -clientui=/home/sballe/.steam/debian-installation/clientui -steampath=/home/sballe/.steam/debian-installation/ubuntu12_32/steam -launcher=0 -use_safe_shutdown_workaround -use_xcomposite_workaround -no-restart-on-ui-mode-change --enable-smooth-scrolling --disable-gpu-compositing --disable-gpu --password-store=basic --log-file=/home/sballe/.steam/debian-installation/logs/cef_log.txt --disable-quick-menu --disable-features=DcheckIsFatal
[0229/063629.911964:ERROR:context.cc(100)] The browser_subprocess_path directory (./steamwebhelper) is not an absolute path. Defaulting to empty.
[0229/063629.927962:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 0
[0229/063629.927993:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1709167136
[0229/063629.927996:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0229/063629.927999:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0229/063629.928003:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux
[0229/063629.928497:INFO:crash_reporting.cc(239)] Crash reporting enabled for process: browser
[0229/063629.929327:WARNING:task_impl.cc(32)] No task runner for threadId 0
[0229/063629.930806:WARNING:task_impl.cc(32)] No task runner for threadId 0
[0229/063629.946381:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 0
[0229/063629.946379:WARNING:crash_reporting.cc(278)] Failed to set crash key: UserID with value: 0
[0229/063629.946434:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1709168962
[0229/063629.946438:WARNING:crash_reporting.cc(278)] Failed to set crash key: BuildID with value: 1709168962
[0229/063629.946439:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0229/063629.946441:WARNING:crash_reporting.cc(278)] Failed to set crash key: SteamUniverse with value: Public
[0229/063629.946442:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0229/063629.946444:WARNING:crash_reporting.cc(278)] Failed to set crash key: Vendor with value: Valve
[0229/063629.946445:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux
[0229/063629.946446:WARNING:crash_reporting.cc(278)] Failed to set crash key: Platform with value: Linux

Jjhaand 2024-02-29 github

I have somewhat the same problem with Debian Testing using a Radeon RX 5700. Should I open a new issue?

Ssballe73 2024-02-29 github

tried to launch manually the webhelper :
LD_LIBRARY_PATH=ubuntu12_64 /home/sballe/.steam/debian-installation/ubuntu12_64/steamwebhelper --type=zygote --no-sandbox --enable-logging --v=1 --user-agent-product=Valve Steam Client --lang=en_US.UTF-8 --log-file=/home/sballe/.steam/debian-installation/logs/cef_log.txt --crashpad-handler-pid=225542 --buildid=1709168962 --steamid=0

while steam was trying to launch iun another shell. Got this error :
[0100/000000.182219:ERROR:zygote_linux.cc(242)] Error reading message from browser: Opération de type socket sur un type non socket (88)

Could this be linked to the captive chromium ?

TTTimo 2024-02-29 github

@62832 I had not initially noticed this, and unfortunately you didn't mention it. It looks like there are symlinks in your setup? Could you detail what you are doing with /extra/_/Games and your home install? This is a likely cause of your problems.

TTK009 2024-02-29 github

@TTimo I have similar problem and I have symlinked my ~/.local to another disk, because I ran out of space on my home. Are you saying this kind of symlink is not allowed anymore or is there some fix?

662832 2024-02-29 github

I had not initially noticed this, and unfortunately you didn't mention it. It looks like there are symlinks in your setup? Could you detail what you are doing with /extra/_/Games and your home install? This is a likely cause of your problems.

@TTimo My home partition is on an HDD, whereas I keep Steam installed on a separate NVMe SSD mounted under /extra. I also keep my standard XDG base dirs as symlinks to an extra/_/XDG directory. Thing is, this setup has not caused a single issue up until the new Steam update dropped.

TTTimo 2024-02-29 github

We typically fix issues caused by symbolic link setups when we come across them, but that'll always be prone to breaking. We do not recommend this.

Oondradoksy 2024-02-29 github

@62832 I had not initially noticed this, and unfortunately you didn't mention it. It looks like there are symlinks in your setup? Could you detail what you are doing with /extra/_/Games and your home install? This is a likely cause of your problems.

@TTimo I have the same issue without any symlinks.

Ssiborg 2024-02-29 github

I am having the same issue with or without -cer-disable-gpu - no symlinks in my case - I have 3 game libraries on separate drives though (no symlinks involved, just full paths). Crashing for me every time since the last non-beta update

Jjhaand 2024-03-01 github

My issue also had problems with symlinks. Fixed it by removing them since it was only the ~/.config directory. See issue: https://github.com/ValveSoftware/steam-for-linux/issues/10552

Ssmcv 2024-03-01 github

(Cross-posted from #10552)

As a general piece of advice for anyone experiencing an issue similar to this one, symlinks are not ideal as a mechanism for offloading sections of the filesystem to a different disk, because they are application-visible, and in particular they interfere with container technologies. Mount points and bind-mounts will be less likely to cause strange application behaviour.

The reason this became an issue recently is that previously the Steam user interface used an LD_LIBRARY_PATH-based environment to provide its dependencies (which mostly worked, but wasn't completely reliable, and meant that the dependencies available were stuck in 2015). Since this week (or earlier for beta users), it uses the same container technology as Proton, CS2 and Dota 2 to ensure that it can rely on relatively modern dependency versions, even on older host operating systems like Ubuntu oldoldLTS.

Symbolic links are a particularly frequent problem for container frameworks like the Steam Linux Runtime, because merely bind-mounting $HOME into the container is not enough to get the target of the symlink into the container as well: we have to go looking for the target of the symlink. It is not feasible to search through the entire home directory for symlinks and share the target of every symlink, because that would delay Steam startup by a lot (and that approach would also involve searching through parts of the home directory that are nothing to do with Steam, which seems bad for user privacy).

If the container framework knows about specific locations that need to exist - for instance $XDG_CONFIG_HOME/cef_user_data, which might be the one causing this issue - then those can be handled by having a list of special cases. Again, the longer that list is, the slower it will be to start Steam, so we should try to keep this in proportion. At the moment our list includes ~/.steam and the Steam installation directory (typically ~/.local/share/Steam or ~/.steam/debian-installation), but not $XDG_CONFIG_HOME/cef_user_data. Adding a similar special case for $XDG_CONFIG_HOME/cef_user_data and some other important directories is in progress, tracked as steamrt/tasks#411 internally.

There are some target directories that should usually work even though we don't have a special case for the symlink, because we do have a special case for the target: anything below /home, /opt, /media, /mnt, /run/media or /srv. (Full list: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/shared-paths.md?ref_type=heads#similar-to-the-home-directory)

There are also some target directories that we can't ever use for technical reasons, even if the symlink that points to them is on our list. Anything below /usr is the most notable example. (Full list: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/shared-paths.md?ref_type=heads)

Anything that is not on either of those lists, for example non-standardized mount points like /extra, /games or /ssd, will not work without specific action being taken (either by users or by the Steam Linux Runtime framework).

Ssmcv 2024-03-01 github

@ondradoksy:

I have the same issue without any symlinks

There are several situations that can cause the steamwebhelper not to work. For this particular issue, the only one that is in-scope is if there are symlinks in locations that are important to Steam (some of which are not immediately obvious, like ~/.config). For any other "Steamwebhelper is not responding" scenarios, please take them to a separate issue report.

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.

Ssmcv 2024-03-01 github

I am having the same issue with or without -cer-disable-gpu - no symlinks in my case

According to #10552, this turned out not to be true: the root cause seems to have been ~/.config being a symlink to somewhere else.

Ssballe73 2024-03-01 github

it worked, it was the symlink on .config that I changed now for a mount --bind.
but nothing in the logs was aiming to it...

662832 2024-03-01 github

Can confirm. I've swapped out the symlinks I had for ~/.cache, ~/.config and ~/.local in favour of bind mounts from the same respective extra/_/XDG/... locations and Steam now works again. Thanks for the heads-up, @smcv!

Ddavispuh 2024-03-01 github

Okay so turns out my crash was same reason due to symlinked ~/.config to /fasthome/*/.config

running STEAM_COMPAT_MOUNTS=/fasthome steam makes Steam work fine.

I have $HOME split between /home and /fasthome but seems only ~/.config causes crash. Anyway it's still bug because log file doesn't indicate anything about Steam trying to look for /fasthome which it should say as then it would make it more clear whats wrong.

^ This is reposted since I commented in wrong issue.

TTK009 2024-03-01 github

Changing only ~/.config from symbolic link to bind mount also seems to be enough to get it working.

Ssmcv 2024-03-01 github

We typically fix issues caused by symbolic link setups when we come across them

For ~/.config as used by the steamwebhelper, I think I can see how to address this. (Note for Steam Runtime developers: This is tracked as steamrt/tasks#411 internally.)

but that'll always be prone to breaking. We do not recommend this.

This will still be true. Bind-mounts are always going to be more reliable at a container boundary than symlinks.

log file doesn't indicate anything about Steam trying to look for /fasthome

The container runtime framework cannot solve this part, so that would be a request for steamwebhelper or CEF: "should log something useful if it tries and fails to dereference a dangling symlink at ~/.config or ~/.config/cef_user_data". Unfortunately, the code that uses ~/.config/cef_user_data is probably buried somewhere inside CEF.

SStarterX4 2024-03-02 github

In my case, having just Steam's dirs symlinked works fine.

[starterx4@doadgrz ~]$ pwd; file {.steam,.local/share/Steam}
/home/starterx4
.steam:             symbolic link to /kesz/Steam
.local/share/Steam: symbolic link to /kesz/Steam/steam
Ssmcv 2024-03-08 github

For ~/.config as used by the steamwebhelper, I think I can see how to address this. (Note for Steam Runtime developers: This is tracked as steamrt/tasks#411 internally.)

This change went out in a Steam release recently (yesterday?) so it should now be fixed. The same change preemptively addresses a list of other locations that could conceivably have the same problem, like ~/.local/share.

The original reporter of this issue, @62832, already said that turning their symlinks into bind-mounts avoided this crash for them, so I think we can consider this particular issue report to be solved.

For commenters who are not @62832, if you are still having trouble with Steam crashing during startup, I think we will get the best signal-to-noise ratio (and therefore highest chance that things can be fixed soon) if you can report those issues separately with full details, including any error messages that appear in steamwebhelper.log (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).

662832 2024-03-09 github

Can confirm that this issue has been resolved. I've switched back from bind mounts to symlinks for ~/.config, ~/.local and ~/.cache and Steam now continues to launch again.

Shall this be closed as resolved?

Ssmcv 2024-03-11 github

Shall this be closed as resolved?

Yes please.

DDocMAX 2024-04-01 github

My home dir /home/user is a symlink, is it the same problem like have a symlink on .config?

Launch options

Upstream links