Krypton

Krypton

22M Downloads

Non-deterministic Krypton-0.1.9 crash with lithium-fabric-mc1.18.2-0.7.9

LoganDark opened this issue ยท 3 comments

commented

Krypton 0.1.9 is incompatible with fabric-lifecycle-events-v1-0.48.0 on Minecraft 1.18.2 (fabric-loader 0.13.3, development/deobfuscated dedicated server-only environment)

Logged error:

[04:07:02] [Server thread/ERROR] (Minecraft) Encountered an unexpected exception
 net.minecraft.util.crash.CrashException: Exception ticking world
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:880) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.dedicated.MinecraftDedicatedServer.tickWorlds(MinecraftDedicatedServer.java:304) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:828) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:683) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:293) ~[minecraft-serverOnly-named.jar:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.RuntimeException: Mixin transformation of net.minecraft.server.world.ThreadedAnvilChunkStorage$EntityTracker failed
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:252) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.13.3.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at net.minecraft.server.world.ThreadedAnvilChunkStorage.loadEntity(ThreadedAnvilChunkStorage.java:992) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerChunkManager.loadEntity(ServerChunkManager.java:447) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.startTracking(ServerEntityManager.java:155) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.addEntity(ServerEntityManager.java:119) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.method_31857(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at net.minecraft.server.world.ServerEntityManager.loadChunks(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.tick(ServerEntityManager.java:294) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:345) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:873) ~[minecraft-serverOnly-named.jar:?]
	... 5 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.13.3.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at net.minecraft.server.world.ThreadedAnvilChunkStorage.loadEntity(ThreadedAnvilChunkStorage.java:992) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerChunkManager.loadEntity(ServerChunkManager.java:447) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.startTracking(ServerEntityManager.java:155) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.addEntity(ServerEntityManager.java:119) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.method_31857(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at net.minecraft.server.world.ServerEntityManager.loadChunks(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.tick(ServerEntityManager.java:294) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:345) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:873) ~[minecraft-serverOnly-named.jar:?]
	... 5 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector construct$useFastutil()Ljava/util/Set; in krypton.mixins.json:shared.network.microopt.TacsTrackedEntityMixin from mod krypton failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap krypton-refmap.json
	at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:468) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1385) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1052) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:400) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.11.2+mixin.0.8.5.jar:0.11.2+mixin.0.8.5]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.13.3.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at net.minecraft.server.world.ThreadedAnvilChunkStorage.loadEntity(ThreadedAnvilChunkStorage.java:992) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerChunkManager.loadEntity(ServerChunkManager.java:447) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld$ServerEntityHandler.startTracking(ServerWorld.java:1436) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.startTracking(ServerEntityManager.java:155) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.addEntity(ServerEntityManager.java:119) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.method_31857(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at net.minecraft.server.world.ServerEntityManager.loadChunks(ServerEntityManager.java:288) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerEntityManager.tick(ServerEntityManager.java:294) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:345) ~[minecraft-serverOnly-named.jar:?]
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:873) ~[minecraft-serverOnly-named.jar:?]
	... 5 more
[04:07:02] [Server thread/ERROR] (Minecraft) This crash report has been saved to: run_server\crash-reports\crash-2022-03-16_04.07.02-server.txt

Full crash report on Pastebin: https://pastebin.com/g0606TH0

Mod list (since Fabric API is not fully installed):

  • krypton-0.1.9
  • fabric-api-base-0.48.0
  • fabric-command-api-v1-0.48.0
  • fabric-lifecycle-events-v1-0.48.0
  • ferritecore-4.2.0-fabric
  • lazydfu-0.1.2
  • lithium-fabric-mc1.18.2-0.7.9
  • starlight-1.0.2+fabric.89b8d9f
  • vmp-fabric-mc1.18.2-0.2.0+beta.3.17-all

Removing fabric-lifecycle-events-v1-0.48.0 fixes the crash.

commented

Can be fixed by putting this line in the Lithium config

mixin.alloc.entity_tracker=false
commented

It seems like removing fabric-lifecycle-events-v1-0.48.0 fixed it earlier, but now removing it seems to have no effect. I need to investigate this further. Leaving this open just in case you can repro anyway.

commented

It seems to be a non-deterministic conflict with Lithium. When the server starts up correctly, this entry can be seen in the log:

[04:49:30] [Server thread/WARN] (FabricLoader/Mixin) @Redirect conflict. Skipping lithium.mixins.json:alloc.entity_tracker.EntityTrackerMixin->@Redirect::useFasterCollection()Ljava/util/Set; from mod lithium with priority 1000, already redirected by krypton.mixins.json:shared.network.microopt.TacsTrackedEntityMixin->@Redirect::construct$useFastutil()Ljava/util/Set; from mod krypton with priority 1000

Edit: I've confirmed that repeatedly restarting the server will eventually result in a success. So definitely something nondeterministic.