[Bug] Conflict with other mods using mixinextras
supersaiyansubtlety opened this issue ยท 14 comments
Bug Description
When Debugify is loaded alongside either of two of my mods Recipe Reshaper or Chicken Nerf, the game crashes on startup with the error
Caused by: java.lang.LinkageError: loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @5034c75a attempted duplicate class definition for com.llamalad7.mixinextras.MixinExtrasBootstrap
Here are the issues on my side
https://gitlab.com/supersaiyansubtlety/recipe_reshaper/-/issues/3
https://gitlab.com/supersaiyansubtlety/chicken_nerf/-/issues/6
How to Reproduce?
- install chicken_nerf 1.0.16 or recipe_reshaper 1.0.6 alongside debugify 2.3.2 and required dependencies
- start server
- the game will crash
Expected Behavior
The game starts normally
Version
2.7.1
Fabric/Quilt Loader Version
Minecraft 1.19 with Fabric Loader 0.14.10
Logs or additional context
Logs are in the issues on my side.
The logs say version 2.3.2 of debugify, but I've reproduced the issue using 2.7.1.
Is there a reason you initialize mixinextras in a mixin plugin and not in a preLaunch entrypoint as suggested by mixinextras?
That's the only oddity I can think of that would cause this issue, as my mods work alongside other mods that initialize mixinextras via preLaunch as usual.
Has not been reported.
- I made sure this bug hasn't already been reported.
Is on most update to date version.
- I made sure I am using the most up to date fabric/quilt loader and mod version.
Can you confirm 12182ad fixes your issue?
i think im having this issue as well, when i backtrack to the previous debugify update my game launches fine
Mine also references a mixin error
@ElfKing94 does it reference mixinextras?
A latest.log would be ideal.
A mod crashed on startup!
net.fabricmc.loader.impl.FormattedException: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'debugify'!
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:164)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'debugify'!
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:162)
... 2 more
Caused by: java.lang.LinkageError: loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @21a947fe attempted duplicate class definition for com.llamalad7.mixinextras.MixinExtrasBootstrap. (com.llamalad7.mixinextras.MixinExtrasBootstrap is in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @21a947fe, parent loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader$DynamicURLClassLoader @25359ed8)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.defineClassFwd(KnotClassLoader.java:186)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:347)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:145)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:50)
at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:117)
at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53)
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
... 4 more
this would be the newest version of debugify. testing a build with just debugify now
debugify is fine on its own. not sure yet which mod is interfereing to give clue where break is
@supersaiyansubtlety I just checked Debugify, Recipe Reshaper, and Chicken Nerf, they all properly init MixinExtras in their fabric.mods.json file. The problematic mod in your modpack is trying to init MixinExtras in their Mixin Plugins like they should not be doing. So none of these three mods are at fault.
Do you have Stonecutter Groups or Spectrum in your modpack? Those two mods are using MixinPlugins to init MixinExtras which will cause other mods that do init MixinExtras properly to break with the stacktrace you shown. I already pinged the devs of those two mods and Spectrum dev replies saying they will fix it next update for Spectrum which may be a week from now.
@TelepathicGrunt Debugify used to init it in a plugin, I hadn't realized they'd released a version that switched to preLaunch.