DeltaV-Station / Delta-v

A fork of Space Station 14, embracing a mixture of classic SS13 chaos and experimentation only possible with the new engine
https://delta-v.org
GNU Affero General Public License v3.0
63 stars 274 forks source link

Trying to play Delta-V hosted on a VPS; wreck spawning sometimes crashes server #1072

Closed J0w03L closed 3 months ago

J0w03L commented 6 months ago

Description

So me and a friend decided to try and get some practice on a private server; I cloned the Delta-V repo and setup the server and everything seems to work fine. Twice, we get some good salvage going, we explore a bunch of wrecks, get some good hauls and then we claim a new wreck. Server crashes.

Reproduction As of yet unsure if this can be replicated by others, but on my setup it seems consistent. This is a fresh clone from only a few hours ago, with the server hostname and role timers being the only things modified from the clone.

As for the setup itself, I am running this on a Debian 11 aarch64 VPS (Linux <hostname> 5.10.0-21-arm64 #1 SMP Debian 5.10.162-1 (2023-01-21) aarch64 GNU/Linux). Has 18GB of RAM and 3 CPU cores provisioned to the machine.

A git log shows that the clone was from commit 6030f1f1c98cfff5e0b1b528cb4461e0031de362.

On our setup, all we have to do to trigger the bug is play salvage for an hour (just wrecks, no asteroids or expeditions). Eventually, the server will crash when we try to summon a wreck.

Screenshots

N/A

Additional context

Stacktrace of crash:

[DEBG] admin.logs: Saving 2 admin logs.
[INFO] map: Creating new map 7
[DEBG] map: Binding map 7 to entity 26845
[INFO] loader: No user map found: /Maps/Salvage/DeltaV/DV-medium-01.yml
[INFO] loader: Loading Map: /Maps/Salvage/DeltaV/DV-medium-01.yml
[DEBG] system.npc: Waking space tick (27179/n27179, MobTickSalvage)
[DEBG] system.npc: Waking space spider (27200/n27200, MobSpiderSpaceSalvage)
[DEBG] system.npc: Waking space spider (27222/n27222, MobSpiderSpaceSalvage)
[DEBG] system.npc: Waking space spider (27244/n27244, MobSpiderSpaceSalvage)
[DEBG] system.npc: Waking space spider (27266/n27266, MobSpiderSpaceSalvage)
[INFO] system.map: Grid  (26846/n26846) changed parent. Old parent: map 7 (26845/n26845). New parent: Station map (11/n11)
[INFO] system.map: Deleting map 7
[DEBG] nodegroup: Updated node groups in 2.0054ms. 19 new groups, 71 nodes processed.
[FATL] unhandled: System.AggregateException: One or more errors occurred. (Exception of type 'Robust.Shared.Utility.DebugAssertException' was thrown.)
 ---> Robust.Shared.Utility.DebugAssertException: Exception of type 'Robust.Shared.Utility.DebugAssertException' was thrown.
   at Robust.Shared.Utility.DebugTools.Assert(Boolean condition) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Utility/DebugTools.cs:line 37
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.FindPairs(FixtureProxy proxy, Box2 worldAABB, EntityUid broadphase, List`1 pairBuffer) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 368
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.<>c.<FindNewContacts>b__21_1(EntityUid uid, MapGridComponent _, ValueTuple`4& tuple) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 221
   at Robust.Shared.Map.MapManager.<>c__79`1.<FindGridsIntersecting>b__79_0(GridQueryState`1& state, Proxy proxy) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 195
   at Robust.Shared.Physics.B2DynamicTree`1.Query[TState](TState& state, QueryCallback`1 callback, Box2& aabb) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/B2DynamicTree.cs:line 894
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](EntityUid mapEnt, IPhysShape shape, Transform transform, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 151
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](EntityUid mapEnt, Box2 worldAABB, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 240
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](MapId mapId, Box2 worldAABB, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 65
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.<>c__DisplayClass21_0.<FindNewContacts>b__0(Int32 i) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 213
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
   at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.FindNewContacts(PhysicsMapComponent component, MapId mapId) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 197
   at Robust.Shared.Physics.Systems.SharedPhysicsSystem.SimulateWorld(Single deltaTime, Boolean prediction) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedPhysicsSystem.cs:line 307
   at Robust.Server.GameObjects.PhysicsSystem.Update(Single frameTime) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/GameObjects/EntitySystems/PhysicsSystem.cs:line 35
   at Robust.Shared.GameObjects.EntitySystemManager.TickUpdate(Single frameTime, Boolean noPredictions) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/GameObjects/EntitySystemManager.cs:line 306
   at Robust.Shared.GameObjects.EntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/GameObjects/EntityManager.cs:line 246
   at Robust.Server.GameObjects.ServerEntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/GameObjects/ServerEntityManager.cs:line 195
   at Robust.Server.BaseServer.Update(FrameEventArgs frameEventArgs) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 729
   at Robust.Server.BaseServer.<SetupMainLoop>b__66_1(Object sender, FrameEventArgs args) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 542
   at Robust.Shared.Timing.GameLoop.Run() in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Timing/GameLoop.cs:line 235
   at Robust.Server.BaseServer.MainLoop() in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 569
   at Robust.Server.Program.ParsedMain(CommandLineArgs args, Boolean contentStart, ServerOptions options) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/Program.cs:line 76
   at Robust.Server.Program.Start(String[] args, ServerOptions options, Boolean contentStart) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/Program.cs:line 44
   at Robust.Server.ContentStart.Start(String[] args) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/ContentStart.cs:line 10
   at Content.Server.Program.Main(String[] args) in /srv/ss14/Delta-v/Content.Server/Program.cs:line 9
Unhandled exception. System.AggregateException: One or more errors occurred. (Exception of type 'Robust.Shared.Utility.DebugAssertException' was thrown.)
 ---> Robust.Shared.Utility.DebugAssertException: Exception of type 'Robust.Shared.Utility.DebugAssertException' was thrown.
   at Robust.Shared.Utility.DebugTools.Assert(Boolean condition) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Utility/DebugTools.cs:line 37
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.FindPairs(FixtureProxy proxy, Box2 worldAABB, EntityUid broadphase, List`1 pairBuffer) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 368
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.<>c.<FindNewContacts>b__21_1(EntityUid uid, MapGridComponent _, ValueTuple`4& tuple) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 221
   at Robust.Shared.Map.MapManager.<>c__79`1.<FindGridsIntersecting>b__79_0(GridQueryState`1& state, Proxy proxy) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 195
   at Robust.Shared.Physics.B2DynamicTree`1.Query[TState](TState& state, QueryCallback`1 callback, Box2& aabb) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/B2DynamicTree.cs:line 894
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](EntityUid mapEnt, IPhysShape shape, Transform transform, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 151
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](EntityUid mapEnt, Box2 worldAABB, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 240
   at Robust.Shared.Map.MapManager.FindGridsIntersecting[TState](MapId mapId, Box2 worldAABB, TState& state, GridCallback`1 callback, Boolean approx, Boolean includeMap) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Map/MapManager.Queries.cs:line 65
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.<>c__DisplayClass21_0.<FindNewContacts>b__0(Int32 i) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 213
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
   at System.Threading.Tasks.TaskReplicator.Replica.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
   at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body)
   at Robust.Shared.Physics.Systems.SharedBroadphaseSystem.FindNewContacts(PhysicsMapComponent component, MapId mapId) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedBroadphaseSystem.cs:line 197
   at Robust.Shared.Physics.Systems.SharedPhysicsSystem.SimulateWorld(Single deltaTime, Boolean prediction) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Physics/Systems/SharedPhysicsSystem.cs:line 307
   at Robust.Server.GameObjects.PhysicsSystem.Update(Single frameTime) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/GameObjects/EntitySystems/PhysicsSystem.cs:line 35
   at Robust.Shared.GameObjects.EntitySystemManager.TickUpdate(Single frameTime, Boolean noPredictions) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/GameObjects/EntitySystemManager.cs:line 306
   at Robust.Shared.GameObjects.EntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/GameObjects/EntityManager.cs:line 246
   at Robust.Server.GameObjects.ServerEntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/GameObjects/ServerEntityManager.cs:line 195
   at Robust.Server.BaseServer.Update(FrameEventArgs frameEventArgs) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 729
   at Robust.Server.BaseServer.<SetupMainLoop>b__66_1(Object sender, FrameEventArgs args) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 542
   at Robust.Shared.Timing.GameLoop.Run() in /srv/ss14/Delta-v/RobustToolbox/Robust.Shared/Timing/GameLoop.cs:line 235
   at Robust.Server.BaseServer.MainLoop() in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/BaseServer.cs:line 569
   at Robust.Server.Program.ParsedMain(CommandLineArgs args, Boolean contentStart, ServerOptions options) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/Program.cs:line 76
   at Robust.Server.Program.Start(String[] args, ServerOptions options, Boolean contentStart) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/Program.cs:line 44
   at Robust.Server.ContentStart.Start(String[] args) in /srv/ss14/Delta-v/RobustToolbox/Robust.Server/ContentStart.cs:line 10
   at Content.Server.Program.Main(String[] args) in /srv/ss14/Delta-v/Content.Server/Program.cs:line 9
IamVelcroboy commented 6 months ago

Let me know if it's consistently the same wreck or if it varies.

J0w03L commented 6 months ago

It seems to vary judging by the loading map part? Heres a screenshot of the first stacktrace, I don't think I had log saving enabled so that's all I have of the first stacktrace.

image

Please do let me know if there is anything I can test or any other info I can provide!

stellar-novas commented 6 months ago

I think you're crashing because you're running in debug mode, which panics on more errors rather than just logging them.

It obviously shouldn't be erroring, and it'd be great if we can figure out if the issue is in delta-v maps or wizden, but in the meantime, running in release should let you keep playing.

J0w03L commented 6 months ago

I had a hunch based on the exception name, still I'm all ears to helping figure out the root cause.

NullWanderer commented 3 months ago

DebugAssertException won't happen if you properly build the server for running it. See the official server hosting docs