protonscr

Steam for linux is deleting files from windows games

steamclosed reviewedSteam client
ValveSoftware/steam-for-linux#546 · opened 2013-01-05 by lekzz · updated 2013-01-09 · 10 comments · github
Llekzz 2013-01-05 github

I use the same steamapps dir for both steam on windows and steam on linux. Steam on linux is removing (almost) all files from a few games:

This happens for example with the walking dead (207610), dungeon defender and a few other mostly newly added games (humble bundle 7).

content_log.txt (20761 = walkig dead):
[2013-01-05 15:45:58] AppID 207610 state changed : 0x00000006 = Update Required,Fully Installed,
[2013-01-05 15:45:59] Scheduler update appID 207610: Priority Last, legacy=no, restore=""
13-01-05 15:46:48] AppID 207610 state changed : 0x00000106 = Update Required,Fully Installed,Update Running,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00010106 = Update Required,Fully Installed,Update Running,Reconfiguring,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000106 = Update Required,Fully Installed,Update Running,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00080106 = Update Required,Fully Installed,Update Running,Preallocating,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000106 = Update Required,Fully Installed,Update Running,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000506 = Update Required,Fully Installed,Update Running,Update Started,
[2013-01-05 15:46:48] Starting update AppID 207610: download 0/0, store 0/0, reuse 0/0, stage 0/0
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00400506 = Update Required,Fully Installed,Update Running,Update Started,Committing,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000506 = Update Required,Fully Installed,Update Running,Update Started,
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000104 = Fully Installed,Update Running,
[2013-01-05 15:46:48] Finished update AppID 207610, mounted depots:
[2013-01-05 15:46:48] AppID 207610 state changed : 0x00000004 = Fully Installed,
[2013-01-05 15:46:48] Scheduler finished appID 207610: removed from schedule

download_log.txt:
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 207610
[2013-01-05 15:46:48]: AppID 207610 is now marked downloading
[2013-01-05 15:46:48]: SetHasAllLocalContent(true) called for 207610
[2013-01-05 15:46:48]: AppID 207610 is now marked not downloading

This is probably the full list of game id's that get deleted from my shared steamapps folder every time the linux version is run:
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 65800
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 72000
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 200900
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 204220
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 207170
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 207610
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 211360
[2013-01-05 15:45:49]: SetHasAllLocalContent(false) called for 214790

MMrSchism 2013-01-06 github

First, please include your system information as requested on https://github.com/ValveSoftware/steam-for-linux ...Moreover, I have to ask, how exactly are you using the same steamapps location?

I am pretty confident that both versions of steam don't use all of the same file types (being Windows uses DX versions and linux uses OpenGL versions).

Mmewt666 2013-01-06 github

I don't think you should be sharing installations. Steam for Linux will probably clear out all files that it does not recognise as belonging to it.

Llekzz 2013-01-06 github

Hardware info:

