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

Steam with symlinks crashing repeatedly in steamwebhelper on startup #10547

Closed
62832 opened this issue Feb 28, 2024 · 27 comments
Closed

Steam with symlinks crashing repeatedly in steamwebhelper on startup #10547

62832 opened this issue Feb 28, 2024 · 27 comments

Comments

@62832
Copy link

62832 commented Feb 28, 2024

  • 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"
@TTimo
Copy link
Collaborator

TTimo commented Feb 28, 2024

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

@62832
Copy link
Author

62832 commented Feb 28, 2024

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

@TTimo
Copy link
Collaborator

TTimo commented Feb 28, 2024

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?

@62832
Copy link
Author

62832 commented Feb 28, 2024

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

@sballe73
Copy link

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

@jhaand
Copy link

jhaand commented Feb 29, 2024

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

@sballe73
Copy link

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 ?

@TTimo
Copy link
Collaborator

TTimo commented Feb 29, 2024

@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.

@TK009
Copy link

TK009 commented Feb 29, 2024

@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?

@62832
Copy link
Author

62832 commented Feb 29, 2024

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.

@TTimo
Copy link
Collaborator

TTimo commented Feb 29, 2024

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.

@ondradoksy
Copy link

@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.

@TTimo TTimo changed the title Unable to start latest Steam build due to steamwebhelper Steam with symlinks crashing repeatedly in steamwebhelper on startup Feb 29, 2024
@siborg
Copy link

siborg commented Feb 29, 2024

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

@jhaand
Copy link

jhaand commented Mar 1, 2024

My issue also had problems with symlinks. Fixed it by removing them since it was only the ~/.config directory. See issue: #10552

@smcv
Copy link
Contributor

smcv commented Mar 1, 2024

(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).

@smcv
Copy link
Contributor

smcv commented Mar 1, 2024

@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.

@smcv
Copy link
Contributor

smcv commented Mar 1, 2024

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.

@sballe73
Copy link

sballe73 commented Mar 1, 2024

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...

@62832
Copy link
Author

62832 commented Mar 1, 2024

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!

@davispuh
Copy link

davispuh commented Mar 1, 2024

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.

@TK009
Copy link

TK009 commented Mar 1, 2024

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

@smcv
Copy link
Contributor

smcv commented Mar 1, 2024

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.

@StarterX4
Copy link

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

@smcv
Copy link
Contributor

smcv commented Mar 8, 2024

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).

@62832
Copy link
Author

62832 commented Mar 9, 2024

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?

@smcv
Copy link
Contributor

smcv commented Mar 11, 2024

Shall this be closed as resolved?

Yes please.

@DocMAX
Copy link

DocMAX commented Apr 1, 2024

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

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