The Vanilla Experience (Mod) (Forge)

The Vanilla Experience (Mod) (Forge)

118k Downloads

Crash: ConcurrentModificationException when used with C2ME

DawsonBodenhamer opened this issue ยท 1 comments

commented

Information

Minecraft version: 1.21.1
Modloader: Fabric
Fabric loader version: 0.16.14
Environment: Singleplayer (Opened to LAN)

Mod name: Random Village Names
Mod version: 3.8

Description

Hey! My game becomes very unstable and eventually crashes when using Random Village Names alongside the performance mod C2ME (Concurrent Chunk Management Engine).

The server thread log gets spammed with ConcurrentModificationException errors pointing to the SetVillageSignEvent.onWorldTick event in your mod. It seems like the mod is trying to access world data every tick, which conflicts with C2ME's multi-threaded chunk processing. While another mod (Distant Horizons) was the final cause of the crash, the log is filled with hundreds of these errors from Random Village Names, indicating a severe incompatibility.

Crash report

The full log is very long, so I've included the most relevant, repeating error below. The full crash report and log can be provided via a Gist link if needed.

Relevant Repeating Error from latest.log:

[13:12:46] [Server thread/ERROR]: Error executing task on Chunk source main thread executor for minecraft:overworld
java.util.ConcurrentModificationException: null
	at java.base/java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:?]
	at java.base/java.util.ArrayList$Itr.next(Unknown Source) ~[?:?]
	at knot/com.google.common.collect.Iterators$1.next(Iterators.java:146) ~[guava-32.1.2-jre.jar:?]
	at java.base/java.util.Iterator.forEachRemaining(Unknown Source) ~[?:?]
    ...
	at knot/net.minecraft.class_1937.method_8320(class_1937.java:10086) ~[client-intermediary.jar:?]
	at knot/com.natamus.collective_common_fabric.functions.BlockPosFunctions.getSurfaceBlockPos(BlockPosFunctions.java:194) ~[collective-1.21.1-8.3.jar:?]
	at knot/com.natamus.collective_common_fabric.functions.BlockPosFunctions.getSurfaceBlockPos(BlockPosFunctions.java:182) ~[collective-1.21.1-8.3.jar:?]
	at knot/com.natamus.collective_common_fabric.functions.BlockPosFunctions.getNearbyVillage(BlockPosFunctions.java:265) ~[collective-1.21.1-8.3.jar:?]
	at knot/com.natamus.collective_common_fabric.functions.BlockPosFunctions.getNearbyVillage(BlockPosFunctions.java:237) ~[collective-1.21.1-8.3.jar:?]
	at knot/com.natamus.randomvillagenames_common_fabric.events.SetVillageSignEvent.onWorldTick(SetVillageSignEvent.java:51) ~[randomvillagenames-1.21.1-3.8.jar:?]
	at knot/com.natamus.randomvillagenames.ModFabric.lambda$loadEvents$0(ModFabric.java:32) ~[randomvillagenames-1.21.1-3.8.jar:?]
	at knot/net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents.lambda$static$4(ServerTickEvents.java:52) ~[fabric-lifecycle-events-v1-2.6.0+0865547519-a256d509f967017e.jar:?]
	at knot/net.minecraft.class_3218.handler$dag000$fabric-lifecycle-events-v1$startWorldTick(class_3218.java:7281) ~[client-intermediary.jar:?]
	at knot/net.minecraft.class_3218.method_18765(class_3218.java:305) ~[client-intermediary.jar:?]
	at knot/net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:1021) ~[client-intermediary.jar:?]
	at knot/net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:912) ~[client-intermediary.jar:?]
	at knot/net.minecraft.class_1132.method_3748(class_1132.java:114) ~[client-intermediary.jar:?]
	at knot/net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:697) ~[client-intermediary.jar:?]
	at knot/net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281) ~[client-intermediary.jar:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]

[latest.log](https://github.com/user-attachments/files/20742101/latest.log)
commented

Any word on this?