Skip to content

Hand Drill caused crash :( #593

@SPOOKEXE

Description

@SPOOKEXE
  • [Y] Verify that this issue is related to Torch and not a Torch plugin or the vanilla game
  • [?] Ensure that the issue is reproducible for testing (provide a link to a test world if necessary)
  • [N] Is this a suggestion?

Torch Version: 1.3.1.304-master SE Version: 1.205.26

Expected Behavior

No crashing

Observed Behavior

TORCH and SERVER crashed together.

Steps to Reproduce

The issue got triggered on small voxel terrain pieces when you try hand drill them. I'm assuming it was a desync issue where I had aimed over voxel terrain to mine it (using right click), and after I had mine it the server received another event to mine it but it no longer existed. My latency was 290-310ms (AUS -> US) on a private hosted server.

Other Information

   at System.MulticastDelegate.ThrowNullThisInDelegateToInstance()
   at Sandbox.Game.Weapons.MyHandDrill.<>c.<IsDrillingAnObjectChanged>b__158_0(MyCharacter x)
   at VRage.Network.MyEventTable.TryGet[T](Object associatedObject, Func`2 getter, T arg, CallSite& site)
   at VRage.Network.MyReplicationLayerBase.TryGetStaticCallSite[T](Func`2 callSiteGetter, CallSite& site)
   at VRage.Network.MyReplicationLayerBase.GetCallSite[T](Func`2 callSiteGetter, T arg)
   at VRage.Network.MyReplicationLayerBase.RaiseEvent[T1,T2,T3](T1 arg1, T3 arg3, Func`2 action, T2 arg2, EndpointId endpointId, Nullable`1 position)
   at Sandbox.Engine.Multiplayer.MyMultiplayer.RaiseEvent[T1,T2](T1 arg1, Func`2 action, T2 arg2, EndpointId targetEndpoint)
   at Sandbox.Game.Weapons.MyHandDrill.IsDrillingAnObjectChanged(Boolean value)
   at Sandbox.Game.Weapons.MyHandDrill.DrillingPerformedCallback(Boolean success)
   at Sandbox.Game.Weapons.MyDrillBase.OnDrillResults(Dictionary`2 materials, Vector3D hitPosition, Boolean collectOre, Action`1 OnDrillingPerformed)
   at Sandbox.Game.Weapons.MyDrillBase.<>c__DisplayClass109_0.<TryDrillVoxels>b__0(Single x, MyVoxelMaterialDefinition y, Dictionary`2 z)
   at Sandbox.Game.Entities.MyVoxelBase.<>c__DisplayClass137_0.<CutOutShapeWithPropertiesAsync>b__1()
   at ParallelTasks.Parallel.RunCallbacks()
   at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
   at Sandbox.MySandboxGame.Update()
   at Sandbox.Engine.Platform.Game.UpdateInternal()
   at Sandbox.Engine.Platform.Game.RunSingleFrame()
   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:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 326
   at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 126
   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()
System.ArgumentException: Delegate to an instance method cannot have null 'this'.
   at System.MulticastDelegate.ThrowNullThisInDelegateToInstance()
   at Sandbox.Game.Weapons.MyHandDrill.<>c.<IsDrillingAnObjectChanged>b__158_0(MyCharacter x)
   at VRage.Network.MyEventTable.TryGet[T](Object associatedObject, Func`2 getter, T arg, CallSite& site)
   at VRage.Network.MyReplicationLayerBase.TryGetStaticCallSite[T](Func`2 callSiteGetter, CallSite& site)
   at VRage.Network.MyReplicationLayerBase.GetCallSite[T](Func`2 callSiteGetter, T arg)
   at VRage.Network.MyReplicationLayerBase.RaiseEvent[T1,T2,T3](T1 arg1, T3 arg3, Func`2 action, T2 arg2, EndpointId endpointId, Nullable`1 position)
   at Sandbox.Engine.Multiplayer.MyMultiplayer.RaiseEvent[T1,T2](T1 arg1, Func`2 action, T2 arg2, EndpointId targetEndpoint)
   at Sandbox.Game.Weapons.MyHandDrill.IsDrillingAnObjectChanged(Boolean value)
   at Sandbox.Game.Weapons.MyHandDrill.DrillingPerformedCallback(Boolean success)
   at Sandbox.Game.Weapons.MyDrillBase.OnDrillResults(Dictionary`2 materials, Vector3D hitPosition, Boolean collectOre, Action`1 OnDrillingPerformed)
   at Sandbox.Game.Weapons.MyDrillBase.<>c__DisplayClass109_0.<TryDrillVoxels>b__0(Single x, MyVoxelMaterialDefinition y, Dictionary`2 z)
   at Sandbox.Game.Entities.MyVoxelBase.<>c__DisplayClass137_0.<CutOutShapeWithPropertiesAsync>b__1()
   at ParallelTasks.Parallel.RunCallbacks()
   at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
   at Sandbox.MySandboxGame.Update()
   at Sandbox.Engine.Platform.Game.UpdateInternal()
   at Sandbox.Engine.Platform.Game.RunSingleFrame()
   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:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 326
   at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 126
   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()```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions