space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.12k stars 2.8k forks source link

PVS failing to resolve MetaDataComponent frequently on server #27835

Open ShadowCommander opened 1 month ago

ShadowCommander commented 1 month ago

Description

Running query {App="Robust.Server", Server="salamander", level="error"} |~ "Can't resolve\"Robust.Shared.GameObjects.MetaDataComponent\" on entity"

PVS seems to try accessing deleted entities quite often. In the past hour, there have been 494 of these.

Can't resolve "Robust.Shared.GameObjects.MetaDataComponent" on entity 596538!
   at Robust.Shared.GameObjects.SharedUserInterfaceSystem.OnActorGetState(Entity`1 ent, ComponentGetState& args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/Systems/SharedUserInterfaceSystem.cs:line 136
   at Robust.Shared.GameObjects.EntityEventBus.<>c__DisplayClass51_0`2.<SubscribeLocalEvent>g__EventHandler|0(EntityUid uid, IComponent comp, TEvent& args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityEventBus.Directed.cs:line 301
   at Robust.Shared.GameObjects.EntityEventBus.Robust.Shared.GameObjects.IDirectedEventBus.RaiseComponentEvent[TEvent](IComponent component, TEvent& args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityEventBus.Directed.cs:line 156
   at Robust.Shared.GameObjects.EntityManager.GetComponentState(IEventBus eventBus, IComponent component, ICommonSession session, GameTick fromTick) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityManager.Components.cs:line 1411
   at Robust.Server.GameStates.PvsSystem.GetEntityState(ICommonSession player, EntityUid entityUid, GameTick fromTick, MetaDataComponent meta) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.GetStates.cs:line 52
   at Robust.Server.GameStates.PvsSystem.RecursivelyAddOverride(PvsSession session, EntityUid uid, GameTick fromTick, Boolean addChildren) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Overrides.cs:line 103
   at Robust.Server.GameStates.PvsSystem.AddForcedEntities(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Overrides.cs:line 58
   at Robust.Server.GameStates.PvsSystem.GetEntityStates(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 311
   at Robust.Server.GameStates.PvsSystem.ComputeSessionState(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 88
   at Robust.Server.GameStates.PvsSystem.SendStateUpdate(ICommonSession session, PvsThreadResources resources) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 32
   at Robust.Server.GameStates.PvsSystem.<>c__DisplayClass73_0.<SendStates>g__SendPlayer|0(Int32 i, ParallelLoopState state, PvsThreadResources resource) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 219
   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()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

 Sawmill=resolve
Can't resolve "Robust.Shared.GameObjects.MetaDataComponent" on entity 287748!
   at Content.Shared.Buckle.Components.BuckleComponent.BuckleComponent_AutoNetworkSystem.OnGetState(EntityUid uid, BuckleComponent component, ComponentGetState& args) in /home/runner/work/space-station-14/space-station-14/Content.Shared/Robust.Shared.CompNetworkGenerator/Robust.Shared.CompNetworkGenerator.ComponentNetworkGenerator/BuckleComponent_CompNetwork.g.cs:line 34
   at Robust.Shared.GameObjects.EntityEventBus.Robust.Shared.GameObjects.IDirectedEventBus.RaiseComponentEvent[TEvent](IComponent component, TEvent& args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityEventBus.Directed.cs:line 156
   at Robust.Shared.GameObjects.EntityManager.GetComponentState(IEventBus eventBus, IComponent component, ICommonSession session, GameTick fromTick) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityManager.Components.cs:line 1411
   at Robust.Server.GameStates.PvsSystem.GetEntityState(ICommonSession player, EntityUid entityUid, GameTick fromTick, MetaDataComponent meta) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.GetStates.cs:line 52
   at Robust.Server.GameStates.PvsSystem.AddPvsChunk(PvsChunk chunk, Single distance, PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.ToSendSet.cs:line 61
   at Robust.Server.GameStates.PvsSystem.GetEntityStates(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 330
   at Robust.Server.GameStates.PvsSystem.ComputeSessionState(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 88
   at Robust.Server.GameStates.PvsSystem.SendStateUpdate(ICommonSession session, PvsThreadResources resources) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 32
   at Robust.Server.GameStates.PvsSystem.<>c__DisplayClass73_0.<SendStates>g__SendPlayer|0(Int32 i, ParallelLoopState state, PvsThreadResources resource) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 219
   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()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

 Sawmill=resolve
Can't resolve "Robust.Shared.GameObjects.MetaDataComponent" on entity 797649!
   at Content.Shared.Audio.Jukebox.JukeboxComponent.JukeboxComponent_AutoNetworkSystem.OnGetState(EntityUid uid, JukeboxComponent component, ComponentGetState& args) in /home/runner/work/space-station-14/space-station-14/Content.Shared/Robust.Shared.CompNetworkGenerator/Robust.Shared.CompNetworkGenerator.ComponentNetworkGenerator/JukeboxComponent_CompNetwork.g.cs:line 32
   at Robust.Shared.GameObjects.EntityEventBus.Robust.Shared.GameObjects.IDirectedEventBus.RaiseComponentEvent[TEvent](IComponent component, TEvent& args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityEventBus.Directed.cs:line 156
   at Robust.Shared.GameObjects.EntityManager.GetComponentState(IEventBus eventBus, IComponent component, ICommonSession session, GameTick fromTick) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityManager.Components.cs:line 1411
   at Robust.Server.GameStates.PvsSystem.GetEntityState(ICommonSession player, EntityUid entityUid, GameTick fromTick, MetaDataComponent meta) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.GetStates.cs:line 52
   at Robust.Server.GameStates.PvsSystem.AddPvsChunk(PvsChunk chunk, Single distance, PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.ToSendSet.cs:line 61
   at Robust.Server.GameStates.PvsSystem.GetEntityStates(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 330
   at Robust.Server.GameStates.PvsSystem.ComputeSessionState(PvsSession session) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 88
   at Robust.Server.GameStates.PvsSystem.SendStateUpdate(ICommonSession session, PvsThreadResources resources) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.Session.cs:line 32
   at Robust.Server.GameStates.PvsSystem.<>c__DisplayClass73_0.<SendStates>g__SendPlayer|0(Int32 i, ParallelLoopState state, PvsThreadResources resource) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameStates/PvsSystem.cs:line 219
   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()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

 Sawmill=resolve

Can't resolve "Robust.Shared.GameObjects.MetaDataComponent" on entity 835324!
   at Robust.Shared.GameObjects.EntityManager.GetNetEntityList(List`1 entities) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityManager.Network.cs:line 525
   at Content.Server.Weapons.Melee.MeleeWeaponSystem.DoDamageEffect(List`1 targets, Nullable`1 user, TransformComponent targetXform)
   at Content.Shared.Weapons.Melee.SharedMeleeWeaponSystem.DoLightAttack(EntityUid user, LightAttackEvent ev, EntityUid meleeUid, MeleeWeaponComponent component, ICommonSession session) in /home/runner/work/space-station-14/space-station-14/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs:line 528
   at Content.Shared.Weapons.Melee.SharedMeleeWeaponSystem.AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponComponent weapon, AttackEvent attack, ICommonSession session) in /home/runner/work/space-station-14/space-station-14/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs:line 409
   at Content.Shared.Weapons.Melee.SharedMeleeWeaponSystem.AttemptLightAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponComponent weapon, EntityUid target) in /home/runner/work/space-station-14/space-station-14/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs:line 321
   at Content.Server.NPC.Systems.NPCSteeringSystem.TryHandleFlags(EntityUid uid, NPCSteeringComponent component, PathPoly poly) in /home/runner/work/space-station-14/space-station-14/Content.Server/NPC/Systems/NPCSteeringSystem.Obstacles.cs:line 178
   at Content.Server.NPC.Systems.NPCSteeringSystem.TrySeek(EntityUid uid, InputMoverComponent mover, NPCSteeringComponent steering, PhysicsComponent body, TransformComponent xform, Angle offsetRot, Single moveSpeed, Span`1 interest, Single frameTime, Boolean& forceSteer) in /home/runner/work/space-station-14/space-station-14/Content.Server/NPC/Systems/NPCSteeringSystem.Context.cs:line 214
   at Content.Server.NPC.Systems.NPCSteeringSystem.Steer(EntityUid uid, NPCSteeringComponent steering, InputMoverComponent mover, TransformComponent xform, Single frameTime, TimeSpan curTime) in /home/runner/work/space-station-14/space-station-14/Content.Server/NPC/Systems/NPCSteeringSystem.cs:line 341
   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()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued)
   at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler scheduler, Boolean waitForCompletion)
   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)
   at Content.Server.NPC.Systems.NPCSteeringSystem.Update(Single frameTime) in /home/runner/work/space-station-14/space-station-14/Content.Server/NPC/Systems/NPCSteeringSystem.cs:line 242
   at Robust.Shared.GameObjects.EntitySystemManager.TickUpdate(Single frameTime, Boolean noPredictions) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntitySystemManager.cs:line 306
   at Robust.Shared.GameObjects.EntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/GameObjects/EntityManager.cs:line 250
   at Robust.Server.GameObjects.ServerEntityManager.TickUpdate(Single frameTime, Boolean noPredictions, Histogram histogram) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/GameObjects/ServerEntityManager.cs:line 195
   at Robust.Server.BaseServer.Update(FrameEventArgs frameEventArgs) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/BaseServer.cs:line 702
   at Robust.Shared.Timing.GameLoop.Run() in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Shared/Timing/GameLoop.cs:line 235
   at Robust.Server.BaseServer.MainLoop() in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/BaseServer.cs:line 569
   at Robust.Server.Program.ParsedMain(CommandLineArgs args, Boolean contentStart, ServerOptions options) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/Program.cs:line 76
   at Robust.Server.Program.Start(String[] args, ServerOptions options, Boolean contentStart) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/Program.cs:line 44
   at Robust.Server.Program.Main(String[] args) in /home/runner/work/space-station-14/space-station-14/RobustToolbox/Robust.Server/Program.cs:line 25

 Sawmill=resolve

Reproduction

Unknown. Need help reproducing.

metalgearsloth commented 1 month ago

It's just pvs trying to send deleted entities