anegostudios / VintageStory-Issues

Vintage Story's public issue tracker for reporting bugs, crashes and the like
47 stars 16 forks source link

Client crash while connecting to the server with slow internet connection #4553

Open bonenaut7 opened 3 days ago

bonenaut7 commented 3 days ago

Game Version

v1.19.8

Platform

Windows

Modded

None

SP/MP

Multiplayer

Description

Impossible to connect to the server with slow internet connection to the server (tested on TOPS, happened for multiple players with the same reproduce actions)

Not sure is it actually linked somehow to the actual weather system on the server, but my theory that's the issue is probably happens because of network thread starts the world too late, and game is trying to access object reference that's not set due to slow internet speed (Not related to UDP tho, for UDP i think it gonna be something else, packet race or something, idk)

Happens everyday for my friend, happens to me during internet outages (when internet is slower than it should be) in almost 100% cases (and also game reinstall doesn't help)

How to reproduce

  1. Limit internet speed to around 100-150 kbp/s (12-18 kb/s)
  2. Connect to the TOPS
  3. See the 'Connected to server, downloading data...' title with very slow data receiving (~20kb/s)
  4. Get crashed

Screenshots

Video

Logs

First variation:

Running on 64 bit Windows 10.0.19045.0 with 64730 MB RAM
Game Version: v1.19.8 (Stable)
22.11.2024 17:45:10: Critical error occurred
Loaded Mods: ClaimsRadar@1.1.0, game@1.19.8, creative@1.19.8, survival@1.19.8
System.NullReferenceException: Object reference not set to an instance of an object.
   at Vintagestory.GameContent.WeatherSystemClient.OnRenderFrame(Single dt, EnumRenderStage stage) in VSEssentials\Systems\Weather\WeatherSystemClient.cs:line 140
   at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 192
   at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 806
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 858
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 730
   at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 163
   at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
   at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

Second variation:

Game Version: v1.19.8 (Stable)
22.11.2024 17:40:12: Critical error occurred
Loaded Mods: ClaimsRadar@1.1.0, game@1.19.8, creative@1.19.8, survival@1.19.8
System.NullReferenceException: Object reference not set to an instance of an object.
   at Vintagestory.GameContent.WeatherSystemClient.OnRenderFrame(Single dt, EnumRenderStage stage) in VSEssentials\Systems\Weather\WeatherSystemClient.cs:line 180
   at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 186
   at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 809
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 815
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 731
   at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 200
   at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
   at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93