ICBM - Interconnected Block Missiles

ICBM - Interconnected Block Missiles

10M Downloads

[Radar] Exception ticking world

Harchvertelol opened this issue · 6 comments

commented

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.

commented

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?

commented

It seems to me like it is the same issue as this one which can be reproduced with only icbm #295

commented

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).

commented

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.

commented

I already do it in this issue: SpongePowered/SpongeForge#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.

commented

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