Randomly modifying the files installed by Steam is not a supported thing to do, and I would recommend not using "helpful" "cleaners" that assume that all files with a particular naming pattern are expendable: sooner or later this will likely cause you to lose valuable data when the tool's guess turns out to be inaccurate. The amount of space saved is probably also very small when compared with the size of Steam or a typical game.
The root cause of this is that steamwebhelper now runs under the Steam Linux Runtime framework. For boring technical reasons involving multi-distribution support, yes, it needs to copy files from one location to another (actually it uses hard-links, so they don't take up any extra space); and at the moment if any of those files are missing, it will diagnose that as a fatal error and refuse to continue.
The files in __pycache__ are probably not strictly necessary, but the container runtime framework doesn't know that: all it knows is that it has a list of files that it expected to have available, and one of them is missing. In principle it would be possible to special-case those files to be ignored-if-missing, or (perhaps better?) disguise their filenames so that "helpful" "cleaners" will not arbitrarily delete them.
Python apps generally create these cache folders as-needed
In the case of the container runtime this is not actually possible, because the files in question end up mounted read-only inside the container, so anything that needs to run Python inside the container will be unable to write there.
Fair enough. "Helpful" was in quotes because of course... also random shmandom.
In principle it would be possible to [...] disguise their filenames so that "helpful" "cleaners" will not arbitrarily delete them.
An implementation of this is in progress, and will hopefully appear in a future release of the container runtime. (Tracked as steamrt/tasks#422 internally)
In principle it would be possible to [...] disguise their filenames so that "helpful" "cleaners" will not arbitrarily delete them.
An implementation of this is in progress, and will hopefully appear in a future release of the container runtime. (Tracked as steamrt/tasks#422 internally)
This change has reached the public betas of "Steam Linux Runtime 2.0 - soldier" and "Steam Linux Runtime 3.0 - sniper", versioned as 0.20240415.x. The copy of sniper that runs the steamwebhelper (which is the one that matters for this issue) has not yet been updated in public betas, but that should happen in a future Steam beta.
Nothing extracted yet.
Steam client version (build number or date):
Steam Beta Branch: Stable Client
Steam Version: 1709846872
Steam Client Build Date: Thu, Mar 7 7:28 AM UTC +10:00
Steam Web Build Date: Fri, Mar 8 8:17 AM UTC +10:00
Steam API Version: SteamClient021
Distribution (e.g. Ubuntu):
Linux Mint 21.3
Opted into Steam client beta?: [Yes/No]
No
Have you checked for system updates?: [Yes/No]
Yes
Steam Logs: [generate by running this command in a terminal
tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]Already deleted, sorry. But the issue was SteamWebHelper failing to launch because it could not copy one or more files from a
__pycache__folder under its ~/.local/share/Steam hierarchy to some other folder in the Steam hierarchy.gtx1060
Please describe your issue in as much detail as possible:
SteamWebHelper now seems to require that at least one Steam pycache folder exists in the user installation. It fails to start if the particular cache folder and its file or files are not present because it tries to copy them from one pycache folder to another (or another location) and hard-fails if the file(s) are not present.
So the program does not regenerate the pycache folder on launch, but rather expects the folder and its contents to exist.
This behaviour seems counterintuitive, because Python apps generally create these cache folders as-needed, and some 'cleaners' like to blast those folders with the expectation that it is safe to do so.
Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist
I would expect SteamWebHelper to not depend on files under the Steam client's pycache folders to exist. It should either generate them as-needed on startup or put them in some other folder.
Steps for reproducing this issue: