FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.76k stars 406 forks source link

[0.10.4] CTD when uploading a mod thumbnail #3370

Closed CurePindal closed 4 years ago

CurePindal commented 4 years ago

Trying to upload a thumbnail picture for my published mod and the client always crashes when I select the picture, because its "used by another process". Expected: Upload a copy. Shouldnt be bothered that its opened in Paint. At least not crash.

`Barotrauma Client crash report (generated on 15.07.2020 20:41:10)

Barotrauma seems to have crashed. Sorry for the inconvenience!

EFAC70B2719BEBECDF0597D16251FCBE

Game version 0.10.4.0 (ReleaseWindows, branch release, revision 20132d25fb) Graphics mode: 1680x1050 (BorderlessWindowed) VSync OFF Language: English Selected content packages: Vanilla 0.9, EK Utilities, Shipwrecks Extended, Wreck competition finalists, EK Armory, EK Utilities 0.10.x Hotfix Level seed: no level loaded Loaded submarine: None Selected screen: Barotrauma.SteamWorkshopScreen SteamManager initialized

System info: Operating system: Microsoft Windows NT 10.0.18363.0 64 bit GPU name: NVIDIA GeForce GTX 1060 6GB Display mode: {Width:1680 Height:1050 Format:Color AspectRatio:1,6} GPU status: Normal

Exception: The process cannot access the file 'C:\SteamLibrary\steamapps\common\Barotrauma\Mods\EK Utilities 0.10.x Hotfix\PreviewImage.png' because it is being used by another process. (System.IO.IOException) Target site: Void CopyFile(System.String, System.String, Boolean) Stack trace: at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite) at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite) at Barotrauma.IO.File.Copy(String src, String dest, Boolean overwrite) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaShared\SharedSource\Utils\SafeIO.cs:line 251 at Barotrauma.SteamWorkshopScreen.OnPreviewImageSelected(GUIImage previewImageElement, String filePath) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\Screens\SteamWorkshopScreen.cs:line 1543 at Barotrauma.SteamWorkshopScreen.<>c__DisplayClass51_0.b8(String file) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\Screens\SteamWorkshopScreen.cs:line 1262 at Barotrauma.FileSelection.<>c.b26_8(GUIButton btn, Object obj) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\GUI\FileSelection.cs:line 292 at Barotrauma.GUIButton.Update(Single deltaTime) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIButton.cs:line 247 at System.Collections.Generic.List1.ForEach(Action1 action) at Barotrauma.GUI.Update(Single deltaTime) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\GUI\GUI.cs:line 1220 at Barotrauma.GameMain.Update(GameTime gameTime) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 990 at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in C:\Users\Joonas\Documents\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656 at Microsoft.Xna.Framework.Game.Tick() in C:\Users\Joonas\Documents\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 504 at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in C:\Users\Joonas\Documents\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 94 at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in C:\Users\Joonas\Documents\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 398 at Microsoft.Xna.Framework.Game.Run() in C:\Users\Joonas\Documents\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 368 at Barotrauma.Program.Main(String[] args) in C:\Users\Joonas\Documents\Barotrauma-development\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 59

Last debug messages: [15.07.2020 20:40:48] Content package load order: Vanilla 0.9 | EK Utilities | Shipwrecks Extended | Wreck competition finalists | EK Armory | EK Utilities 0.10.x Hotfix [15.07.2020 20:40:47] Content package load order: Vanilla 0.9 | EK Utilities | Shipwrecks Extended | Wreck competition finalists | EK Armory [15.07.2020 20:40:39] (Msg) RelayNetWorkStatus: avail=OK config=OK anyrelay=OK (OK) [15.07.2020 20:40:39] (Msg) Ping location: fra=11+1,lux=18+1/14+1,ams=19+1/17+1,par=20+2/20+1,vie=24+2/22+1,lhr=27+2/24+1,waw=32+3/27+1,sto2=37+3/30+1,sto=39+3/30+1,iad=108+10/96+1,sgp=175+17/176+17,gru=237+23/240+1 [15.07.2020 20:40:39] (Msg) Ping measurement completed [15.07.2020 20:40:38] (Msg) Communications with routing cluster 'sto2' restored. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'syd' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'tyo1' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'tyo' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'scl' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'sgp' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'sea' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'man' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'gru' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'lim' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'hkg' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'jnb' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'maa' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'okc' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'bom' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'eat' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'lax' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'sto' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'waw' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'dxb' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'ord' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'vie' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'atl' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'iad' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'mad' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'lhr' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'par' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'lux' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'ams' established. [15.07.2020 20:40:32] (Verbose) Communications with routing cluster 'fra' established. [15.07.2020 20:40:32] (Msg) RelayNetWorkStatus: avail=Attempting config=OK anyrelay=Attempting (Performing ping measurement) [15.07.2020 20:40:32] (Msg) Performing ping measurement [15.07.2020 20:40:32] (Msg) Got SDR network config. Loaded revision 276 OK [15.07.2020 20:40:32] Overriding the level generation parameters and biomes with 'Mods/Wreck competition finalists/LevelGenerationParameters.xml' [15.07.2020 20:40:32] (Warning) SDR network config fetch first attempt failed. HTTP 504. . Trying again. [15.07.2020 20:40:28] Loaded languages: English, German, French, Russian, Polish, Brazilian Portuguese, Castilian Spanish, Latinamerican Spanish, Simplified Chinese, Traditional Chinese, Japanese, Turkish, Korean [15.07.2020 20:40:28] Content package load order: Vanilla 0.9 | EK Utilities | EK Utilities 0.10.x Hotfix | Shipwrecks Extended | Wreck competition finalists | EK Armory [15.07.2020 20:40:27] Content package load order: Vanilla 0.9 | EK Utilities | EK Utilities 0.10.x Hotfix | Shipwrecks Extended | Wreck competition finalists | EK Armory [15.07.2020 20:40:25] Attempting to open ALC device "OpenAL Soft on Lautsprecher (High Definition Audio Device)" [15.07.2020 20:40:24] Loaded languages: English, German, French, Russian, Polish, Brazilian Portuguese, Castilian Spanish, Latinamerican Spanish, Simplified Chinese, Traditional Chinese, Japanese, Turkish, Korean [15.07.2020 20:40:24] Loaded languages: English, German, French, Russian, Polish, Brazilian Portuguese, Castilian Spanish, Latinamerican Spanish, Simplified Chinese, Traditional Chinese, Japanese, Turkish, Korean [15.07.2020 20:40:23] Logged in as xxx `

CurePindal commented 4 years ago

Edit: The crash happens when I select a picture within the mod folder - not when I select one elsewhere. Expected: Allows to select a pic in the mod folder itself without problems.

FamiliarBreakfast commented 4 years ago

I'm guessing this occurs because the game already has the image opened in itself, and thus can't open it again since it's in use by another program (itself). I can confirm this does not happen on the Linux version (10.4.0) presumably because Linux is a lot less strict about this sort of thing. Even tried it with the image open in GIMP, as expected nothing changed.

Regalis11 commented 4 years ago

This seems to only occur when reselecting the current preview image. For now you should be able to work around this by not trying to reselect the preview image; as long as the path is unchanged, the updated image will be used even if you don't reselect it.

Fixed in https://github.com/Regalis11/Barotrauma-development/commit/e0f3bf9bca36990139b191241c1edf3a4229e5d8

Rokvach commented 4 years ago

Wasn't able to reproduce, looks to be working correctly. Closing.