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 prints "flock (FILE) LOCK_SH failed. errno = 38" errors for each the game that was moved to the external disk #10829

Open
lufia opened this issue Apr 27, 2024 · 8 comments

Comments

@lufia
Copy link

lufia commented Apr 27, 2024

Your system information

  • Steam client version (build number or date): 1709846872
  • Distribution (e.g. Ubuntu): Flatpak
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs:
steamwebhelper.sh[127]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/lufia/.var/appcom.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/steam-runtime-sniper
flock /run/user/60331/doc/f9ec6bc3/Steam/libraryfolder.vdf LOCK_SH failed. errno = 38
CAppInfoCacheReadFromDiskThread took 40 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 224
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
flock /run/user/60331/doc/f9ec6bc3/Steam/libraryfolder.vdf LOCK_SH failed. errno = 38
flock /run/user/60331/doc/f9ec6bc3/Steam/steamapps/appmanifest_xxx.acf LOCK_SH failed. errno = 38
flock /run/user/60331/doc/f9ec6bc3/Steam/libraryfolder.vdf LOCK_SH failed. errno = 38
BRefreshApplicationsInLibrary 1: 0ms

(Steam client is launched here, but all game stored on my external disk are not detected.)
  • GPU: AMD

Please describe your issue in as much detail as possible:

My host have an external USB SSD that usually mounted on /run/media/lufia/games.

A few days ago, because my laptop's storage is almost full, I moved large games by Steam > Settings > Storage tool.

After Steam client was restarted I noticed that Steam does not recognize the games I moved to external USB SSD; they are not installed.
Also Steam client can't install new game I bought to the external USB SSD.
Both these two cases above Steam client prints the same errors "flock (FILE) LOCK_SH failed. errno = 38"

(FILE) is such as:

  • /run/user/60331/doc/f9ec6bc3/Steam/libraryfolder.vdf
  • /run/user/60331/doc/f9ec6bc3/Steam/appmanifest_xxxx.acf
  • etc.

Flatpak's permissions

$ flatpak permissions
Table      Object              App                     Permissions                  Data
gnome      shortcuts-inhibitor qemu.desktop            DENIED                       []
background background          com.valvesoftware.Steam yes                          0x00
documents  f9ec6bc3            com.valvesoftware.Steam read,write,grant-permissions (b'/run/media/lufia/games/Steam', 76, 257, 4)

I have tried

I have tried to get shared lock on the host directly, it worked:

$ cd /run/media/lufia/games/Steam
$ flock -s libraryfolder.vdf ls
libraryfolder.vdf  steamapps

I also tried to get shared lock within flatpak, it failed:

$ flatpak run --command=bash com.valvesoftware.Steam
$ cd /run/user/60331/doc/f9ec6bc3/Steam
$ flock -s libraryfolder.vdf ls
flock: libraryfolder.vdf: Function not implemented

Steps for reproducing this issue:

  1. Install com.valvesoftware.Steam
  2. Attach an external storage to the Linux box
  3. Move one or more games with Steam client
  4. Restart Steam client
@kisak-valve
Copy link
Member

Hello @lufia, your symptoms resemble the discussion on #9776. Please give that issue report a read and see if it's relevant to you.

@lufia
Copy link
Author

lufia commented Apr 27, 2024

Hi @kisak-valve

I had read that issue you mentioned, I think that issue is very similar to this.
However, I couldn't understand what I should do to fix this because that's author commented:

I'm not sure what did it to be exact...

I checked mounts

$ grep /run/user /proc/$(pidof -s steam)/mounts
tmpfs /run/user/60331 tmpfs rw,nosuid,nodev,relatime,size=3255252k,nr_inodes=813813,mode=700,uid=60331,gid=60331,inode64 0 0

$ grep /doc /proc/$(pidof -s steam)/mounts
portal /run/flatpak/doc fuse.portal rw,nosuid,nodev,relatime,user_id=60331,group_id=60331 0 0

@lufia
Copy link
Author

lufia commented Apr 28, 2024

Today I noticed that /run/user/60331/doc is symbolic link refers to /run/flatpak/doc.

Therefore, I now suspect XDG Desktop Portal wouldn't implement flock operation yet if the error message is correct.

Current versions in my Arch Linux box:

  • flatpak 1:1.15.8-1
  • xdg-desktop-portal 1.18.4-1
  • xdg-desktop-portal-gnome 46.1-1

@lufia
Copy link
Author

lufia commented Apr 29, 2024

@kisak-valve

I'm not sure whether it will be merged or not, I created a PR to xdg-desktop-portal repository to merge a patch that is to fix this issue.
flatpak/xdg-desktop-portal#1353

But, the patch would add only non-blocking operations of flock(2) because blocking ops could block entire xdg-document-portal filesystem.

I have a question: Steam client might involve flock(2) with blocking operation?

For now, Steam works well with an external drive.

@wiiznokes
Copy link

wiiznokes commented Jul 4, 2024

I also have this issue on Fedora 40, Gnome 46, steam version: 1718904662

Stream is installed via flatpak. I want to install a game on a separate SSD. I try to give the permission using flatsteal, using the filesystem section, as mentioned in the issue. Steam is able to write some folder and file in this directory, but as soon as i start to install the game, it give me the error.

@bdols
Copy link

bdols commented Jul 20, 2024

It wasn't clear what the workaround was in #9776
but I was able to workaround it with flatpak override --user com.valvesoftware.Steam --filesystem=/var/mnt/games and I'm able to install games to a second drive mount. I needed to exit out of steam and start it again after setting that override. I'm also running a FC40 based OS.

@wiiznokes
Copy link

I personally could install my game with KDE, so I think it's a gnome specific issue

@Dutt-A
Copy link

Dutt-A commented Jul 23, 2024

I am having this exact same issue on Fedora 40 Sway edition. I hope your fix can eventually make its way downstream so I can download it on Fedora.

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

5 participants