ICBM-Classic icon indicating copy to clipboard operation
ICBM-Classic copied to clipboard

[Radar] Exception ticking world

Open Harchvertelol opened this issue 5 years ago • 6 comments

I tested this for two version of ICBM: ICBM - Classic 1.12.2-4.0.1b75-UNSTABLE build 75 and ICBM-classic-1.12.2-4.0.1.

My actions:

  1. Make a launcher and launch a rocket at a distance of 2000 2000 blocks diagonally (for example, from point 1000 1000 to point -1000 -1000).
  2. Almost immediately, teleport to the rocket's arrival point (after 5 seconds, when the rocket is already in the sky).
  3. The server crashes with an error below.

All missile flight chunks were generated in advance (suddenly this is important).

Mods:

image

LOG:

[00:34:42] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception net.minecraft.util.ReportedException: Exception ticking world at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:762) ~[MinecraftServer.class:?] at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) ~[nz.class:?] at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) ~[MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.8.0_251] Caused by: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.8.0_251] at java.util.ArrayList$Itr.next(Unknown Source) ~[?:1.8.0_251] at icbm.classic.lib.radar.RadarMap.collectEntitiesInChunk(RadarMap.java:228) ~[RadarMap.class:1.12.2-4.0.1b20200328215453] at icbm.classic.content.entity.missile.MissileEventHandler.chunkUnload(MissileEventHandler.java:43) ~[MissileEventHandler.class:1.12.2-4.0.1b20200328215453] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_22_MissileEventHandler_chunkUnload_Unload.invoke(.dynamic) ~[?:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?] at net.minecraft.world.chunk.Chunk.func_76623_d(Chunk.java:879) ~[axw.class:?] at net.minecraft.world.gen.ChunkProviderServer.func_73156_b(ChunkProviderServer.java:269) ~[on.class:?] at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:207) ~[oo.class:?] at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756) ~[MinecraftServer.class:?] ... 4 more [00:34:42] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: E:\Games\Minecraft\1.12.2\servertech.\crash-reports\crash-2020-04-28_00.34.42-server.txt [00:34:42] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:34:42] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:34:42] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:34:42] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'world'/overworld [00:34:42] [Server thread/INFO] [FML]: Unloading dimension 0 [00:34:42] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.

Harchvertelol avatar Apr 27 '20 21:04 Harchvertelol

UPDATE:

I tested this on the server only with IC2 and ICBM-Classic (stable). It works. Adding else only a buildcraft breaks everything (without sponge!). Adding else only a sponge breaks everything (without buildcraft! I removed buildcraft and adding sponge! I did not forget to remove the buildcraft! Moreover, I removed the buildcraft, checked that everything worked, and only then added a sponge. And error returned).

I made the same server without buildcraft and sponge - everything works. What can I do? Why does buildcraft and sponge-forge break it?

Harchvertelol avatar Apr 27 '20 22:04 Harchvertelol

It seems to me like it is the same issue as this one which can be reproduced with only icbm https://github.com/BuiltBrokenModding/ICBM-Classic/issues/295

Tommeh1 avatar Apr 28 '20 22:04 Tommeh1

Maybe. And I brought a solid way to reproduce this error (but I don’t know why only buildcraft and sponge affect it). It seems to me that this may be due to the fact that chunks are not loaded (although generated).

Harchvertelol avatar Apr 28 '20 23:04 Harchvertelol

If i recall correctly the missile should load the area it is in and it would be useful if you could upload the crash report to for example hastebin and put the link here.

Tommeh1 avatar Apr 29 '20 01:04 Tommeh1

I already do it in this issue: https://github.com/SpongePowered/SpongeForge/issues/3143

Copy from that:


debug.log and latest.log:

https://gist.github.com/Harchvertelol/521276a30b553f574c2f5db0ca730e4c


P. S. But, it seems to me, the important part of the log is only what I copied above.

Harchvertelol avatar Apr 29 '20 12:04 Harchvertelol

Looked into this, The problem is when the chunk unload event is called, simulateMissile ends up calling setDead which in turn removes the entity from radar registry, removing the entity from the list we are going through,

image

clienthax avatar Apr 30 '20 22:04 clienthax