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

Crash in GetDisguisedSprites #4457

Closed itchyOwl closed 3 years ago

itchyOwl commented 3 years ago

Barotrauma Client crash report (generated on 12/9/2020 6:03:12 PM)

Barotrauma seems to have crashed. Sorry for the inconvenience!

C30AA15F725E6EC3BD34659472EB3B85

Game version 0.11.0.9 (ReleaseWindows, branch release, revision c60afcc03b) Graphics mode: 1920x1080 (BorderlessWindowed) VSync ON Language: English Selected content packages: Vanilla 0.9 Level seed: Begorot Loaded submarine: Typhon2 (F473E3C6C613CE39C67EC1D0CD6B6D0E) Selected screen: Barotrauma.GameScreen SteamManager initialized Client (Round had started)

System info: Operating system: Microsoft Windows NT 10.0.19041.0 64 bit GPU name: NVIDIA GeForce GTX 1060 3GB Display mode: {Width:1920 Height:1080 Format:Color AspectRatio:1.7777778} GPU status: Normal

Exception: Sequence contains no matching element (System.InvalidOperationException) Target site: Void ThrowNoMatchException() Stack trace: at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate) at Barotrauma.CharacterInfo.GetDisguisedSprites(IdCard idCard) in \Barotrauma\BarotraumaClient\ClientSource\Characters\CharacterInfo.cs:line 194 at Barotrauma.CharacterInfo.CheckDisguiseStatus(Boolean handleBuff, IdCard idCard) in \Barotrauma\BarotraumaShared\SharedSource\Characters\CharacterInfo.cs:line 273 at Barotrauma.Items.Components.IdCard.Equip(Character character) in \Barotrauma\BarotraumaShared\SharedSource\Items\Components\Holdable\IdCard.cs:line 46 at Barotrauma.Item.Equip(Character character) in \Barotrauma\BarotraumaShared\SharedSource\Items\Item.cs:line 2250 at Barotrauma.CharacterInventory.TryPutItem(Item item, Character user, List`1 allowedSlots, Boolean createNetworkEvent) in \Barotrauma\BarotraumaShared\SharedSource\Items\CharacterInventory.cs:line 246 at Barotrauma.CharacterInventory.TryPutItem(Item item, Int32 index, Boolean allowSwapping, Boolean allowCombine, Character user, Boolean createNetworkEvent) in \Barotrauma\BarotraumaShared\SharedSource\Items\CharacterInventory.cs:line 285 at Barotrauma.Inventory.TrySwapping(Int32 index, Item item, Character user, Boolean createNetworkEvent) in \Barotrauma\BarotraumaShared\SharedSource\Items\Inventory.cs:line 320 at Barotrauma.Inventory.TryPutItem(Item item, Int32 i, Boolean allowSwapping, Boolean allowCombine, Character user, Boolean createNetworkEvent) in \Barotrauma\BarotraumaShared\SharedSource\Items\Inventory.cs:line 152 at Barotrauma.CharacterInventory.TryPutItem(Item item, Int32 index, Boolean allowSwapping, Boolean allowCombine, Character user, Boolean createNetworkEvent) in \Barotrauma\BarotraumaShared\SharedSource\Items\CharacterInventory.cs:line 299 at Barotrauma.Inventory.UpdateDragging() in \Barotrauma\BarotraumaClient\ClientSource\Items\Inventory.cs:line 1093 at Barotrauma.CharacterHUD.Update(Single deltaTime, Character character, Camera cam) in \Barotrauma\BarotraumaClient\ClientSource\Characters\CharacterHUD.cs:line 158 at Barotrauma.Character.UpdateControlled(Single deltaTime, Camera cam) in \Barotrauma\BarotraumaClient\ClientSource\Characters\Character.cs:line 338 at Barotrauma.Character.Update(Single deltaTime, Camera cam) in \Barotrauma\BarotraumaShared\SharedSource\Characters\Character.cs:line 2435 at Barotrauma.Character.UpdateAll(Single deltaTime, Camera cam) in \Barotrauma\BarotraumaShared\SharedSource\Characters\Character.cs:line 2318 at Barotrauma.GameScreen.Update(Double deltaTime) in \Barotrauma\BarotraumaShared\SharedSource\Screens\GameScreen.cs:line 183 at Barotrauma.GameMain.Update(GameTime gameTime) in \Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 924 at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656 at Microsoft.Xna.Framework.Game.Tick() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 504 at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 94 at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 398 at Microsoft.Xna.Framework.Game.Run() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 368 at Barotrauma.Program.Main(String[] args) in \Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 59

Last debug messages: [12/9/2020 5:46:49 PM] Unknown_User_001 [12/9/2020 5:46:49 PM] VaultBonk [12/9/2020 5:46:47 PM] Unknown_User_001 [12/9/2020 5:46:47 PM] VaultBonk [12/9/2020 5:46:46 PM] Task count: 0 [12/9/2020 5:46:44 PM] Generating an outpost for the start of the level... (Location: Begorot Habitation Outpost, level type: Outpost) [12/9/2020 5:46:34 PM] Unknown_User_001 [12/9/2020 5:46:34 PM] VaultBonk [12/9/2020 5:24:11 PM] Unknown_User_001 [12/9/2020 5:24:11 PM] VaultBonk [12/9/2020 5:24:09 PM] Unknown_User_001 [12/9/2020 5:24:09 PM] VaultBonk [12/9/2020 5:24:06 PM] Task count: 0 [12/9/2020 5:24:04 PM] Generating an outpost for the end of the level... (Location: Vorta, level type: LocationConnection) [12/9/2020 5:23:52 PM] Unknown_User_001 [12/9/2020 5:23:52 PM] VaultBonk [12/9/2020 5:11:15 PM] Unknown_User_001 [12/9/2020 5:11:15 PM] VaultBonk [12/9/2020 5:11:13 PM] Unknown_User_001 [12/9/2020 5:11:13 PM] VaultBonk [12/9/2020 5:11:11 PM] Task count: 0 [12/9/2020 5:10:58 PM] Unknown_User_001 [12/9/2020 5:10:58 PM] VaultBonk [12/9/2020 5:10:19 PM] Unknown_User_001 [12/9/2020 5:10:19 PM] VaultBonk [12/9/2020 5:10:17 PM] Unknown_User_001 [12/9/2020 5:10:17 PM] VaultBonk [12/9/2020 5:10:14 PM] Task count: 0 [12/9/2020 5:10:01 PM] Unknown_User_001 [12/9/2020 5:10:01 PM] VaultBonk [12/9/2020 5:10:01 PM] WARNING: Could not determine reputation change for faction "Children of the Honkmother" (faction was not present at the start of the round). [12/9/2020 5:10:01 PM] WARNING: Could not determine reputation change for faction "The Church of Husk" (faction was not present at the start of the round). [12/9/2020 5:10:01 PM] WARNING: Could not determine reputation change for faction "Jovian Separatists" (faction was not present at the start of the round). [12/9/2020 5:10:01 PM] WARNING: Could not determine reputation change for faction "Europa Coalition" (faction was not present at the start of the round). [12/9/2020 4:35:46 PM] Unknown_User_001 [12/9/2020 4:35:46 PM] VaultBonk [12/9/2020 4:35:37 PM] Unknown_User_001 [12/9/2020 4:35:37 PM] VaultBonk [12/9/2020 4:35:34 PM] Task count: 0 [12/9/2020 4:29:07 PM] VaultBonk [12/9/2020 4:29:07 PM] WARNING: Could not determine reputation change for faction "Children of the Honkmother" (faction was not present at the start of the round). [12/9/2020 4:29:07 PM] WARNING: Could not determine reputation change for faction "The Church of Husk" (faction was not present at the start of the round). [12/9/2020 4:29:07 PM] WARNING: Could not determine reputation change for faction "Jovian Separatists" (faction was not present at the start of the round). [12/9/2020 4:29:07 PM] WARNING: Could not determine reputation change for faction "Europa Coalition" (faction was not present at the start of the round). [12/9/2020 4:28:21 PM] Error in SerializableProperty.TrySetValue {Sequence contains no matching element} at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate) at Barotrauma.CharacterInfo.GetDisguisedSprites(IdCard idCard) in \Barotrauma\BarotraumaClient\ClientSource\Characters\CharacterInfo.cs:line 194 at Barotrauma.CharacterInfo.CheckDisguiseStatus(Boolean handleBuff, IdCard idCard) in \Barotrauma\BarotraumaShared\SharedSource\Characters\CharacterInfo.cs:line 322 at Barotrauma.SerializableProperty.TrySetValueWithoutReflection(Object parentObject, Object value) in \Barotrauma\BarotraumaShared\SharedSource\Serialization\SerializableProperty.cs:line 553 at Barotrauma.SerializableProperty.TrySetValue(Object parentObject, Boolean value) in \Barotrauma\BarotraumaShared\SharedSource\Serialization\SerializableProperty.cs:line 379 [12/9/2020 4:28:13 PM] VaultBonk [12/9/2020 4:28:10 PM] Task count: 0 [12/9/2020 4:27:45 PM] Lobby created! [12/9/2020 4:27:12 PM] (Msg) SDR RelayNetworkStatus: avail=OK config=OK anyrelay=OK (OK) [12/9/2020 4:27:12 PM] (Msg) Ping location: sea=20+2,eat=26+2/25+2,lax=45+4/44+2,okc=54+5,ord=56+5,atl=67+6,iad=74+7/75+5,tyo=107+10,tyo1=126+12/107+10,fra=162+16/159+2,sgp=226+22/188+10,gru=189+18/197+6 [12/9/2020 4:27:12 PM] (Msg) Ping measurement completed [12/9/2020 4:27:11 PM] (Debug) Destroying relay 'sof#1 (139.45.193.10:27015)' because initial_ping_timeout [12/9/2020 4:27:08 PM] (Debug) Destroying relay 'sof#2 (139.45.193.10:27016)' because initial_ping_timeout [12/9/2020 4:27:05 PM] (Debug) Destroying relay 'sof#5 (139.45.193.10:27019)' because initial_ping_timeout [12/9/2020 4:27:03 PM] (Debug) Destroying relay 'sof#4 (139.45.193.10:27018)' because initial_ping_timeout [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'syd' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'sgp' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'waw' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'vie' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'sto2' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'sto' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'maa' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'tyo1' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'jnb' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'tyo' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'lim' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'scl' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'bom' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'dxb' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'mad' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'lux' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'par' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'lhr' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'sea' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'gru' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'hkg' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'fra' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'ord' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'okc' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'ams' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'lax' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'iad' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'atl' established. [12/9/2020 4:27:00 PM] (Verbose) Communications with routing cluster 'eat' established. [12/9/2020 4:27:00 PM] (Msg) SDR RelayNetworkStatus: avail=Attempting config=OK anyrelay=Attempting (Performing ping measurement) [12/9/2020 4:27:00 PM] (Msg) Performing ping measurement [12/9/2020 4:27:00 PM] (Msg) Got SDR network config. Loaded revision 285 OK [12/9/2020 4:26:54 PM] Attempting to open ALC device "OpenAL Soft on Headphones (Arctis 5 Game)" [12/9/2020 4:26:53 PM] Loaded languages: English, German, French, Russian, Polish, Brazilian Portuguese, Castilian Spanish, Latinamerican Spanish, Simplified Chinese, Traditional Chinese, Japanese, Turkish, Korean [12/9/2020 4:26:53 PM] Loaded languages: English, German, French, Russian, Polish, Brazilian Portuguese, Castilian Spanish, Latinamerican Spanish, Simplified Chinese, Traditional Chinese, Japanese, Turkish, Korean [12/9/2020 4:26:52 PM] Logged in as VaultBonk (SteamID STEAM_1:1:113201694)

itchyOwl commented 3 years ago

The crash should be handled in Regalis11/Barotrauma-development@d21619c, ~but there could be something else wrong here, as it's apparently caused by id cards with empty tags, which shouldn't ever be the case in vanilla idcards (which the player must have used, since there's no mods loaded).~ Could you @EdusFF check it out?

Edit: It could be the case that an idcard doesn't have any "jobid" tags, which would crash there. However, I still couldn't reproduce it. Equipping an empty idcard (spawned with a console command) doesn't trigger that part of the code. So there's probably an idcard without a job definition somewhere, which could be the case if the owner didn't have any job. But should that actually ever be the case?

itchyOwl commented 3 years ago

From #4454:

Description Whenever I would enter being disguised an error would appear in console and it later crashed.

Steps To Reproduce Wear someone elses ID and put on mask or suit and for the crash I swapped someone else's ID from my hotbar onto mine and it crashed. The crash was in a outpost while the errors were on a mission. I don't know if the crash with happened again I only did it once by accident.

EdusFF commented 3 years ago

Added some empty / length 0 checks to the tags in: https://github.com/Regalis11/Barotrauma-development/commit/f13a5252e82db216c75717b56e7574cb6dabf024

Rokvach commented 3 years ago

Tested, working correctly. Closing.