ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.23k stars 174 forks source link

Updating Games/Moving games to NVMe Disk fails with I/O Error #7641

Open syss opened 3 years ago

syss commented 3 years ago

Your system information

Please describe your issue in as much detail as possible:

Having main lib on NVMe disk. Updating Game on nvme fails with I/O Error. Moving game from sata to nvme fails with I/O Error. moving game from sata to sata succeeds. installing game on nvme from scratch works

all the operations above work with Kernel 5.4.89

Steps for reproducing this issue:

  1. Install Steam from scratch on nvme
  2. add library on sata drive and install game
  3. move game from sata library to library which is on nvme

I found out about this, that with the new kernel i always get I/O Errors when an update for csgo is downloaded. Trying out the obvious things like clear DL chache, change DL region did not work. Beta client is also not working, i am getting the I/O Error.

Only after going back to LTS Kernel 5.4. i was able to move games from SATA disks to NVMe disks.

kisak-valve commented 3 years ago

Hello @syss, this reads like a kernel regression of some kind. It might be worthwhile to also mention this issue on the kernel.org bug tracker if it hasn't been already. For clarity, what filesystems are being used on both partitions?

syss commented 3 years ago

Hi @kisak-valve , thank you for looking into this. I will mention it there, thank you for pointing out!

NVMe: ext4 Sata1: ext4 Sata2: btrfs

had the issues when moving files from either of the sata drives to the nvme drive

syss commented 3 years ago

Starting the steam client via the console gave me the following output while moving a game from one disk to another:

[0423/133937.423896:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
pressure-vessel-adverb[29762]: E: Failed to execute child process "/opt/data4/steamapps/common/Proton 6.3/proton" (No such file or directory)
pressure-vessel-adverb[29761]: E: Failed to execute child process "/opt/data4/steamapps/common/Proton 6.3/proton" (No such file or directory)
pressure-vessel-adverb[30285]: E: Failed to execute child process "/opt/data4/steamapps/common/Proton 6.3/proton" (No such file or directory)
src/clientdll/installscript_posix.cpp (357) : Assertion Failed: strCommonRedistForeignInstallPath != ""
src/clientdll/installscript_posix.cpp (357) : Assertion Failed: strCommonRedistForeignInstallPath != ""
Installing breakpad exception handler for appid(steam)/version(1618256785)
assert_20210423133948_41.dmp[30364]: Uploading dump (out-of-process)
/tmp/dumps/assert_20210423133948_41.dmp
src/clientdll/installscript_posix.cpp (357) : Assertion Failed: strCommonRedistForeignInstallPath != ""
src/clientdll/installscript_posix.cpp (357) : Assertion Failed: strCommonRedistForeignInstallPath != ""
src/clientdll/installscript_posix.cpp (357) : Assertion Failed: strCommonRedistForeignInstallPath != ""

to me it seems that the path is not properly escaped as it contains a space

syss@workingclass:~$ ls -ahl "/opt/data4/steamapps/common/Proton 6.3/proton"
-rwxr-xr-x 1 syss syss 42K Apr  3 12:38 '/opt/data4/steamapps/common/Proton 6.3/proton'

without quotes

syss@workingclass:~$ ls -ahl /opt/data4/steamapps/common/Proton 6.3/proton
ls: cannot access '/opt/data4/steamapps/common/Proton': No such file or directory
ls: cannot access '6.3/proton': No such file or directory

could it be that either the path is not quotes and not escaped?