DonBruce64 / MinecraftTransportSimulator

A Minecraft mod that adds planes and automobiles with realistic physics!
Other
106 stars 59 forks source link

ServerHangWatchdog crash on 1.12.2 due to MTS/IV collision check #1715

Closed mica-alex closed 8 months ago

mica-alex commented 10 months ago

General Issue: A player was on my server today and reported that they were kicked after timing out, and then I observed that the server subsequently rebooted. Now, the server is inaccessible, and the issue happens again any time someone tries to join. Their client times out, and eventually the ServerHangWatchdog brings the server down.

Stack Trace:

java.lang.Error: ServerHangWatchdog detected that a single server tick took 1200.00 seconds (should be max 0.05)
    at mcinterface1122.WrapperWorld.checkForCollisions(WrapperWorld.java:578)
    at minecrafttransportsimulator.baseclasses.VehicleGroundDeviceBox.updateCollisionStatuses(VehicleGroundDeviceBox.java:253)
    at minecrafttransportsimulator.baseclasses.VehicleGroundDeviceCollection.updateCollisions(VehicleGroundDeviceCollection.java:63)
    at minecrafttransportsimulator.entities.instances.AEntityVehicleD_Moving.moveVehicle(AEntityVehicleD_Moving.java:530)
    at minecrafttransportsimulator.entities.instances.AEntityVehicleD_Moving.update(AEntityVehicleD_Moving.java:185)
    at minecrafttransportsimulator.entities.instances.AEntityVehicleE_Powered.update(AEntityVehicleE_Powered.java:87)
    at minecrafttransportsimulator.entities.instances.EntityVehicleF_Physics.update(EntityVehicleF_Physics.java:162)
    at minecrafttransportsimulator.baseclasses.EntityManager.tickAll(EntityManager.java:138)
    at mcinterface1122.WrapperWorld.on(WrapperWorld.java:928)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1027_WrapperWorld_on_WorldTickEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.fml.common.FMLCommonHandler.onPreWorldTick(FMLCommonHandler.java:287)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:752)
    at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:397)
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:668)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
    at java.lang.Thread.run(Thread.java:750)

Additional Information: I've recently noticed a drastic hit to the TPS performance of my server (normally runs 20 TPS around 3-4ms, now seeing 18-20 TPS around 34-60ms). After running LagGoggles, it reported that around 40-50% of the tick time was going to MTS/IV itself.

Full Crash Report File: crash-2023-09-11_21.15.26-server.txt

DonBruce64 commented 10 months ago

This is due to UNU updates, and internal code changes that are not yet optimized. The collision checks though are likely due to a bad pack doing Bad Stuff. If you join Discord I can send you a test build with some fault code that will crash the game with a better report to say exactly what vehicle/pack is causing this issue.

mica-alex commented 9 months ago

Hi @DonBruce64,

Sorry for completely missing that you responded! Been a busy few weeks for myself, although I will try to join the Discord this week and let you know so I can test and narrow the issue down.

DonBruce64 commented 8 months ago

Addressed in 22.12.0.