snackbag / TT20

TT20 helps reduce lag by optimizing how ticks work when the server's TPS is low.
GNU Affero General Public License v3.0
10 stars 2 forks source link

Server Watchdog Mixin causes crashes on server start (Exception in server tick loop) #4

Closed Kardane closed 1 week ago

Kardane commented 1 week ago

Crash at 1.20.6 fabric server start up

Crash Report:

java.lang.RuntimeException: Mixin transformation of net.minecraft.server.dedicated.DedicatedServerWatchdog failed at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427) at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) at app//net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) at java.base@22.0.1/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at MC//net.minecraft.server.dedicated.MinecraftDedicatedServer.setupServer(MinecraftDedicatedServer.java:200) at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:658) at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:275) at java.base@22.0.1/java.lang.Thread.run(Thread.java:1570) Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered at app//org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) at app//org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) at app//org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ... 8 more Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Callback method cancelServerWatchdog(J)J in tt20.mixins.json:DedicatedServerWatchdogMixin from mod tt20 failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap tt20-0.5.0+mc1.20.1-refmap.json at app//org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:468) at app//org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1384) at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1062) at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:402) at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327) at app//org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:422) at app//org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) at app//org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ... 11 more

==========================

Used Mods: alternate-current: Alternate Current 1.8.0-beta.4 better-fabric-console: Better Fabric Console 1.1.9 carpet: Carpet Mod 1.4.141+v240429 cloth-config: Cloth Config v14 14.0.126 eyespy: Eye Spy 1.3.7+1.20.5 fabpose: FabPose 1.0.0+1.20.6 fabric-api: Fabric API 0.99.0+1.20.6 fabric-language-kotlin: Fabric Language Kotlin 1.10.20+kotlin.1.9.24 fabricloader: Fabric Loader 0.15.11 farmtweaks: FarmTweaks 1.1+1.20.6 ferritecore: FerriteCore 6.1.1 fullstackwatchdog: FullStack Watchdog 1.0.1+1.19.2-fabric invview: InvView 1.4.15-1.20.5+ java: Java HotSpot(TM) 64-Bit Server VM 22 karns_usefulcommand: karnsusefulcommand 2.0 koreanchat: koreanChat 1.4 krypton: Krypton 0.2.7 lithium: Lithium 0.12.3 luckperms: LuckPerms 5.4.125 midnightlib: MidnightLib 1.5.5 minecraft: Minecraft 1.20.6 modernfix: ModernFix 5.17.3+mc1.20.6 nochatreports: No Chat Reports 1.20.6-v2.7.0 noisium: Noisium 2.1.0+mc1.20.5-1.20.6 notica: Notica 1.1.3+1.20.6 polymer-bundled: Polymer 0.8.4+1.20.6 potatoptimize: potatoptimize 0.0.1 recipecooldown: Recipe Cooldown 1.17.1-1.0.0 score-migrator: Score Migrator 1.20.3-1.0.2 semblance: Semblance 1.1.5 spark: spark 1.10.65 stackdeobfuscator: StackDeobfuscator 1.4.3+08e71cc styledchat: Styled Chat 2.5.0+1.20.5 styledplayerlist: Styled Player List 3.4.0+1.20.5 suggestion_tweaker: Suggestion Tweaker 1.20.6-1.5.2 threadtweak: ThreadTweak 1.20.6-0.1.3 tt20: TT20 0.5.0 worldedit: WorldEdit 7.3.2+6779-3aca580

JXSnack commented 1 week ago

Heyho! This should be fixed in the update I'm about to release. I'll notify you again when it's released :]

JXSnack commented 1 week ago

I've just released a potential fix on Modrinth and GitHub - Please tell me if this fixed it

guicale commented 1 week ago

I'm getting the same exception on 1.20.4, using version 5.1 of the mod:

java.lang.RuntimeException: Mixin transformation of net.minecraft.server.dedicated.DedicatedServerWatchdog failed
        at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427)
        at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323)
        at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
        at app//net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119)
        at java.base@17.0.11/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
        at MC//net.minecraft.server.dedicated.MinecraftDedicatedServer.setupServer(MinecraftDedicatedServer.java:189)
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:650)
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270)
        at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
        at app//org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392)
        at app//org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
        at app//org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
        at app//net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422)
        ... 8 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Callback method cancelServerWatchdog(J)J in tt20.mixins.json:DedicatedServerWatchdogMixin from mod tt20 fa  led injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap tt20-0.5.1+mc1.20.1-refmap.json
        at app//org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:468)
        at app//org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1384)
        at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1062)
        at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:402)
        at app//org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327)
        at app//org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:422)
        at app//org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403)
        at app//org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
        ... 11 more

My mod list is:

JXSnack commented 1 week ago

Could you provide the whole modpack as a file? (only if it's possible, i'm currently recreating it myself)

Edit: could reproduce by recreating the modpack

guicale commented 1 week ago

I've found that the exception still happens without any other mods enabled (only Fabric API and TT20 5.1), running 1.20.4 with Fabric Loader 0.5.11 on Debian Stable with OpenJDK 17. I can still provide all the mod files, though I don't see much use in that.

JXSnack commented 1 week ago

Update: This happens on all versions above 1.20.2

JXSnack commented 1 week ago

I've made a hotfix which disables the server watchdog. I'll try to find a fix tomorrow 1.20.1-1.20.4 1.20.5-1.20.6 1.21

JXSnack commented 1 week ago

I found the solution! The issue was that the refmap was for 1.20.1, but the obfuscated method/class/field mappings were incorrect. This should be fixed in the 0.6.0 release!

Legendmanj commented 1 week ago

I found the solution! The issue was that the refmap was for 1.20.1, but the obfuscated method/class/field mappings were incorrect. This should be fixed in the 0.6.0 release!

please mind giving me the 0.6.0 version when it is released ;)

JXSnack commented 1 week ago

Just released v0.6, check it out on Modrinth -- If this issue persists, please reopen it or make a new one.