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

Error: Steam "needs at least 250MB" free space when plenty of space #4982

Closed
apiontek opened this issue May 19, 2017 · 98 comments
Closed

Error: Steam "needs at least 250MB" free space when plenty of space #4982

apiontek opened this issue May 19, 2017 · 98 comments
Assignees

Comments

@apiontek
Copy link

Your system information

  • Steam client version (build number or date): 1:1.0.0.54+repack-2ubuntu5
  • Distribution (e.g. Ubuntu): Ubuntu Gnome 17.04
  • Opted into Steam client beta?: [Yes/No] Yes but fresh install
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

Running Steam for the first time on fresh install, system fully updated. My homedirs are ZFS datasets. This has worked in the past, on an Ubuntu 16.04 system, same ZFS homedir setup, but that may have been over 6-10 months ago, last time I used it.

In current environment, running steam I get error window "Steam - Fatal Error" "Fatal Error: Steam needs at least 250MB of free disk space to update." Running from terminal produces output (gist)

df -h output (gist) -- every partition available has plenty of space.

apt-cache policy steam output (gist)

i also see in the terminal output, "Steam needs to be online to update" -- I have an active network connection. It is non-standard, being a bridge on top of a bonded interface, but this also worked in the past.

Steps for reproducing this issue:

  1. install Ubuntu Gnome 17.04, ensure up-to-date
  2. have a ZFS dataset, with e.g. tank/homes mounted to /home -- and in my case, tank/homes/userX as separate datasets mounted to /home/userX
  3. try to run steam for the first time
@kisak-valve
Copy link
Member

Hello @apiontek, as a test, can you remove both the distro and valve variants of the steam package, then move ~/.steam and if it is there, ~/.local/share/Steam somewhere out of the way. Then add either the distro-provided or valve-provided steam package, but not both and re-run steam.

@apiontek
Copy link
Author

I had already done that. I originally had distro-provided steam package installed. I removed ~/.steam and ~/.local/share/Steam, then did a find ~/ -iname "steam" and removed ~/.steampid, ~/.steampath, and ~/Steam I think. I then purged the distro-provided steam, downloaded steam-latest.deb, and installed that. Upon getting the same error, I submitted this issue.

Just now however, I tried again, running sudo apt purge steam-launcher after a dpkg -l | grep -i steam and removing ~/.steam and ~/.local/share/Steam again.

This time I reinstalled the distro-provided package and had the same result.

Tried again and reinstalled the valve-provided package, and have the same result. I get the error with both.

@kisak-valve
Copy link
Member

Thanks for the confirmation @apiontek.

@apiontek
Copy link
Author

apiontek commented May 19, 2017

As an update, since my root system is on ext4, I created a temporary /opt/steam folder with subfolders for .steam, local-share-Steam, and Steam, and did ln -s for each of them into the appropriate places in my homedir.

Then, the steam installer worked fine. But when I remove the symlinks and move the folders into position, although Steam starts up fine, I can't install games because it reports 0 space free.

So it seems I could run games with folders symlinked to an ext4 partition, but this isn't optimal for me. My root partition is a small SSD. I wonder if I can create a ZFS block device formatted ext4, and symlink again? I'll try that.

Editing to add: creating an ext4-formatted zvol and symlinking the steam folders to folders on that volume, does work and allow me to install & run games. Not ideal, but I can run games for now!

@dark-saber
Copy link

dark-saber commented May 23, 2017

Same problem on Arch Linux when trying to add new Steam Library folder located on ZFS volume: Steam shows 0 bytes free space in such folders.

@kermeat
Copy link

kermeat commented May 24, 2017

Got same problem on gentoo
STEAM_DEBUG=1
DEBUGGER=strace
steam_debug.txt
steam.strace.txt

@tgoodyear
Copy link

Same problem on Xubuntu 17.04

@cybik
Copy link

cybik commented Jul 15, 2017

Chiming in, Gentoo user here.

  • I can run some games, but not install any new ones.
  • Steam reports 0MB free for my ZFS partition, but enough for my homedir.
cinu cybik # uname -a; equery list zfs zfs-kmod spl
Linux cinu 4.12.1-gentoo-cybik #1 SMP Sat Jul 15 00:10:04 PDT 2017 x86_64 Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz GenuineIntel GNU/Linux
 * Searching for zfs ...
[IP-] [  ] sys-fs/zfs-0.6.5.11:0

 * Searching for zfs-kmod ...
[IP-] [  ] sys-fs/zfs-kmod-0.6.5.11:0

 * Searching for spl ...
[IP-] [  ] sys-kernel/spl-0.6.5.11:0

My specific console error:

../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75
../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75
../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75
GameAction[AppID 2820, ActionID 1] : RunGame failed with NotInstalled with ""
../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75
../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75
../tier1/fileio.cpp (3264) : Assertion Failed: Failed to determine free disk space for /media/Games/cybik/Steam, error 75

@soredake
Copy link

soredake commented Jul 25, 2017

Gentoo user x2, Steam Beta, same problem as with @cybik

@soredake
Copy link

soredake commented Jul 31, 2017

@kisak-valve when will this be fixed (or at least an option that allows you to skip checking free space)? It's a bit(very) annoying that i cannot use steam.

@soredake
Copy link

soredake commented Aug 2, 2017

Same problem with steam and gog installers under wine, maybe we need to report a bug to zfs.

@cybik
Copy link

cybik commented Aug 2, 2017

I'm starting to think we should bring in the zfs driver developers.

@kdrag0n
Copy link

kdrag0n commented Aug 16, 2017

I'm having the same issue with Steam on Arch. I'm using btrfs instead of zfs though, but trying to install Steam games to another drive mounted at /storage. Steam claims there are 0 bytes of disk space free, which isn't true. I've confirmed that reading and writing to the drive works.

@soredake
Copy link

soredake commented Aug 31, 2017

Seems valve fixed this in beta update. UPD: Seems something updated in system, because the Steam and GOG installers in Wine are now correctly show the free space.

@kisak-valve
Copy link
Member

Thanks for testing @soredake, is anyone else having this issue with zfs or btrfs with the steam beta client? If needed, you should be able to manually opt-in to the steam beta with touch ~/.steam/steam/package/beta.

@cybik
Copy link

cybik commented Sep 1, 2017

Steam package versions 1503954609, still can't install (reporting 0MB free).

Using zfs, Steam Linux Native.

@Pilzschaf
Copy link

Still happening on steam beta with package version 1503954609 on Manjaro 17.0.2 and ZFS v0.6.5.9-2

@glycerine102
Copy link

My free space is correct now and I am able to install games to libraries in my zfs datasets. This is on Fedora 26.

Name         : zfs
Version      : 0.7.1
Release      : 1.fc26
Arch         : x86_64
Size         : 1.0 M
Source       : zfs-0.7.1-1.fc26.src.rpm

@cybik
Copy link

cybik commented Sep 2, 2017

@nathandorsey gave me the idea of updating my zfs (0.6.x to 0.7.1), but I still have 0mb available.
cinu cybik # uname -a; echo ============; equery l zfs zfs-kmod spl;

Linux cinu 4.12.1-gentoo-cybik #2 SMP Sat Jul 15 14:55:14 PDT 2017 x86_64 Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz GenuineIntel GNU/Linux
============
 * Searching for zfs ...
[IP-] [  ] sys-fs/zfs-0.7.1:0

 * Searching for zfs-kmod ...
[IP-] [  ] sys-fs/zfs-kmod-0.7.1:0

 * Searching for spl ...
[IP-] [  ] sys-kernel/spl-0.7.1:0

@soredake
Copy link

soredake commented Sep 2, 2017

@cybik i'm on 0.7.1 zfs, 4.12.8 kernel and 6.4.0 gcc, maybe this will help you.
Additionaly:
Kernel config https://notabug.org/soredake/dotfiles_home/src/master/kernel/.config_4_12_8
Portage settings: https://notabug.org/soredake/dotfiles_home/src/master/etc/portage/portage

@cybik
Copy link

cybik commented Sep 2, 2017

@soredake I'll update my kernel for funsies.

@cybik
Copy link

cybik commented Sep 2, 2017

Kernel updated, still an issue.
Config Snapshot: https://github.com/cybik/currentconfigs (not for the faint of heart)
Steam Version: 1503954609
cinu cybik # uname -a; echo ============; equery l zfs zfs-kmod spl;

Linux cinu 4.12.8-gentoo-cybik #1 SMP Sat Sep 2 09:20:51 PDT 2017 x86_64 Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz GenuineIntel GNU/Linux
============
 * Searching for zfs ...
[IP-] [  ] sys-fs/zfs-0.7.1:0

 * Searching for zfs-kmod ...
[IP-] [  ] sys-fs/zfs-kmod-0.7.1:0

 * Searching for spl ...
[IP-] [  ] sys-kernel/spl-0.7.1:0

@cybik
Copy link

cybik commented Sep 2, 2017

@soredake can you run this:

equery l zfs zfs-kmod spl

@Phalen
Copy link

Phalen commented Sep 24, 2018

@kisak-valve It would be appreciated if you would poke your contacts at Valve to get this fixed so that other projects don't need to implement workarounds. It ought to be fairly simple for one of Valve's developers to fix.

ryao have you tried the beta client yet? the most recent update for it on my system broke writing to the disk on nfs. not sure if this is related to either of those 2 bugs mentioned. it creates folders and then when trying to download updates/games it errors that it cant write to the download folder.

@Prior99
Copy link

Prior99 commented Sep 26, 2018

I have the same problem, also running ZFS with 4TB of free space. Could this be related to a glibc update?

@Redsandro
Copy link

Same problem. Linux Mint 19 AKA Ubuntu 18.04 with ZFS dataset mounted at /mnt/steam with 777 permissions (shouldn't be necessary but was trying to get this to work).

I have 4.5 TB of free space. And proper rights. I just copied and removed a movie in my username to the ZFS dataset.

This setup works on my other machine. Frustrating. Did something change since a steam update?

@kisak-valve over the years I've seen this issue in one form or the other more often than I care for. Please please please add the option to ignore free disk space checks. Tuck it away as far as you like, but let there be a way.

@Phalen
Copy link

Phalen commented Oct 6, 2018

This setup works on my other machine. Frustrating. Did something change since a steam update?

@kisak-valve over the years I've seen this issue in one form or the other more often than I care for. Please please please add the option to ignore free disk space checks. Tuck it away as far as you like, but let there be a way.

Redsandro have you tried the beta client? im getting worse results with that. It complains it cant write files.

@h1z1
Copy link

h1z1 commented Nov 6, 2018

It is still outstanding as of latest Steam Beta and 4.19.0 kernel. ZFS changes are approved for 0.7.12. There's still implementation time after though. Valve could make this go away if they capped the freespace at something sane.

This drove me a bit insane to the point I have a zfs filesystem for each title with a quota on their parent steamapps directory. On the plus side it allows for easy snaphots and moving data around to other hosts/vms (yay zfs send), but is a completely external process.

@glabifrons
Copy link

glabifrons commented Dec 2, 2018

The ZFS recordsize is possibly a red-herring as my home directory is mounted via NFSv4 and I'm now having the same issue after upgrading from Ubuntu MATE 16.04 to 18.04.
My NFS server is using ZFS for the datastores, but I don't believe that's relevant on the client.

I do have 4.2TB free in my home filesystem.

Edit: I did as ryao suggested and created a separate filesystem with a 2T quota at ~/.local/share/Steam, then linked ~/.steam to it, and that seems to work so far. I only launched Steam and made sure it installed cleanly and got to the login prompt.
Edit 2: Confirmed, this workaround works for those of us with ZFS on the back end (I don't know if the same is possible in btrfs).

@BlinkyStitt
Copy link

In case someone else finds this issue like I did: I'm running steamcmd inside a docker container on a host with zfs and I worked around this error by adding --storage-opt size=100G to my docker run command. This was easier than changing quotas since my container isn't using a volume.

@TTimo
Copy link
Collaborator

TTimo commented Nov 4, 2019

Can you run stat -f [nfs mount] on your nfs client system, do the same on the server side for the backing partition, and report the results?

@glabifrons
Copy link

glabifrons commented Nov 5, 2019

Can you run stat -f [nfs mount] on your nfs client system, do the same on the server side for the backing partition, and report the results?

On my desktop, my home directory (which will cause the failure, had to move it from here):

    ID: 0        Namelen: 255     Type: nfs
Block size: 1048576    Fundamental block size: 1048576
Blocks: Total: 4011490    Free: 3245823    Available: 3245823
Inodes: Total: 6649115851 Free: 6647444480

Same directory on the (ZFS) NFS server:

    ID: 4d5001200000000 Namelen: 255     Type: zfs
Block size: 131072     Fundamental block size: 512
Blocks: Total: 8215529376 Free: 6647443120 Available: 6647443120
Inodes: Total: 6649114491 Free: 6647443120

Again on the desktop, the directory in which Steam is now installed (and working, see below):

    ID: 0        Namelen: 255     Type: nfs
Block size: 1048576    Fundamental block size: 1048576
Blocks: Total: 2097152    Free: 1926086    Available: 1926086
Inodes: Total: 3944791494 Free: 3944622648

On the server (this is a ZFS filesystem in the same zpool, but with 2TB quota/size restriction workaround applied):

    ID: 4d5001300000000 Namelen: 255     Type: zfs
Block size: 131072     Fundamental block size: 512
Blocks: Total: 4294967296 Free: 3944622648 Available: 3944622648
Inodes: Total: 3944791494 Free: 3944622648

@TTimo
Copy link
Collaborator

TTimo commented Nov 5, 2019

@glabifrons thanks - if you are up for a little more testing, would you mind reaching out to me directly?

@TTimo
Copy link
Collaborator

TTimo commented Nov 8, 2019

Latest steam beta (Nov 7) comes with several changes to the way the client obtains free disk space information, which may help with this - please retest.

If you are still experiencing this bug, please set DBG_STAT environment variable before running steam and provide the diagnostic output to statfs64 and statvfs64 calls from Steam client stdout.

@AlbinoGeek
Copy link

Multiple games will tell me that they are out "Out of Space" (most recently, "Oxygen Not Included" will eventually fail (after six hours of play or so) to save any more games, complaining that "At least 15MB of space must be available."

Meanwhile, I am on XFS, and have at least 70G available (and millions of inodes.)

Restarting the game "resolves" the issue, but why is this even a thing?

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       233G  161G   72G  70% /

Filesystem        Inodes   IUsed     IFree IUse% Mounted on
/dev/sda3      121883136 1707103 120176033    2% /

@TTimo
Copy link
Collaborator

TTimo commented Nov 20, 2019

@AlbinoGeek would you mind running disk-free.sh out of https://www.dropbox.com/s/7s02hqms6ewzoim/disk-free.tgz?dl=0 and reporting the results.

I'm mostly interested in the provided 'scout' binaries (e.g. steam-runtime) - source code is included too.

Basically we think statvfs64 is broken for 32 bit binaries on a variety of partitions (XFS/NFS) - I'm not sure if it's a libc or kernel problem. We'll implement a fix in the Steam client but it's unlikely we'll be able to fix individual games.

@TTimo TTimo removed the Need Retest label Nov 20, 2019
@AlbinoGeek
Copy link

SCOUT x86
statvfs64: ret 0 errno 0
  f_bsize : 4096
  f_frsize: 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
statfs64: ret 0 errno 0
  f_type  : 1481003842
  f_bsize : 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
SCOUT x64
statvfs64: ret 0 errno 0
  f_bsize : 4096
  f_frsize: 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
statfs64: ret 0 errno 0
  f_type  : 1481003842
  f_bsize : 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
BIONIC x86
statvfs64: ret 0 errno 0
  f_bsize : 4096
  f_frsize: 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
statfs64: ret 0 errno 0
  f_type  : 1481003842
  f_bsize : 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
BIONIC x64
statvfs64: ret 0 errno 0
  f_bsize : 4096
  f_frsize: 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682
statfs64: ret 0 errno 0
  f_type  : 1481003842
  f_bsize : 4096
  f_blocks: 60911812
  f_bfree : 17948682
  f_bavail: 17948682

No difference. Does Steam run anything under a chroot or similar system? Is there any library redirection in play, or anything else that would result in a game executing out of a virtual filesystem? (This is a wild guess, but seeing snap and friends do this...)

@TTimo
Copy link
Collaborator

TTimo commented Nov 22, 2019

@AlbinoGeek thanks.

From the Steam client perspective you should be set and it will understand that you have 70GB free on your root XFS partition just fine.

We can't fix the game titles though, you will need to report to each developer individually that they should either provide a 64 bit version of their title or switch their 32 bit implementation to use the _LARGEFILE64_SOURCE APIs.

@TTimo
Copy link
Collaborator

TTimo commented Dec 3, 2019

Next client beta (> Nov 28) will have an additional workaround for this situation: torvalds/linux@cc3a7bf#comments

Hopefully this will address the remaining problems.

@TTimo TTimo self-assigned this Dec 3, 2019
@kisak-valve
Copy link
Member

Closing as fixed in the 2019-12-16 Steam client update.

If anyone is still seeing this issue, it will need a new investigation.

@MasterCATZ
Copy link

not too sure how you think this is fixed 80Tb free and steam thinks it can not install anything
it just looks at free space under the home folder and ignores all free space on root

@glabifrons
Copy link

not too sure how you think this is fixed 80Tb free and steam thinks it can not install anything it just looks at free space under the home folder and ignores all free space on root

Your comment is confusing.
Why would you have 80Tb (guessing you actually mean TB) free on root? Surely you mean home.
Why should Steam look to the root filesystem instead of where it's actually storing the files (in your home)?
Aside from that, please see the comment from @kisak-valve (posted >3 years ago)... you need to open a new Issue.

@MasterCATZ
Copy link

MasterCATZ commented Nov 16, 2023

not too sure how you think this is fixed 80Tb free and steam thinks it can not install anything
it just looks at free space under the home folder and ignores all free space on root

not too sure how you think this is fixed 80Tb free and steam thinks it can not install anything it just looks at free space under the home folder and ignores all free space on root

Your comment is confusing. Why would you have 80Tb (guessing you actually mean TB) free on root? Surely you mean home. Why should Steam look to the root filesystem instead of where it's actually storing the files (in your home)? Aside from that, please see the comment from @kisak-valve (posted >3 years ago)... you need to open a new Issue.

why wouldn't I have 80TB ?

and I do not have my steam library in my /home either .... but that is what is seems to only use for free space checking

Screenshot from 2023-11-16 20-50-07

@glabifrons
Copy link

You're complaining that it's checking your home - that's because that's where it stores the library.
It looks for free space where you tell it to install the game. Why would it check somewhere else?
If you've configured Steam to store your library in another path by default, you should say so, and more importantly, state where. This is critical information you're leaving out.
You said you have 80TB in root, yet your screenshot clearly shows your root has 15GB available. Still a lot, but 3 orders of magnitude different (and just as irrelevant as that's not where Steam stores your games).
Your home has 2.8GB available which should be enough for small games, but don't expect a AAA game to fit there.
In fact the only filesystems that have availability listed in the terabytes range are in non-standard mount points.
Why would you expect Steam to check there?

No-one can guess your configuration. If you want help, you're going to have to provide more info as to what custom configuration you've come up with.

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