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

XFS support: Source games need to use stat64/64-bit ints or be compiled for 64-bit. #1685

Open
SandonV opened this Issue Mar 11, 2014 · 10 comments

Comments

Projects
None yet
10 participants
@SandonV

SandonV commented Mar 11, 2014

Please see this issue for the problem that the steam client had which is now fixed (now the problem is the games):

ValveSoftware/steam-for-linux#2610

Anyone with XFS and a file-system > 1 TiB should be using the inode64 mount option which enables the usage of 64-bit inodes. The problem is if 32-bit programs are storing inode data in a 32-bit. I doubt steam games will be reduced on 64-bit to fix this issue so alternatively stats can be moved to stat64 or if you use this compiler flag:

_FILE_OFFSET_BITS=64 

It will usually fix the issue on existing code.

Here is the error I get trying to load a source game:

CGameStreamThread: Added instance ID 18407 for appid 240
Installing breakpad exception handler for appid(steam)/version(1394489397_client)
Installing breakpad exception handler for appid(steam)/version(1394489397_client)
AppFramework : Unable to load module /data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_steam.so!
Unable to load /data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_steam.soInstalling breakpad exception handler for appid(steam)/version(1394489397_client)
OnFocusWindowChanged to window type: k_EWindowTypeNonSteamDesktop, 0
####### Log failed to open /tmp/gameoverlayrenderer.log ##############
####### Log failed to open /tmp/gameoverlayrenderer.log ##############
Installing breakpad exception handler for appid(steam)/version(1394489397_client)
Installing breakpad exception handler for appid(steam)/version(1394489397_client)

A library with > 32 bit int inode number:

