Space Engineers

Space Engineers

Advanced Welding - detaching and reattaching blocks!
BookBurner 2022 年 6 月 26 日 下午 10:30
Merging grids with a weld pad sometimes causes dedicated server crashes (torch)
player grid + nobody MES spawned grid

22:41:47.4024 [FATAL] Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, MyClientInfo forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize, Boolean streaming)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at Patched_VRage.Network.MyReplicationServerSendUpdate_0(Object )
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Patched_Sandbox.Engine.Multiplayer.MyDedicatedServerBaseTick_0(Object )
at Patched_Sandbox.Game.World.MySessionUpdate_1(Object , MyTimeSpan )
at Sandbox.MySandboxGame.Update()
at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Patched_Sandbox.Engine.Platform.FixedLoop+<>c__DisplayClass11_0<Run>b__0_0(Object )
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 316
at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 130
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.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, MyClientInfo forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize, Boolean streaming)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at Patched_VRage.Network.MyReplicationServerSendUpdate_0(Object )
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Patched_Sandbox.Engine.Multiplayer.MyDedicatedServerBaseTick_0(Object )
at Patched_Sandbox.Game.World.MySessionUpdate_1(Object , MyTimeSpan )
at Sandbox.MySandboxGame.Update()
at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Patched_Sandbox.Engine.Platform.FixedLoop+<>c__DisplayClass11_0<Run>b__0_0(Object )
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 316
at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 130
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()

same player tried to do the same thing twice

22:51:01.6766 [FATAL] Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, MyClientInfo forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize, Boolean streaming)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at Patched_VRage.Network.MyReplicationServerSendUpdate_0(Object )
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Patched_Sandbox.Engine.Multiplayer.MyDedicatedServerBaseTick_0(Object )
at Patched_Sandbox.Game.World.MySessionUpdate_1(Object , MyTimeSpan )
at Sandbox.MySandboxGame.Update()
at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Patched_Sandbox.Engine.Platform.FixedLoop+<>c__DisplayClass11_0<Run>b__0_0(Object )
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 316
at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 130
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.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, MyClientInfo forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize, Boolean streaming)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at Patched_VRage.Network.MyReplicationServerSendUpdate_0(Object )
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Patched_Sandbox.Engine.Multiplayer.MyDedicatedServerBaseTick_0(Object )
at Patched_Sandbox.Game.World.MySessionUpdate_1(Object , MyTimeSpan )
at Sandbox.MySandboxGame.Update()
at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Patched_Sandbox.Engine.Platform.FixedLoop+<>c__DisplayClass11_0<Run>b__0_0(Object )
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 316
at Torch.VRageGame.Run() in C:\ProgramData\Jenkins\.jenkins\workspace\Torch_master\Torch\VRageGame.cs:line 130
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()

I am still trying to gather more information, such as if he used one or multiple weld pads etc.
< >
正在显示第 1 - 10 条,共 10 条留言
BookBurner 2022 年 6 月 26 日 下午 10:35 
Additional information: (I will update this as I gather more)

- he tried to merge whole ships, not just a single block
- used single weldpad on each side
- first case happened when the player tried to weld his ship to an anchor (static grid) connected to the asteroid
- second case happened when the player tried to weld his ship to another nobody grid ship (our NPC wreckages)
最后由 BookBurner 编辑于; 2022 年 6 月 26 日 下午 11:16
Digi  [开发者] 2022 年 6 月 27 日 下午 2:52 
Does this only happen if you use multiple weldpads at the same time?

EDIT:
Also any locked landing gears or connectors involved?

If you still have the world right before it crashed, I could really use it to replicate :} feel free to remove the other grids in the world that are not near it (everything within 1km should be kept).
最后由 Digi 编辑于; 2022 年 6 月 27 日 下午 3:13
BookBurner 2022 年 6 月 28 日 上午 12:42 
I have to go to the server backups to check if I have such a backup save. We usually leave behind only daily backups after few days.

But I will try to get the grid backup from that time. To see if there was something else connected to his ship or not.
BookBurner 2022 年 6 月 28 日 上午 12:42 
I will also try to replicate it locally on the mirror torch environment.
BookBurner 2022 年 7 月 8 日 上午 11:38 
I don't have the backup save from that time, but I think I have a replication scenario. It happens when players are lazy and don't build a tug to move the detached blocks around.

In all three cases it happened what players did was they had the thing they wanted to attach static (say shield emitter, battery, jump etc.) and they maneuvered with the whole ship into it. When they switched it around and the ship was static and they meneuvered the block with a tug, it never happened.
martinhocking 2022 年 8 月 4 日 上午 5:44 
I think I can confirm 80% of that happening, I try to merge to drop pods together as one and the server crashed, one drop pod was stuck to the ground with landing gear. I am also going to try to have both hovering when merging:steamhappy:
howardxu23 2023 年 4 月 18 日 上午 11:12 
I can confirm as well, merging grids together with the weld pad on torch delicated servers causes crash here as well
was trying to weld a drone to a static grid that is attached to a planet and server crashed as well
I do have the save file, but unsure where it should go
最后由 howardxu23 编辑于; 2023 年 4 月 18 日 上午 11:40
Digi  [开发者] 2023 年 4 月 18 日 下午 12:23 
Upload it to whatever file sharing service you want, including steam workshop :P
Or if you don't want it public, feel free to add me on steam or discord ( Digi#9441 ).
howardxu23 2023 年 4 月 19 日 上午 7:32 
https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=2964447384
right got it up Digi
welding it in singleplayer/local does not actually do anything
最后由 howardxu23 编辑于; 2023 年 4 月 19 日 上午 7:35
TheBarbarian_EL 2024 年 2 月 28 日 上午 9:16 
I apologize for resurrecting this thread if the issue has been resolved already.

We've experienced this issue as well on our dedicated server. In our case:

1) build light armor column coming out of asteroid
2) Place weld pad on column
3) Place weld pad on spawn ship
4) Pilot spawn ship to the static grid column and weld
5) Server crashes

Once the server comes back online it has rolled back (typically) to before that join. I did not try Towing the ship to the place to join it. I'm going to be firing up a new server and plan to re-deploy this as part of the system as I love the detach and weld mechanics. I'm also hoping to pair it with the mod that only gives scrap when you weld stuff down.

Thank you if the problem is already fixed or for any information on how to avoid the crash. Thank you for your time and development of this generally great mod!
< >
正在显示第 1 - 10 条,共 10 条留言
每页显示数: 1530 50