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.77k stars 408 forks source link

Crash during multiplayer game (NullReferenceException in SpamFilter.IsFiltered) #15182

Closed Regalis11 closed 4 days ago

Regalis11 commented 1 week ago

Discussed in https://github.com/FakeFishGames/Barotrauma/discussions/14961

Originally posted by **4-S-H** October 26, 2024 ### Disclaimers - [X] I have searched the issue tracker to check if the issue has already been reported. - [X] My issue happened while using mods. ### What happened? Many players in the server crash at the same time. ### Reproduction steps N/A ### Bug prevalence Just once ### Single player or multiplayer? Multiplayer hosted using a dedicated server ### - _No response_ ### Version v1.6.17.0 (Unto the Breach Update) ### - _No response_ ### Which operating system did you encounter this bug on? Windows ### Relevant error messages and crash reports ```shell Exception: Object reference not set to an instance of an object. (System.NullReferenceException) Target site: Boolean IsFiltered(Barotrauma.Networking.ServerInfo, Barotrauma.SpamServerFilterType, System.String) Stack trace: at Barotrauma.SpamFilter.IsFiltered(ServerInfo info, SpamServerFilterType type, String value) in \Barotrauma\BarotraumaClient\ClientSource\SpamServerFilter.cs:line 51 at Barotrauma.SpamFilter.IsFiltered(ServerInfo info) in \Barotrauma\BarotraumaClient\ClientSource\SpamServerFilter.cs:line 43 at Barotrauma.SpamServerFilter.IsFiltered(ServerInfo info) in \Barotrauma\BarotraumaClient\ClientSource\SpamServerFilter.cs:line 136 at Barotrauma.SpamServerFilters.IsFiltered(ServerInfo info) in \Barotrauma\BarotraumaClient\ClientSource\SpamServerFilter.cs:line 250 at Barotrauma.ServerListScreen.ShouldShowServer(ServerInfo serverInfo) in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 1004 at Barotrauma.ServerListScreen.FilterServers() in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 975 at Barotrauma.ServerListScreen.UpdateServerInfoUI(ServerInfo serverInfo) in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 1734 at Barotrauma.ServerListScreen.AddToServerList(ServerInfo serverInfo, Boolean skipPing) in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 1365 at Barotrauma.ServerListScreen.RefreshServers() in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 1229 at Barotrauma.ServerListScreen.set_selectedTab(TabEnum value) in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 124 at Barotrauma.ServerListScreen.Tab.<>c__DisplayClass5_0.<.ctor>b__0(GUIButton _, Object __) in \Barotrauma\BarotraumaClient\ClientSource\Screens\ServerListScreen\ServerListScreen.cs:line 73 at Barotrauma.GUIButton.Update(Single deltaTime) in \Barotrauma\BarotraumaClient\ClientSource\GUI\GUIButton.cs:line 299 at Barotrauma.GUI.Update(Single deltaTime) in \Barotrauma\BarotraumaClient\ClientSource\GUI\GUI.cs:line 1262 at Barotrauma.GameMain.Update(GameTime gameTime) in \Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 975 at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in E:\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656 at Microsoft.Xna.Framework.Game.Tick() in E:\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 500 at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in E:\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93 at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in E:\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397 at Microsoft.Xna.Framework.Game.Run() in E:\Barotrauma-development\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367 at Barotrauma.Program.Main(String[] args) in \Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 61 ```
Jasontti commented 4 days ago

Testing notes: https://github.com/FakeFishGames/Barotrauma-development/pull/6026#issuecomment-2490961061 No issues found, closing ticket as completed