root@dekabutsu:~# stat "/data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_stdio.so"
  File: `/data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_stdio.so'
  Size: 2309285         Blocks: 4512       IO Block: 1441792 regular file
Device: 841h/2113d      Inode: 155861888557  Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1001/   steam)   Gid: ( 1002/   steam)
Access: 2013-12-13 17:36:48.235024281 -0800
Modify: 2013-12-13 17:36:50.386024325 -0800
Change: 2013-12-13 17:36:57.377024470 -0800
 Birth: -

System info:

Processor Information:
    Vendor:  GenuineIntel
    CPU Family:  0x6
    CPU Model:  0x2d
    CPU Stepping:  0x5
    CPU Type:  0x0
    Speed:  2601 Mhz
    32 logical processors
    16 physical processors
    HyperThreading:  Supported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported

Network Information:
    Network Speed:

Operating System Version:
    Ubuntu 12.04.1 LTS (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.10.14
    X Server Vendor:  The X.Org Foundation
    X Server Release:  11203000
    X Window Manager:  Fluxbox
    Steam Runtime Version:  steam-runtime-release_2014-02-05

Video Card:
    Driver:  NVIDIA Corporation GeForce GTX 670/PCIe/SSE2

    Driver Version:  4.4.0 NVIDIA 331.13
    OpenGL Version: 4.4
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 31 Hz
    VendorID:  0x10de
    DeviceID:  0x1189
    Number of Monitors:  1
    Number of Logical Video Cards:  2
    Primary Display Resolution:  3840 x 2160
    Desktop Resolution: 3840 x 2160
    Primary Display Size: 43.31" x 24.41"  (49.69" diag)
                                            110.0cm x 62.0cm  (126.2cm diag)
    Primary Bus: PCI Express 16x
    Primary VRAM: 4096 MB
    Supported MSAA Modes:  2x 4x 8x 16x

Sound card:
    Audio device:

Memory:
    RAM:  131072 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_US.UTF-8
    Microphone:  Not set
    Total Hard Disk Space Available:  41686862 Mb
    Largest Free Hard Disk Block:  1397320 Mb

Installed software:

Recent Failure Reports:
    Mon Aug 12 19:45:16 2013 GMT: file ''/tmp/dumps/crash_20130812124502_2.dmp'', upload yes: ''CrashID=bp-067588d9-b325-41c2-bfca-d455b2130812''
    Mon Aug 12 19:45:17 2013 GMT: file ''/tmp/dumps/assert_20130812124504_8.dmp'', upload yes: ''CrashID=bp-b5c79ea9-4ff4-4fb6-91b5-62e912130812''
    Mon Aug 12 19:45:53 2013 GMT: file ''/tmp/dumps/crash_20130812124548_8.dmp'', upload yes: ''CrashID=bp-10691805-d088-4719-8101-99ade2130812''
    Mon Aug 12 19:45:55 2013 GMT: file ''/tmp/dumps/crash_20130812124546_2.dmp'', upload yes: ''CrashID=bp-66623043-0e33-4076-aae6-caaf02130812''
    Mon Aug 12 19:48:25 2013 GMT: file ''/tmp/dumps/assert_20130812124820_7.dmp'', upload yes: ''CrashID=bp-e3c25a26-34c8-4e05-ac81-448352130812''
    Mon Aug 12 19:48:26 2013 GMT: file ''/tmp/dumps/crash_20130812124819_2.dmp'', upload yes: ''CrashID=bp-ade470d7-81b1-4097-8546-d1be22130812''
    Sat Aug 31 05:26:29 2013 GMT: file ''/tmp/dumps/crash_20130830222629_2.dmp'', upload no: ''HTTP response code said error''
    Sat Aug 31 05:27:01 2013 GMT: file ''/tmp/dumps/crash_20130830222700_2.dmp'', upload no: ''HTTP response code said error''
    Sat Aug 31 05:27:06 2013 GMT: file ''/tmp/dumps/crash_20130830222705_7.dmp'', upload no: ''HTTP response code said error''
    Sat Aug 31 05:30:04 2013 GMT: file ''/tmp/dumps/crash_20130830223004_2.dmp'', upload no: ''HTTP response code said error''
    Sat Aug 31 05:30:06 2013 GMT: file ''/tmp/dumps/crash_20130830223006_8.dmp'', upload no: ''HTTP response code said error''
    Sun Sep  1 23:27:22 2013 GMT: file ''/tmp/dumps/crash_20130901162722_2.dmp'', upload yes: ''CrashID=bp-5876c62d-bb40-40df-9b1b-c40762130901''
    Sun Sep  1 23:27:25 2013 GMT: file ''/tmp/dumps/assert_20130901162724_8.dmp'', upload yes: ''CrashID=bp-9b02d3e8-8e50-469f-8ca9-2e3552130901''
    Sun Sep  1 23:29:35 2013 GMT: file ''/tmp/dumps/crash_20130901162934_2.dmp'', upload yes: ''CrashID=bp-98668af8-3c6d-4eab-b119-9dc912130901''
    Sun Sep  1 23:29:37 2013 GMT: file ''/tmp/dumps/assert_20130901162936_8.dmp'', upload yes: ''CrashID=bp-7bdbb04a-0106-45da-b1b4-e8a5a2130901''
    Sun Sep  1 23:30:44 2013 GMT: file ''/tmp/dumps/crash_20130901163043_2.dmp'', upload yes: ''CrashID=bp-ddcd7da0-d271-41d1-87d7-9f4232130901''
    Sun Sep  1 23:30:45 2013 GMT: file ''/tmp/dumps/assert_20130901163044_7.dmp'', upload yes: ''CrashID=bp-50ec3a9b-ffe3-44d1-8914-5fdb42130901''
    Wed Oct  9 04:38:08 2013 GMT: file ''/tmp/dumps/crash_20131008213803_2.dmp'', upload no: ''HTTP response code said error''
    Wed Oct  9 04:39:00 2013 GMT: file ''/tmp/dumps/crash_20131008213856_2.dmp'', upload no: ''HTTP response code said error''
    Wed Oct  9 04:39:08 2013 GMT: file ''/tmp/dumps/assert_20131008213903_7.dmp'', upload no: ''HTTP response code said error''
    Mon Oct 28 21:10:20 2013 GMT: file ''/tmp/dumps/crash_20131028141011_7.dmp'', upload yes: ''CrashID=bp-a111b726-d6e7-401e-8905-061ca2131028''
    Mon Oct 28 21:10:42 2013 GMT: file ''/tmp/dumps/crash_20131028141011_2.dmp'', upload no: ''Failure when receiving data from the peer''
    Mon Oct 28 21:12:28 2013 GMT: file ''/tmp/dumps/crash_20131028141222_2.dmp'', upload yes: ''CrashID=bp-dd4d416a-c434-4a0a-bc7e-4cdf12131028''
    Mon Oct 28 21:12:34 2013 GMT: file ''/tmp/dumps/crash_20131028141223_8.dmp'', upload yes: ''CrashID=bp-0265e673-6ae5-4603-8b5c-301002131028''
    Wed Nov 20 03:15:35 2013 GMT: file ''/tmp/dumps/crash_20131119191527_2.dmp'', upload no: ''Failure when receiving data from the peer''
    Sat Dec 14 01:05:32 2013 GMT: file ''/tmp/dumps/crash_20131213170527_2.dmp'', upload yes: ''CrashID=bp-207ff2db-7a87-4843-8825-b7eec2131213''
    Sat Dec 14 01:40:59 2013 GMT: file ''/tmp/dumps/assert_20131213174049_26.dmp'', upload yes: ''CrashID=bp-a05e5926-afa1-422b-9aa1-b69082131213''
    Tue Mar 11 02:41:42 2014 GMT: file ''/tmp/dumps/assert_20140310194136_36.dmp'', upload yes: ''CrashID=bp-c8de073e-ba28-4017-82f8-e02032140310''
@MalkavianBilbao

This comment has been minimized.

Show comment
Hide comment
@MalkavianBilbao

MalkavianBilbao Jun 27, 2014

Bug confirmed with Leaf 4 Dead 2. Installed in a XFS 64 bit partition it says:
Unable to load module /data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_steam.so!

MalkavianBilbao commented Jun 27, 2014

Bug confirmed with Leaf 4 Dead 2. Installed in a XFS 64 bit partition it says:
Unable to load module /data/ubuntu_steam/.local/share/Steam/SteamApps/common/Counter-Strike Source/bin/filesystem_steam.so!

@cwadge

This comment has been minimized.

Show comment
Hide comment
@cwadge

cwadge Nov 9, 2014

Confirmed; native 64-bit XFS here as well.

cwadge commented Nov 9, 2014

Confirmed; native 64-bit XFS here as well.

@ahknight

This comment has been minimized.

Show comment
Hide comment
@ahknight

ahknight Aug 21, 2015

Portal 2. Ubuntu 15. filesystem_steam.so. XFS. Created a library on an ext4 partition. Works like a charm.

Really? This is still a thing?

ahknight commented Aug 21, 2015

Portal 2. Ubuntu 15. filesystem_steam.so. XFS. Created a library on an ext4 partition. Works like a charm.

Really? This is still a thing?

@lachs0r

This comment has been minimized.

Show comment
Hide comment
@lachs0r

lachs0r Oct 12, 2015

Note that this is no longer limited to XFS with recent systems, as ext4 and btrfs may also use 64-bit inodes. Why is this not fixed yet? Because Steam is only supported on 32-bit Ubuntu LTS? Sorry, that’s too old to work on my hardware.

I mean, I can still play really old ports like UT99 or RTCW or Doom 3 on my system without messing around with filesystems, but almost none of the Valve titles work. Why isn’t this absolutely trivial problem fixed yet?

lachs0r commented Oct 12, 2015

Note that this is no longer limited to XFS with recent systems, as ext4 and btrfs may also use 64-bit inodes. Why is this not fixed yet? Because Steam is only supported on 32-bit Ubuntu LTS? Sorry, that’s too old to work on my hardware.

I mean, I can still play really old ports like UT99 or RTCW or Doom 3 on my system without messing around with filesystems, but almost none of the Valve titles work. Why isn’t this absolutely trivial problem fixed yet?

@wberrier

This comment has been minimized.

Show comment
Hide comment
@wberrier

wberrier Oct 4, 2016

Surprising this hasn't been fixed... here's my work-around:

I have computer serving as a NAS with xfs exported over nfs. I have a client computer running steam. Sure enough, several games didn't load.

It's not feasible to make changes to my NAS drives, so I did the following:

create a sparse file image:

dd if=/dev/zero of=steam.img bs=1 count=0 seek=128G

create xfs filesystem that doesn't use 64bit inodes:

mkfs.xfs steam.img

Mount via automount in /etc/auto.misc:

steam  -fstype=xfs             :/nfs/path/steam.img

Then going to:

/misc/steam

it will mount the 32bit xfs image over nfs.

In case anyone else is looking for a work around...

wberrier commented Oct 4, 2016

Surprising this hasn't been fixed... here's my work-around:

I have computer serving as a NAS with xfs exported over nfs. I have a client computer running steam. Sure enough, several games didn't load.

It's not feasible to make changes to my NAS drives, so I did the following:

create a sparse file image:

dd if=/dev/zero of=steam.img bs=1 count=0 seek=128G

create xfs filesystem that doesn't use 64bit inodes:

mkfs.xfs steam.img

Mount via automount in /etc/auto.misc:

steam  -fstype=xfs             :/nfs/path/steam.img

Then going to:

/misc/steam

it will mount the 32bit xfs image over nfs.

In case anyone else is looking for a work around...

@ahknight

This comment has been minimized.

Show comment
Hide comment
@ahknight

ahknight Oct 4, 2016

My work-around, since they don't care to fix this, was to create a Wintendo.

Steam for Linux is practically abandoned.

ahknight commented Oct 4, 2016

My work-around, since they don't care to fix this, was to create a Wintendo.

Steam for Linux is practically abandoned.

@gnuheidix

This comment has been minimized.

Show comment
Hide comment
@gnuheidix

gnuheidix Nov 29, 2016

I'm also affected by this issue. Can somebody estimate when a fix gets released? Thanks

gnuheidix commented Nov 29, 2016

I'm also affected by this issue. Can somebody estimate when a fix gets released? Thanks

@Tele42

This comment has been minimized.

Show comment
Hide comment
@Tele42

Tele42 Nov 29, 2016

Contributor

Hello @gnuheidix, no estimates are given until there is a fix pending in a future update.

Contributor

Tele42 commented Nov 29, 2016

Hello @gnuheidix, no estimates are given until there is a fix pending in a future update.

@trinitronx

This comment has been minimized.

Show comment
Hide comment
@trinitronx

trinitronx Dec 3, 2017

Can someone confirm whether filesystem_steam.so actually exists within their Steam Library Game's directory?

I am seeing this error too, and also am using a large XFS RAID volume for the Steam Library directory. However, it seems more likely that I'd see an inode access issue on a file that actually exists. Searching inside the entire ~/.steam directory does not return any file named filesystem_steam.so.

$ find /media/terabyte/games/steam/ -iname 'filesystem_steam.so'
$ echo $?
0

@Tele42, @kisak-valve: Maybe this is just a game packaging issue, and this .so library is just missing?

The error I see is:

Unable to load /media/terabyte/games/steam/steam/steamapps/common/Portal/bin/filesystem_steam.so

trinitronx commented Dec 3, 2017

Can someone confirm whether filesystem_steam.so actually exists within their Steam Library Game's directory?

I am seeing this error too, and also am using a large XFS RAID volume for the Steam Library directory. However, it seems more likely that I'd see an inode access issue on a file that actually exists. Searching inside the entire ~/.steam directory does not return any file named filesystem_steam.so.

$ find /media/terabyte/games/steam/ -iname 'filesystem_steam.so'
$ echo $?
0

@Tele42, @kisak-valve: Maybe this is just a game packaging issue, and this .so library is just missing?

The error I see is:

Unable to load /media/terabyte/games/steam/steam/steamapps/common/Portal/bin/filesystem_steam.so
@trinitronx

This comment has been minimized.

Show comment
Hide comment
@trinitronx

trinitronx Dec 3, 2017

Ok, bug definitely confirmed!

Just tried moving files for Portal over to an ext4 volume instead:

mkdir ~/.steam-xfs-64bit-bugtest/
rsync -av /media/terabyte/games/steam/steam/steamapps/common/Portal ~/.steam-xfs-64bit-bugtest/
ln -s ~/.steam-xfs-64bit-bugtest/Portal   /media/terabyte/games/steam/steam/steamapps/common/Portal

Launching game now works using this workaround! So this still appears to be an issue. Also tested Half Life 2. It probably affects these at least:

$ find /media/terabyte/games/steam/steam/steamapps/common/ -iname 'hl2_linux' | xargs -I{} dirname '{}' | xargs -I{} basename '{}' 
GarrysMod
Half-Life 2
Half-Life 1 Source Deathmatch
Half-Life 2 Deathmatch
Counter-Strike Source
Day of Defeat Source
Team Fortress 2
Portal

Trying to launch Half-Life 1 gives a different error: COM_LoadFile: not enough space for game.tga

trinitronx commented Dec 3, 2017

Ok, bug definitely confirmed!

Just tried moving files for Portal over to an ext4 volume instead:

mkdir ~/.steam-xfs-64bit-bugtest/
rsync -av /media/terabyte/games/steam/steam/steamapps/common/Portal ~/.steam-xfs-64bit-bugtest/
ln -s ~/.steam-xfs-64bit-bugtest/Portal   /media/terabyte/games/steam/steam/steamapps/common/Portal

Launching game now works using this workaround! So this still appears to be an issue. Also tested Half Life 2. It probably affects these at least:

$ find /media/terabyte/games/steam/steam/steamapps/common/ -iname 'hl2_linux' | xargs -I{} dirname '{}' | xargs -I{} basename '{}' 
GarrysMod
Half-Life 2
Half-Life 1 Source Deathmatch
Half-Life 2 Deathmatch
Counter-Strike Source
Day of Defeat Source
Team Fortress 2
Portal

Trying to launch Half-Life 1 gives a different error: COM_LoadFile: not enough space for game.tga

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment