TorchAPI / Torch

An extensible modding framework and improved client/DS for Space Engineers. Still a work in progress!
Apache License 2.0
146 stars 76 forks source link

Crash on Server start when players connect -> System.ArgumentException #308

Closed LordTylus closed 4 years ago

LordTylus commented 5 years ago

Torch Version: 1.3.1.34 SE Version: 1.190.009

Expected Behavior

Server restarts just fine

Observed Behavior

12:06:30.6874 [FATAL]  Initializer: System.ArgumentException: Key 76561197989706615 already exists
Parameter name: key
   at Torch.Collections.MtObservableSortedDictionary`2.Add(TK key, TV value) in C:\jenkins\workspace\Torch_Torch_master\Torch\Collections\MtObservableSortedDictionary.cs:line 148
   at Torch.Managers.MultiplayerManagerBase.RaiseClientJoined(UInt64 steamId) in C:\jenkins\workspace\Torch_Torch_master\Torch\Managers\MultiplayerManagerBase.cs:line 121
   at Torch.Server.Managers.MultiplayerManagerDedicated.<>c__DisplayClass43_1.<RunEvent>b__1() in C:\jenkins\workspace\Torch_Torch_master\Torch.Server\Managers\MultiplayerManagerDedicated.cs:line 299
   at Sandbox.MySandboxGame.ProcessInvoke()
   at Sandbox.MySandboxGame.Update()
   at Sandbox.Engine.Platform.Game.UpdateInternal()
   at RunSingleFrame_0(Object )
   at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
   at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
   at Sandbox.Engine.Platform.Game.RunLoop()
   at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
   at Torch.VRageGame.DoStart() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 241
   at Torch.VRageGame.Run() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 118
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Steps to Reproduce

  1. Restart server with a lot of people in the pipeline
  2. If you are lucky one player will timeout when server accepted him
  3. If player tries again Exception appears
LordTylus commented 4 years ago

Not occuring anymore. if I remember correctly jim fixed that one. So closed it is :-)