Processor Information:
    Vendor:  GenuineIntel
    Speed: 2661 Mhz
    8 logical processors
    4 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:
    Debian GNU/Linux 7.0 (wheezy) (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.7-trunk-amd64
    X Server vendor:  The X.Org Foundation
    X Server release:  11204000

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

    Driver Version:  4.3.0 NVIDIA 310.19
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 119 Hz
    VendorID:  0x10de
    DeviceID:  0xe22
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1920 x 1080
    Desktop Resolution: 1920 x 1080
    Primary Display Size: 20.51" x 11.54"  (23.50" diag)
                                            52.1cm x 29.3cm  (59.7cm diag)
    Primary Bus: PCI Express 16x
    Primary VRAM: 1023 MB
    Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
    Audio device: Realtek ALC888

Memory:
    RAM:  5983 Mb

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

Installed software:

Recent Failure Reports:

And it's just symlinking the steamapps dir, nothing fancy.

Seems to work fine so far for all the other games i have (both gcf files and dirs in common), and only the ones listed before get deleted. Steam normally doesn't delete unrecognised files.
But now that i think of it, since it's mostly humble bundle 7 games (which are already available on linux) it might have something to do with those games coming to steam for linux pretty soon and there is already some code in place for those games, but not the actual files yet.
I guess that means we get the walking dead for linux soon, as that seems to be the only non hb7 game that gets deleted, hurray :P

DDarkStarSword 2013-01-07 github

In addition to the below, there IS a legitimate bug here - Steam should avoid altering any games without $PLATFORM in the supported OS list in the CDR.

It also could handle games available on both platforms better - my suggestion to the devs would be to extend the Steam Library Folders functionality to recognise foreign libraries and treat the files in them as belonging to another platform. Then when installing a game that is already in a foreign library, any identical files (which are trivial to identify since the cheksum in the depotcache/ID_timestamp.manifest files will match) can be symlinked from the foreign library.

I feel that I've already commented on the matter of symlinking the SteamApps directory between Windows and Linux on too many occasions, so here's a summary I intend to paste on any related threads I see from now on:

  1. DON'T SYMLINK YOU STEAMAPPS FOLDER! BAD THINGS WILL HAPPEN!
  2. If you have already done so than unfortunately you have more than likely corrupted your game library. You may get errors when trying to launch some of the games from one OS, and some games may have been entirely deleted -- even games that are not on Linux.
  3. At this point you should be using ls -ltr and find -newer to work out which games may have been corrupted and either restoring them from backups or using Steam's verify integrity of game cache to redownload any corrupt/deleted files. My script announced here may be of some help to find missing files (it will not find corrupt files) in batch: http://steamcommunity.com/app/221410/discussions/0/846941710185740762/
  4. If you would like more explanation, please refer to my posts in the following threads:
    http://steamcommunity.com/app/221410/discussions/0/882966056426061212/
    http://steamcommunity.com/app/221410/discussions/0/882966056593457599/
    http://steamcommunity.com/app/221410/discussions/0/882964117811583091/
    http://steamcommunity.com/app/221410/discussions/0/882964676304396070/
  5. If you absolutely must save space, you might instead try using rdfind to link only the identical files together instead of linking the entire SteamApps directory. PLEASE NOTE THAT I HAVE NOT YET TESTED THIS AND SUSPECT THAT THERE MAY BE ISSUES WHEN GAMES ARE UPDATED (but they are unlikely to be as serious as the above corruption issue).

EDIT: Made points 2 & 3 a bit more helpful.

Llekzz 2013-01-07 github

Thanks for the info. I figured it wasn't supported but as you already noted yourself that's not what this bug report is about.

I would just like to add that there is a checksum system that can notice the corruption and redownload the overwriten files to fix the game installation, it's just not started automaticly. Verify game files or something. Without this function i wouldn't even have tried.

Ggdrewb-valve maintainer 2013-01-08 github

Can you clarify what the bug report is about, if it isn't about sharing a single directory between different versions of Steam?

Jjohndrinkwater 2013-01-08 github

Following on from #123, maybe this should be a feature request to change the readme for a warning not to reuse Steam installs from your other OS.

Ggdrewb-valve maintainer 2013-01-08 github

I'll pass the readme suggestion on, thanks.

DDarkStarSword 2013-01-09 github

I think it's a very good idea to add this to the readme, but I think the main point of this report (at least, that I took from it) is to prevent steam trying to "update" games that are not available for the current platform according to the CDR - if only to limit the potential damage when someone inevitably ignores the advice in the readme.

In addition to the games that the OP mentioned, I can confirm Assassins Creed 2 and Borderlands 2 as two titles that Steam for Linux completely deleted when I tried symlinking SteamApps from my windows install to Linux.

Ffrankc-valve maintainer 2013-01-09 github

I've added a bullet item to the release notes (under the Installation section in RelNotes.md) that addresses this.

Nothing extracted yet.