protonscr

Steamwebhelper not responding when ~/.config is a symlink

steamclosed runtimeWeb Component
ValveSoftware/steam-for-linux#10552 · opened 2024-02-29 by jhaand · updated 2024-09-17 · 19 comments · github
Jjhaand 2024-02-29 github

Since there's no issue yet submitted for Debian systems with the Steamwebhelper problem, here a new issue report.

Your system information

  • Steam client version: 1709168962
  • Distribution (e.g. Ubuntu): Debian Trixie (Testing)
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD

Please describe your issue in as much detail as possible:

When starting up Steam, the client does not startup. I get a dialog with "Steamwebhelper is not responding" with different option to restart Steam. Not one of these options does start Steam.

Steps for reproducing this issue:

  1. run steam -console
  2. Select "Exit Steam" when the dialog about "steamwebhelper is not responding" comes along.

Background information:

Digging deeper see some problems with libcef.so and a core dump.

Console log:

breetai@mainbak:~$ steam -console
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
rm: cannot remove '/home/breetai/.steam/steam': Is a directory
rm: cannot remove '/home/breetai/.steam/bin': Is a directory
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
steam.sh[62449]: Running Steam on debian  64-bit
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
steam.sh[62449]: STEAM_RUNTIME is enabled automatically
setup.sh[62516]: Steam runtime environment up-to-date!
steam.sh[62449]: Steam client's requirements are satisfied
tid(62581) burning pthread_key_t == 0 so we never use it
[2024-02-29 10:03:18] Startup - updater built Feb 26 2024 15:40:54
[2024-02-29 10:03:18] Startup - Steam Client launched with: '/home/breetai/.steam/ubuntu12_32/steam' '-nominidumps' '-nobreakpad' '-console'
02/29 10:03:18 Init: Installing breakpad exception handler for appid(steam)/version(1708985249)/tid(62581)
[2024-02-29 10:03:19] Loading cached metrics from disk (/home/breetai/.steam/package/steam_client_metrics.bin)
[2024-02-29 10:03:19] Using the following download hosts for Public, Realm steamglobal
[2024-02-29 10:03:19] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2024-02-29 10:03:19] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2024-02-29 10:03:19] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-02-29 10:03:19] Verifying installation...
[2024-02-29 10:03:19] Verification complete

Steam logging initialized: directory: /home/breetai/.steam/steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xeaa13780
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xeaa12050
steamwebhelper.sh[62618]: === Thu Feb 29 10:03:19 AM CET 2024 ===
steamwebhelper.sh[62618]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 284 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 62697
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
steamwebhelper.sh[62902]: === Thu Feb 29 10:03:35 AM CET 2024 ===
steamwebhelper.sh[62902]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[63091]: === Thu Feb 29 10:03:45 AM CET 2024 ===
steamwebhelper.sh[63091]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/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 10:03:50 Init: Installing breakpad exception handler for appid(steam)/version(1708985249)/tid(62581)
assert_20240229100350_30.dmp[63280]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240229100350_30.dmp
assert_20240229100350_30.dmp[63280]: Finished uploading minidump (out-of-process): success = yes
assert_20240229100350_30.dmp[63280]: response: CrashID=bp-d660cf7f-71a0-49bb-bfa7-eaaaf2240229
assert_20240229100350_30.dmp[63280]: file ''/tmp/dumps/assert_20240229100350_30.dmp'', upload yes: ''CrashID=bp-d660cf7f-71a0-49bb-bfa7-eaaaf2240229''
[2024-02-29 10:03:57] Shutdown
breetai@mainbak:~$ steam -console
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
rm: cannot remove '/home/breetai/.steam/steam': Is a directory
rm: cannot remove '/home/breetai/.steam/bin': Is a directory
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
steam.sh[75657]: Running Steam on debian  64-bit
/home/breetai/.steam/steam.sh: line 142: VERSION_ID: unbound variable
steam.sh[75657]: STEAM_RUNTIME is enabled automatically
setup.sh[75724]: Steam runtime environment up-to-date!
steam.sh[75657]: Steam client's requirements are satisfied
tid(75789) burning pthread_key_t == 0 so we never use it
[2024-02-29 10:22:59] Startup - updater built Feb 29 2024 00:39:10
[2024-02-29 10:22:59] Startup - Steam Client launched with: '/home/breetai/.steam/ubuntu12_32/steam' '-nominidumps' '-nobreakpad' '-console'
02/29 10:22:59 Init: Installing breakpad exception handler for appid(steam)/version(1709168962)/tid(75789)
[2024-02-29 10:22:59] Loading cached metrics from disk (/home/breetai/.steam/package/steam_client_metrics.bin)
[2024-02-29 10:22:59] Using the following download hosts for Public, Realm steamglobal
[2024-02-29 10:22:59] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2024-02-29 10:22:59] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2024-02-29 10:22:59] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-02-29 10:22:59] Verifying installation...
[2024-02-29 10:22:59] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/breetai/.steam/steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xe8105780
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xe8104050
steamwebhelper.sh[75825]: === Thu Feb 29 10:23:00 AM CET 2024 ===
steamwebhelper.sh[75825]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/ubuntu12_64/steam-runtime-sniper
CAppInfoCacheReadFromDiskThread took 122 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 75983
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
steamwebhelper.sh[76107]: === Thu Feb 29 10:23:10 AM CET 2024 ===
steamwebhelper.sh[76107]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/ubuntu12_64/steam-runtime-sniper
steamwebhelper.sh[76299]: === Thu Feb 29 10:23:20 AM CET 2024 ===
steamwebhelper.sh[76299]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/breetai/.steam/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 10:23:23 Init: Installing breakpad exception handler for appid(steam)/version(1709168962)/tid(75789)
assert_20240229102323_29.dmp[76421]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240229102323_29.dmp
assert_20240229102323_29.dmp[76421]: Finished uploading minidump (out-of-process): success = yes
assert_20240229102323_29.dmp[76421]: response: CrashID=bp-585dc066-ec9f-4891-960e-267c12240229
assert_20240229102323_29.dmp[76421]: file ''/tmp/dumps/assert_20240229102323_29.dmp'', upload yes: ''CrashID=bp-585dc066-ec9f-4891-960e-267c12240229''
[2024-02-29 10:23:31] Shutdown
breetai@mainbak:~$ 

Output from /var/log/syslog:

Feb 29 10:23:23 mainbak systemd[1]: Started [email protected] - Process Core Dump (PID 76445/UID 0).
Feb 29 10:23:23 mainbak systemd[1]: Started [email protected] - Process Core Dump (PID 76446/UID 0).
Feb 29 10:23:23 mainbak systemd[1]: Started [email protected] - Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
Feb 29 10:23:23 mainbak systemd[1]: Started [email protected] - Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
Feb 29 10:23:24 mainbak systemd-coredump[76448]: Process 76443 (steamwebhelper) of user 1000 dumped core.

Module /run/host/usr/lib/x86_64-linux-gnu/libzstd.so.1.5.5 from deb libzstd-1.5.5+dfsg2-2.amd64
Stack trace of thread 76443:
#0  0x00007f4a6492f375 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x832f375)
#1  0x00007f4a6491ff96 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x831ff96)
#2  0x00007f4a62199e68 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99e68)
#3  0x00007f4a6219b072 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9b072)
#4  0x00007f4a6219be40 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9be40)
#5  0x00007f4a62199734 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99734)
#6  0x00007f4a62199821 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99821)
#7  0x00007f4a5eb6b929 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x256b929)
#8  0x00007f4a5eb3c0e7 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x253c0e7)
#9  0x00007f4a5eaac4de n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x24ac4de)
[#10](/issue/ValveSoftware/steam-for-linux/10) 0x000055e1bb0a3afb n/a (/home/breetai/.steam/ubuntu12_64/steamwebhelper + 0x44eafb)
ELF object binary architecture: AMD x86-64

Feb 29 10:23:24 mainbak systemd-coredump[76447]: Process 76444 (steamwebhelper) of user 1000 dumped core.

Module /run/host/usr/lib/x86_64-linux-gnu/libzstd.so.1.5.5 from deb libzstd-1.5.5+dfsg2-2.amd64
Stack trace of thread 76444:
#0  0x00007f8e30b2f375 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x832f375)
#1  0x00007f8e30b1ff96 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x831ff96)
#2  0x00007f8e2e399e68 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99e68)
#3  0x00007f8e2e39b072 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9b072)
#4  0x00007f8e2e39be40 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9be40)
#5  0x00007f8e2e399734 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99734)
#6  0x00007f8e2e399821 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99821)
#7  0x00007f8e2ad6b929 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x256b929)
#8  0x00007f8e2ad3c0e7 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x253c0e7)
#9  0x00007f8e2acac4de n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x24ac4de)
[#10](/issue/ValveSoftware/steam-for-linux/10) 0x00005572a2907afb n/a (/home/breetai/.steam/ubuntu12_64/steamwebhelper + 0x44eafb)
ELF object binary architecture: AMD x86-64

Feb 29 10:23:24 mainbak systemd[1]: [email protected]: Deactivated successfully.
Feb 29 10:23:24 mainbak systemd[1]: [email protected]: Deactivated successfully.
Feb 29 10:23:24 mainbak drkonqi-coredump-processor[76450]: "/home/breetai/.steam/ubuntu12_64/steamwebhelper" 76444 "/var/lib/systemd/coredump/core.steamwebhelper.1000.a99d88e0bef84e398035430b12487501.76444.1709198603000000.zst"
Feb 29 10:23:24 mainbak drkonqi-coredump-processor[76451]: "/home/breetai/.steam/ubuntu12_64/steamwebhelper" 76443 "/var/lib/systemd/coredump/core.steamwebhelper.1000.a99d88e0bef84e398035430b12487501.76443.1709198603000000.zst"
Feb 29 10:23:24 mainbak systemd[1410]: Started [email protected] - Launch DrKonqi for a systemd-coredump crash (PID 76450/UID 0).
Feb 29 10:23:24 mainbak systemd[1410]: Started [email protected] - Launch DrKonqi for a systemd-coredump crash (PID 76451/UID 0).
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76472]: Unable to find file for pid 76444 expected at "kcrash-metadata/76444.ini"
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76472]: QFile::remove: Empty or null file name
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76472]: Nothing handled the dump :O
Feb 29 10:23:24 mainbak systemd[1]: [email protected]: Deactivated successfully.
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76474]: Unable to find file for pid 76443 expected at "kcrash-metadata/76443.ini"
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76474]: QFile::remove: Empty or null file name
Feb 29 10:23:24 mainbak drkonqi-coredump-launcher[76474]: Nothing handled the dump :O
Feb 29 10:23:24 mainbak systemd[1]: [email protected]: Deactivated successfully.
Feb 29 10:23:24 mainbak systemd[1]: Started [email protected] - Process Core Dump (PID 76486/UID 0).
Feb 29 10:23:24 mainbak systemd[1]: Started [email protected] - Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
Feb 29 10:23:24 mainbak systemd-coredump[76487]: Process 76436 (steamwebhelper) of user 1000 dumped core.

Module /run/host/usr/lib/x86_64-linux-gnu/libzstd.so.1.5.5 from deb libzstd-1.5.5+dfsg2-2.amd64
Stack trace of thread 76436:
#0  0x00007fb3e4b2f375 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x832f375)
#1  0x00007fb3e4b1ff96 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x831ff96)
#2  0x00007fb3e0da60c6 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x45a60c6)
#3  0x00007fb3e12b0424 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x4ab0424)
#4  0x00007fb3e0da641a n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x45a641a)
#5  0x00007fb3e0da8ceb n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x45a8ceb)
#6  0x00007fb3ded6c37d n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x256c37d)
#7  0x00007fb3dedf02f9 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x25f02f9)
#8  0x00007fb3e239ad12 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9ad12)
#9  0x00007fb3e239c099 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9c099)
[#10](/issue/ValveSoftware/steam-for-linux/10) 0x00007fb3e239be64 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b9be64)
[#11](/issue/ValveSoftware/steam-for-linux/11) 0x00007fb3e2399630 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x5b99630)
[#12](/issue/ValveSoftware/steam-for-linux/12) 0x00007fb3ded6b1f1 n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x256b1f1)
[#13](/issue/ValveSoftware/steam-for-linux/13) 0x00007fb3ded6af4f n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x256af4f)
[#14](/issue/ValveSoftware/steam-for-linux/14) 0x00007fb3ded3c4ec n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x253c4ec)
[#15](/issue/ValveSoftware/steam-for-linux/15) 0x00007fb3ded3c21a n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x253c21a)
[#16](/issue/ValveSoftware/steam-for-linux/16) 0x00007fb3decac5ef n/a (/home/breetai/.steam/ubuntu12_64/libcef.so + 0x24ac5ef)
[#17](/issue/ValveSoftware/steam-for-linux/17) 0x000055c9c02d8be2 n/a (/home/breetai/.steam/ubuntu12_64/steamwebhelper + 0x44ebe2)
ELF object binary architecture: AMD x86-64
Jjhaand 2024-02-29 github

Submitted a downstream bug for Debian here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065066

TTTimo 2024-02-29 github

Thank you. High quality bug report! It's unlikely to be an issue with Debian.

TTTimo 2024-02-29 github

Long shot, but can you make sure you have a ~/.config/cef_user_data folder that exists and is accessible/writable by the user running steam? E.g. /home/breetai/.config/cef_user_data.

The location of that folder may be affected by your XDG_ environment variables too (XDG_CONFIG_HOME).

Jjhaand 2024-03-01 github

I have the directory ~/.config/cef_user_data and it's writable by the user.

I saw there were some symlink problems elsewhere. So maybe worth a try.

The fix was something else. I had the ~/.config/ directory as a symlink to my SSD. After removing the symlink and moving .config to the physical $HOME.

Steam starts up now on my desktop.

Thank you for giving me the correct pointers.

However, Steam did not start on my laptop running the same OS using an Intel UHD 620 GPU. Which doesn't have symlinks. After checking it seemed that the archive for Runtime Sniper wasn't extracted properly. (as seen in issue https://github.com/ValveSoftware/steam-for-linux/issues/10412) Removed the Sniper runtime directory and restarted Steam. Steam did start up on my laptop now.

I think we can close this issue now.

Ssiborg 2024-03-01 github

Ok, I also have .config and also .cache symlinked to ssd. Will try your approach and move .config to my $HOME directly

Ssmcv 2024-03-01 github

@TTimo or @kisak-valve, perhaps you could retitle this to something like "Steamwebhelper not responding when ~/.config is a symlink" to catch the main problem here? The fact that it's Debian is not the key thing here.

I had the ~/.config/ directory as a symlink to my SSD

@jhaand, where was the mount point for the SSD?

I also have .config and also .cache symlinked to ssd

@siborg, where is the mount point for your SSD?

~/.config/cef_user_data

This looks like a CEF default. @TTimo, would it be feasible to teach future releases of steamwebhelper to use a directory inside the Steam installation instead of this default? I think that would have avoided this.

Ssmcv 2024-03-01 github

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.

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 we know about specific locations that need to exist - for instance $XDG_CONFIG_HOME/cef_user_data - then those could be handled by having an increasingly long 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.

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 /ssd or /games, will not work without special action being taken, but can be made to work with some extra effort.

Ssiborg 2024-03-01 github

ok. so after moving .config from separate ssd to $home location, steam starts and works ok thanks!
I still have .cache symlinked to separate SSD but this does not seem to have an effect on Steam.

Ssiborg 2024-03-01 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/10552#issuecomment-1972886598

I assume if I have mounted .config or .local rather than symlinking it - it should have not caused an issue?

Ssmcv 2024-03-01 github

I assume if I have mounted .config or .local rather than symlinking it - it should have not caused an issue?

That's correct. The container runtime framework uses the equivalent of mount --rbind, so it will automatically pick up any mount points below the directory we're sharing with the container.

Ssiborg 2024-03-01 github

Thanks Simon. Will keep it in mind going forward!

Ssmcv 2024-03-01 github

That was an absolute path to /home_fast

Right, that's a non-FHS path that won't work automatically.

The idea is to move /homes to the SSD and put the steam folder on the HDD. But I have no idea yet on how to do that cleanly without too much trouble.

What I'd recommend to minimize problems is keeping the whole of /home on SSD, including the entire Steam installation (which is relatively small when compared with modern games), but then adding a new Steam library folder on the HDD, and installing larger games into that. Those instructions talk about Windows, but the UI is basically the same on Linux. You can even make the library on HDD the default, if you want all new games to install there. On my test machines I've added ~/SteamLibrary as my main game library, but I could equally well have chosen /mnt/hdd/SteamLibrary.

Or, if you find that you absolutely need to have /home split between SSD and HDD, I would recommend using bind mounts in preference to symlinks. For instance, you could keep most of /home on SSD, but with bind-mounts for large directories where a performance hit is acceptable, so for example your /etc/fstab might contain something like:

/mnt/hdd/breetai/Music /home/breetai/Music none bind 0 0
/mnt/hdd/breetai/SteamLibrary /home/breetai/SteamLibrary none bind 0 0
/mnt/hdd/breetai/Videos /home/breetai/Videos none bind 0 0

and that will be more reliable than using symbolic links like /home/breetai/Music -> /mnt/hdd/breetai/Music.

Or conversely, if most of /home is on HDD but you want an individual directory like /home/breetai/.config to be on SSD, instead of a symlink /home/breetai/.config -> /home_fast/breetai/.config it would be more reliable to have a bind mount like:

/home_fast/breetai/.config /home/breetai/.config none bind 0 0
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.

Ssmcv 2024-03-01 github

Long shot, but can you make sure you have a ~/.config/cef_user_data folder that exists and is accessible/writable by the user running steam? E.g. /home/breetai/.config/cef_user_data.

The location of that folder may be affected by your XDG_ environment variables too (XDG_CONFIG_HOME).

I think I can see how to make this more robust against symlink weirdness. That's now tracked as steamrt/tasks#411 internally.

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.

Jjhaand 2024-03-01 github

Since we got most issues under control and identified, I will close this issue.

TTTimo 2024-03-07 github

The steam beta client is now more robust to these symlink setups.

DDocMAX 2024-04-01 github

The steam client is getting worse and worse. Things break like this. Also starting to get bloaded a lot. Please keep the client small and simple.

Jjeffreymonjacastro 2024-09-17 github

In my case, there was two unknown symlinks in my $home folder, there were .steampath and .steampid. I just remove it and restart Steam and it starts working.

OS: Arch Linux 6.10.9