Gleenus Posted May 3, 2021 Share Posted May 3, 2021 (Note: I'm re-posting this bug as a Topic because I think it could occur to other users, and the damage is irreparable ) Hi everyone Yesterday I was updating a mod for Don't Starve Together using Don't Starve Mod Tools and... After I click "Publish!" I lost 99% of all files from my computer The update I was doing was to change a Mod Picture................ I lost my personal pictures, my programming projects and all my stuff from my Ph. D. that I have to present in 3 weeks... (Guys, really, I'm in panic! These things should not happen to Ph. D. students!) Well, since 99% of the files in my computer are gone, I decided to be sure of what is deleting my files So here is the steps I made: Note: I already have published several mods, so, I'm pretty sure I did nothing wrong 1: I'm using Linux (Ubuntu 20.04) 2: Open Steam 3: Open Don't Starve Mod Tools 4: Choose Don't Starve Together in the Box 5: Choose a Mod that you want to update and click Edit 6: Now check the box "Update Preview Images" 7: For the preview Image, choose a GIF file (in my case, a 1.2MB file) 8: Click "Publish!" After you doing that, you will notice that the Don't Starve Mod Tools will get stuck, which is very common, usually it takes a long time to update mods BUT if you check your computer files, you will notice that they are going to be erased and destroyed (you can not recover with any recovery tools, its like they are overwritten with zeros) I repeated this process 3 times just to be sure It is Don't Starve Mod Tools fault, so I posted it here Please, consider to take a look on this... I lost everything! As you can see from this log output, DS Mod Tools is trying to delete EVERYTHING from root It just can't do it from lack of permition But when it reaches my Home folder, it erases all files c^CExecuteSteamURL: "steam://rungameid/245850" Could not connect to X session manager: None of the authentication protocols specified are supported Could not connect to X session manager: None of the authentication protocols specified are supported GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to ProcessingInstallScript with "" GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to SynchronizingCloud with "" GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to SiteLicenseSeatCheckout with "" GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to CreatingProcess with "" GameAction [AppID 245850, ActionID 2] : LaunchApp waiting for user response to CreatingProcess "" GameAction [AppID 245850, ActionID 2] : LaunchApp continues with user response "CreatingProcess" Game update: AppID 245850 "", ProcID 87086, IP 0.0.0.0:0 Gtk-Message: 07:49:38.258: Failed to load module "gail" Gtk-Message: 07:49:38.258: Failed to load module "atk-bridge" (ModUploader:87088): Gtk-WARNING **: 07:49:38.262: Unable to locate theme engine in module_path: "adwaita", /usr/share/themes/Yaru/gtk-2.0/main.rc:775: error: unexpected identifier 'direction', expected character '}' (ModUploader:87088): Gtk-WARNING **: 07:49:38.265: Unable to locate theme engine in module_path: "adwaita", /usr/share/themes/Yaru/gtk-2.0/hacks.rc:28: error: invalid string constant "normal_entry", expected valid string constant 07:49:38: Logging to [/home/gustavo/.local/share/DontStarveModUploader/ModUploader.log] 07:49:38: UploaderApp::OnInit() Game update: AppID 245850 "", ProcID 87088, IP 0.0.0.0:0 Starting app 245850 RecordSteamInterfaceCreation (PID 87088): SteamUtils009 / Utils >>> Adding process 87086 for game ID 245850 Setting breakpad minidump AppID = 245850 GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to WaitingGameWindow with "" RecordSteamInterfaceCreation (PID 87088): SteamUser019 / User Steam_SetMinidumpSteamID: Caching Steam ID: 76561198039069920 [API loaded no] RecordSteamInterfaceCreation (PID 87088): SteamUser019 / User RecordSteamInterfaceCreation (PID 87088): SteamFriends015 / Friends RecordSteamInterfaceCreation (PID 87088): SteamUtils009 / Utils RecordSteamInterfaceCreation (PID 87088): SteamMatchMaking009 / Matchmaking RecordSteamInterfaceCreation (PID 87088): SteamMatchMakingServers002 / MatchmakingServers RecordSteamInterfaceCreation (PID 87088): STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats RecordSteamInterfaceCreation (PID 87088): STEAMAPPS_INTERFACE_VERSION008 / Apps RecordSteamInterfaceCreation (PID 87088): SteamNetworking005 / Networking RecordSteamInterfaceCreation (PID 87088): STEAMREMOTESTORAGE_INTERFACE_VERSION014 / RemoteStorage RecordSteamInterfaceCreation (PID 87088): STEAMSCREENSHOTS_INTERFACE_VERSION003 / Screenshots RecordSteamInterfaceCreation (PID 87088): STEAMHTTP_INTERFACE_VERSION002 / HTTP RecordSteamInterfaceCreation (PID 87088): SteamController006 / Controller RecordSteamInterfaceCreation (PID 87088): STEAMUGC_INTERFACE_VERSION010 / UGC RecordSteamInterfaceCreation (PID 87088): STEAMAPPLIST_INTERFACE_VERSION001 / AppList RecordSteamInterfaceCreation (PID 87088): STEAMMUSIC_INTERFACE_VERSION001 / Music RecordSteamInterfaceCreation (PID 87088): STEAMMUSICREMOTE_INTERFACE_VERSION001 / MusicRemote RecordSteamInterfaceCreation (PID 87088): STEAMHTMLSURFACE_INTERFACE_VERSION_004 / HTMLSurface RecordSteamInterfaceCreation (PID 87088): STEAMINVENTORY_INTERFACE_V002 / Inventory RecordSteamInterfaceCreation (PID 87088): STEAMVIDEO_INTERFACE_V002 / Video RecordSteamInterfaceCreation (PID 87088): STEAMPARENTALSETTINGS_INTERFACE_VERSION001 / ParentalSettings GameAction [AppID 245850, ActionID 2] : LaunchApp changed task to Completed with "" 07:49:38: RefreshPublishedModInfo 07:49:38: EnumerateUserPublishedFiles(1) 07:49:38: Progress: Updating Mod List... RecordSteamInterfaceCreation (PID 87088): SteamUtils009 / Utils RecordSteamInterfaceCreation (PID 87088): SteamController006 / Controller 07:49:38: OnEnumerateUserPublishedFiles 07:49:38: EResult 1, results 0/0 07:49:38: Complete 07:49:38: EndProgress ok: No mods found 07:49:38: MainFrame::OnRefreshComplete ok: No mods found 07:49:41: RefreshPublishedModInfo 07:49:41: EnumerateUserPublishedFiles(1) 07:49:41: Progress: Updating Mod List... 07:49:41: OnEnumerateUserPublishedFiles 07:49:41: EResult 1, results 24/24 07:49:41: 0x0003C05A, 0x0004EB1A, [Airplane], 0x183de41f7f6e7e13, 0x183de3c8bd20215a, 76561198039069920, 0x60132DA5, 0x6018909A, 0, 0, [all_clients_require_mod,art,item,other,tweak,utility,version:1.01], 0, [mod_publish_data_file.zip], 2719546, 7451911, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Cane Kiting], 0xffffffffffffffff, 0x184de35e697a7693, 76561198039069920, 0x600D81BD, 0x608948A9, 0, 0, [client_only_mod,tweak,utility,version:1.03], 0, [], 24915, 73561, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Catapult Controller], 0x1845e63511a1de2e, 0x1849e5c6a2c4bba9, 76561198039069920, 0x6032D60E, 0x603A30C2, 0, 0, [all_clients_require_mod,art,item,other,tweak,utility,version:1.02], 0, [mod_publish_data_file.zip], 265639, 2919675, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Farm Plant Needs], 0x184de2d945042a64, 0x16cde07d0164c009, 76561198039069920, 0x5FDE0056, 0x6005EB60, 0, 0, [all_clients_require_mod,other,tweak,utility,version:1.04], 0, [mod_publish_data_file.zip], 16643, 102197, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Fire Pyromatic], 0x16c9da6a98b08538, 0x16c9da6a98b088a9, 76561198039069920, 0x5F7F5A37, 0x5F7F5A37, 0, 0, [item,utility,version:1.00,all_clients_require_mod,Other], 0, [mod_publish_data_file.zip], 351017, 6025676, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Fuel-Sharing Ice Flingomatic], 0x1731dbfa57acfae9, 0x16c9dadcc29bc6c8, 76561198039069920, 0x5F84EA92, 0x5F971D56, 0, 0, [server_only_mod,tweak,utility,version:1.03], 0, [mod_publish_data_file.zip], 10427, 5732261, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Gleenus Beta Testing], 0x1705dd8930b9a56b, 0x172ddc4c71a10f36, 76561198039069920, 0x5F9B244F, 0x5FB07833, 3, 0, [all_clients_require_mod,version:0.0902], 0, [mod_publish_data_file.zip], 107711, 10452, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Headless Emote], 0x1705dd6ef5fa0431, 0x172ddc2509d05e2b, 76561198039069920, 0x5F9B0D46, 0x5FAD7550, 0, 0, [all_clients_require_mod,Art,utility,version:1.03], 0, [mod_publish_data_file.zip], 201314, 5336089, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Hydroponics], 0x1485d6d2312d4ebc, 0x11c5d2f27133da85, 76561198039069920, 0x5F05D84D, 0x5F43BCA7, 0, 0, [all_clients_require_mod,item,utility,version:1.01], 0, [mod_publish_data_file.zip], 366811, 446730, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Lightbug Cage], 0x183de41f7f6e17b2, 0x183de3f11641d9b3, 76561198039069920, 0x601705BD, 0x60188E8A, 0, 0, [all_clients_require_mod,art,item,tweak,utility,version:1.04], 0, [mod_publish_data_file.zip], 475949, 2260375, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Loot Pump], 0xffffffffffffffff, 0x1485d6d2313c4095, 76561198039069920, 0x5F4400D2, 0x605F409F, 0, 0, [all_clients_require_mod,item,utility,version:1.10], 0, [], 354393, 2578306, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [More Battle Songs], 0x1841e4a25ec002d3, 0x1665da4ef6a4a358, 76561198039069920, 0x5F7C938E, 0x602118B8, 0, 0, [item,utility,art,tweak,version:1.07,all_clients_require_mod], 0, [mod_publish_data_file.zip], 880336, 122177, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Nightvision for Free (client side)], 0x1849e5a333ad43b4, 0x1701e2428e209e9a, 76561198039069920, 0x5FFB0DF8, 0x603110CF, 0, 0, [client_only_mod,tweak,utility,version:1.01], 0, [mod_publish_data_file.zip], 10467, 1023530, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Pigeons!], 0x1549d952e6c72edf, 0x1549d952e6c61b1e, 76561198039069920, 0x5F6D2894, 0x5F6D2D1C, 0, 0, [all_clients_require_mod,creature,version:1.01], 0, [mod_publish_data_file.zip], 16569, 7799859, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Poop Flingomatic], 0x16d1db12e6ea7cca, 0x1449d5c6a0b505a2, 76561198039069920, 0x5F189D34, 0x5F87BB5E, 0, 0, [all_clients_require_mod,item,version:1.02], 0, [mod_publish_data_file.zip], 344525, 1938062, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Rail Cart], 0xffffffffffffffff, 0x1705ddbee7e9e2ac, 76561198039069920, 0x5FB3097C, 0x60516952, 0, 0, [all_clients_require_mod,art,item,other,tweak,utility,version:1.06], 0, [], 1368791, 1365671, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Rope Bridge], 0xffffffffffffffff, 0x1835e72d952408c3, 76561198039069920, 0x60494396, 0x60516914, 0, 0, [all_clients_require_mod,art,item,tweak,utility,version:1.10], 0, [], 229770, 183675, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Starver Games (Client Side)], 0x16d1e0b09f3ee539, 0x16d1e0b09f3ee60a, 76561198039069920, 0x5FE26CAD, 0x5FE26CAD, 0, 0, [utility,version:0.01,all_clients_require_mod], 0, [mod_publish_data_file.zip], 14419, 10452, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Thermal Stone Alert], 0x184de2d944ae852f, 0x184de2d944ae85d8, 76561198039069920, 0x60046D95, 0x60046D95, 0, 0, [utility,tweak,other,version:1.00,client_only_mod], 0, [mod_publish_data_file.zip], 9288, 59253, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Toggleable Miner Hat], 0x1841e486c2cac486, 0x1731db91a5ca5183, 76561198039069920, 0x5F903EE5, 0x60200B04, 0, 0, [item,server_only_mod,tweak,utility,version:1.01], 0, [mod_publish_data_file.zip], 10183, 43389, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [TUtil], 0xffffffffffffffff, 0x183de3f115f3b75d, 76561198039069920, 0x6015B933, 0x605CD0EE, 0, 0, [all_clients_require_mod,version:0.05], 0, [], 1650453, 10452, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Twerk Emote], 0x1731dbdd31bc96db, 0x1731dbdd319d13b2, 76561198039069920, 0x5F94606B, 0x5F94E675, 0, 0, [all_clients_require_mod,Art,tweak,utility,version:1.01], 0, [mod_publish_data_file.zip], 135532, 473045, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [Vacuum Bag], 0xffffffffffffffff, 0x1889eb8bcf8d7614, 76561198039069920, 0x608F5077, 0x608F5077, 0, 0, [all_clients_require_mod,item,version:1.00], 0, [], 189056, 600545, [], 0 07:49:41: 0x0003C05A, 0x0004EB1A, [[PT-BR] Criando seu primeiro Mod: Ice Maker (TUTORIAL)], 0x16cddf77593ceaee, 0x16cddf77593cec74, 76561198039069920, 0x5FCEA113, 0x5FCEA113, 0, 0, [item,utility,tutorial,version:1.00,all_clients_require_mod], 0, [mod_publish_data_file.zip], 145262, 78111, [], 0 07:49:41: Complete 07:49:41: EndProgress ok: Mod listing complete. 07:49:41: MainFrame::OnRefreshComplete ok: Mod listing complete. (ModUploader:87088): Gtk-WARNING **: 07:49:47.612: Error loading theme icon 'edit-find' for stock: Fatal error reading PNG image file: bad parameters to zlib (ModUploader:87088): Gtk-WARNING **: 07:49:47.618: Error loading theme icon 'edit-find' for stock: Fatal error reading PNG image file: bad parameters to zlib (ModUploader:87088): Gtk-WARNING **: 07:49:50.182: Error loading theme icon 'folder' for stock: Fatal error reading PNG image file: bad parameters to zlib 07:49:58: Progress: Updating... 07:49:58: UpdateItem 07:49:58: Setting 3 tags... 07:49:58: all_clients_require_mod 07:49:58: item 07:49:58: version:1.00 07:49:58: Progress: Submitting Item Update... 07:49:58: OnUpdateItemResult 07:49:58: Error: File '/boot/grub/fonts/unicode.pf2' couldn't be removed (error 13: Permission denied) 07:49:58: Error: Directory '/boot/grub/fonts' couldn't be deleted (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/luks.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/functional_test.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/msdospart.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/iso9660.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/parttool.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/datetime.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_seed.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/exfctest.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/video_cirrus.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/crypto.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_rmd160.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/cbmemc.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/part_apple.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/minix.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/div.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/boot.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/acpi.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/video_colors.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/minix3.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/load.cfg' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/cryptodisk.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_crc.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/div_test.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_rfc2268.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_twofish.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/mdraid1x.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/efifwsetup.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gcry_tiger.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/jpeg.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/zstd.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/ldm.mod' couldn't be removed (error 13: Permission denied) 07:49:58: Error: File '/boot/grub/x86_64-efi/gfxterm.mod' couldn't be removed (error 13: Permission denied) (There are more thousands of files) 9 3 Link to comment Share on other sites More sharing options...
penguin0616 Posted May 3, 2021 Share Posted May 3, 2021 (edited) The mod tools should not be deleting things.. Why does it try to delete things to begin with? @zarklord_klei Any idea? Edit: @Gleenus Can you post the actual log file as well, instead of this copy/pasted version? Edited May 3, 2021 by penguin0616 Link to comment Share on other sites More sharing options...
Gleenus Posted May 3, 2021 Author Share Posted May 3, 2021 42 minutes ago, penguin0616 said: The mod tools should not be deleting things.. Why does it try to delete things to begin with? @zarklord_klei Any idea? Edit: @Gleenus Can you post the actual log file as well, instead of this copy/pasted version? There is no log file Everything was deleted The copy pasted region is only thing I can recover before it self-delete (I recovered by copying from the terminal) Even the DS Mod Tools was deleted in the process The entire hard disk and all partitions that my user has writing permission And since its one shot, the only way to get it again is to erase my computer one more time I'm trying to work on my Ph.D. But the messages in the console are all like this, and this never finishes Link to comment Share on other sites More sharing options...
Developer zarklord_klei Posted May 3, 2021 Developer Share Posted May 3, 2021 (edited) You either have a bug with the linux temp folder, or its a steam bug. Edit: I realize this may sound heartless and not caring about this issue at hand, which was not my intention, what I should have said was, as this was really what was I was thinking: We'll look into the immediately, my first guess is its a issue with the linux temp folder or its a steam bug, but whatever it is, we'll find the bug and fix it. Edited May 4, 2021 by zarklord_klei 1 Link to comment Share on other sites More sharing options...
Gleenus Posted May 3, 2021 Author Share Posted May 3, 2021 21 minutes ago, zarklord_klei said: You either have a bug with the linux temp folder, or its a steam bug. My temp folder always worked and the steam also But why the Don't Starve Mod Tools uses any kind of remove file function? Why its necessary? If there is at least one "remove file" command in the source code it can cause that If the coder wrote something like "Remove files from '/'+directory" and directory is nil, it would erase the entire computer Since it only happens when I try to replace a mod picture in the Mod Tools, it should be triggering this I never had this problem with the old version of DST Mod Tools Link to comment Share on other sites More sharing options...
Aeglefire Posted May 3, 2021 Share Posted May 3, 2021 Can this be tried on another linux box? To verify the problem reoccurs with the exact same steps to reproduce? Link to comment Share on other sites More sharing options...
Gleenus Posted May 3, 2021 Author Share Posted May 3, 2021 11 minutes ago, Aeglefire said: Can this be tried on another linux box? To verify the problem reoccurs with the exact same steps to reproduce? I don't have any other computer to try this (or time now) I would appreciate if anyone tries that But for don't make any sense for the Don't Starve Mod Tools erase files since its using temp folders like @zarklord_klei told us Maybe if we can see the source code from DS Mod Tools we can map the problem, but I think its not public Link to comment Share on other sites More sharing options...
CarlZalph Posted May 3, 2021 Share Posted May 3, 2021 2 hours ago, zarklord_klei said: You either have a bug with the linux temp folder, or its a steam bug. I poked at the mod update functions and the tool is calling a delete directory function 'wxFileName::Rmdir'. Removing an entire directory without extensive care and checks is supremely bad form, and in this instance just nuked a person's entire drive. It's better to have a lingering folder floating about than to accidentally expunge an entire drive. The OS could easily redirect any directory created and not fail in the return result. The program cannot assume that the directory just made doesn't contain other important files. I'd recommend to definitely look at it closer and please either you or someone else there at Klei make all changes to remove the use of wxFileName::Rmdir by keeping tabs on all files created in some sort of array and deleting those files individually instead. 11 4 Link to comment Share on other sites More sharing options...
Gabovisk Posted May 3, 2021 Share Posted May 3, 2021 Please correct this, it is a very serious mistake! 6 Link to comment Share on other sites More sharing options...
Developer zarklord_klei Posted May 3, 2021 Developer Share Posted May 3, 2021 1 hour ago, CarlZalph said: The program cannot assume that the directory just made doesn't contain other important files. The directory generated is named ugcuploader_<base16repr of the current millisecond> even if you tried to have a clashing name, it would still require incredibly precise timing to actually get the clash, not to mention the directory is created in the Temp folder which is intended for temporary files. Link to comment Share on other sites More sharing options...
CarlZalph Posted May 3, 2021 Share Posted May 3, 2021 (edited) 52 minutes ago, zarklord_klei said: The directory generated is named ugcuploader_<base16repr of the current millisecond> even if you tried to have a clashing name, it would still require incredibly precise timing to actually get the clash, not to mention the directory is created in the Temp folder which is intended for temporary files. The OS can redirect anything you try to make into something else. The point is that you cannot guarantee that what you just made is actually unique and does not contain other files. The OS can and will lie to you under certain settings. Take for example Bedrock Linux. It's a very low level VM to house other distros and merge their capabilities while effectively lying to every single one of them about where files actually are to make it all function. Assuming that the return directory is your unique special freshly made thing is the error. Having a scan of all of the files in the directory before doing the purge is one method of fixing this, or do the safest method of just not deleting an entire directory and deleting the files themselves that the program's creating. Edit: Just to be clear, I'm not assigning blame here. I don't care who or what wrote the program in this fashion and I'm not judging. Under the majority of circumstances the program functions fine, but in this case it didn't. The results were catastrophic to the end user. To prevent this from happening to future users, it should be addressed. Even if it's a highly improbable thing, imagine being the one on the receiving end of this and having all of your files poof because you were trying to make a mod for a game. It sucks to put it bluntly, and I wouldn't wish for it to happen to anyone else. (Backups and restore points besides the point. Keep your valuable data backed up, folks.) The fix of keeping a record of the files generated is rather lightweight and could be banged out in an hour. Let the OS control if the directory should be purged later (you did put it in the temp folder after all). Compare that to the time the OP will need to spend to re-obtain obtainable files and to recreate permanently lost files. Edited May 3, 2021 by CarlZalph 7 4 Link to comment Share on other sites More sharing options...
Gleenus Posted May 3, 2021 Author Share Posted May 3, 2021 1 hour ago, zarklord_klei said: The directory generated is named ugcuploader_<base16repr of the current millisecond> even if you tried to have a clashing name, it would still require incredibly precise timing to actually get the clash, not to mention the directory is created in the Temp folder which is intended for temporary files. Well, reading what you said looks like the thing that happened to me was an "rare event" But you can reproduce it by installing a fresh Ubuntu 20.04 and following the steps Since Ubuntu 20.04 is the latest LTS version of Ubuntu and Ubuntu is a very popular Linux distro, I think the DS Mod Tools code should be changed to avoid these things Like, no one will bring back my files. The damage is permanently done to me At least it should not happen to anyone else DS Mod Tools is the only tool in my 8 years of Linux experience that have done that kind of damage to my computer. 4 1 1 Link to comment Share on other sites More sharing options...
Developer zarklord_klei Posted May 3, 2021 Developer Share Posted May 3, 2021 23 minutes ago, Gleenus said: Well, reading what you said looks like the thing that happened to me was an "rare event" But you can reproduce it by installing a fresh Ubuntu 20.04 and following the steps Since Ubuntu 20.04 is the latest LTS version of Ubuntu and Ubuntu is a very popular Linux distro, I think the DS Mod Tools code should be changed to avoid these things Like, no one will bring back my files. The damage is permanently done to me At least it should not happen to anyone else DS Mod Tools is the only tool in my 8 years of Linux experience that have done that kind of damage to my computer. We found the bug, apparently Ubuntu if given an invalid input to a delete command, it treats the input as the root dir, it was my fault for not properly adding an if check for that invalid input, but the result of that null input is incredibly surprising, and I'm incredibly sorry for the loss of any and all your files. 1 2 Link to comment Share on other sites More sharing options...
CarlZalph Posted May 3, 2021 Share Posted May 3, 2021 12 minutes ago, zarklord_klei said: We found the bug, apparently Ubuntu if given an invalid input to a delete command, it treats the input as the root dir, it was my fault for not properly adding an if check for that invalid input, but the result of that null input is incredibly surprising, and I'm incredibly sorry for the loss of any and all your files. Please, take the time to delete the files it generates directly by name and not apply a bandaid fix that still uses the delete entire directory. 2 Link to comment Share on other sites More sharing options...
Wonderlarr Posted May 3, 2021 Share Posted May 3, 2021 12 minutes ago, zarklord_klei said: We found the bug, apparently Ubuntu if given an invalid input to a delete command, it treats the input as the root dir, it was my fault for not properly adding an if check for that invalid input, but the result of that null input is incredibly surprising, and I'm incredibly sorry for the loss of any and all your files. It's incredibly stupid ubuntu was made that way, why on earth would anyone want that to happen by default? 1 Link to comment Share on other sites More sharing options...
zVince Posted May 3, 2021 Share Posted May 3, 2021 I think it's fair, at least, Klei support to try to recover some important files Link to comment Share on other sites More sharing options...
JoeW Posted May 3, 2021 Share Posted May 3, 2021 I've messaged @Gleenus and if there is any way to recover what was lost, we will do what we can do to help there. We're working on deploying a fix immediately and further review to make sure something like this can't ever happen again. For clarity, this is an extremely rare care that only affects modders on linux but we'll have a fix out ASAP. 1 11 Link to comment Share on other sites More sharing options...
Gleenus Posted May 3, 2021 Author Share Posted May 3, 2021 1 hour ago, JoeW said: I've messaged @Gleenus and if there is any way to recover what was lost, we will do what we can do to help there. We're working on deploying a fix immediately and further review to make sure something like this can't ever happen again. For clarity, this is an extremely rare care that only affects modders on linux but we'll have a fix out ASAP. Thanks @JoeW, but I already gave up from the data, I just don't have time for more recovery process (like at minumim: one week sending the HD for someone, 1 week of analysis and more 1 week for it come back) I spend 6 hours trying to recover it with several tools and all have the same report "The data is corrupt, event if we can see some files, they are corrupted" Now I need to run to try to reproduce my data for my Ph. D. qualification (codes are already running and generating tons of data output) 5 2 1 Link to comment Share on other sites More sharing options...
Developer PeterA Posted May 4, 2021 Developer Share Posted May 4, 2021 Hey all, the patch for the Linux Mod Uploader file deletion issue has been pushed live. All the info that's been provided has been much appreciated and helpful in tracking down the problem and solving it as fast as possible. 7 Link to comment Share on other sites More sharing options...
Gourmand Posted May 4, 2021 Share Posted May 4, 2021 Ph. D in what? Link to comment Share on other sites More sharing options...
Marco BR Posted May 4, 2021 Share Posted May 4, 2021 @Gleenus I am saddened by your lost data But I have to say how much I'm admired for the support and agility that the entire Klei team had in solving this error so that it does not happen again and giving the necessary support...It was incredible, you are awesome, congratulations Klei Link to comment Share on other sites More sharing options...
Gleenus Posted May 4, 2021 Author Share Posted May 4, 2021 8 hours ago, Gourmand said: Ph. D in what? Biological Physics I work with biological cell dynamics simulation (which produce tons of data to the disk) 2 Link to comment Share on other sites More sharing options...
YumoS Posted May 4, 2021 Share Posted May 4, 2021 nothing to do with the main topic but if you guys have any important documents on your pc, always do a backup on a external hard drive or cloud. 1 Link to comment Share on other sites More sharing options...
Gleenus Posted May 5, 2021 Author Share Posted May 5, 2021 7 hours ago, YumoS said: nothing to do with the main topic but if you guys have any important documents on your pc, always do a backup on a external hard drive or cloud. In that case, an external hard drive would be erased if it was plugged Link to comment Share on other sites More sharing options...
Wonderlarr Posted May 5, 2021 Share Posted May 5, 2021 Since it erased from root, @Gleenus is correct. A NAS would be awesome though, or any hard drive not directly mounted to the system. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now