TerminatorNL / LagGoggles

A minecraft forge mod which visualises lag in the world
GNU General Public License v3.0
54 stars 20 forks source link

Unable to load most recent version with TownCraft Thin or Fat. #70

Closed ProsperCraft closed 5 years ago

ProsperCraft commented 5 years ago

Describe the bug Unable to run after updating.

To Reproduce update TownCraft mods, start.

If you are using SpongeForge, which version are you using? Not on the client.

https://gist.github.com/ProsperCraft/d34a68b1a4efc5c0b89b98005044c1c3

latest.log debug.log

LagGoggles-FAT-1.12.2-4.6

TerminatorNL commented 5 years ago

There's two possibilities here:

RandomPatches

[21:14:32] [main/DEBUG] [randompatches]: Transforming class: net.minecraft.entity.Entity
[21:14:32] [main/DEBUG] [randompatches]: Patching method: func_189511_e (writeToNBT)
[21:14:32] [main/DEBUG] [randompatches]: Patching method: func_70020_e (readFromNBT)

Wizardry

[21:14:34] [main/INFO] [STDOUT]: [com.teamwizardry.wizardry.asm.WizardryTransformer:log:35]: [wizardry ASM] Successfully patched -> 'func_76979_b', 'doRenderShadowAndFire' with '(Lnet/minecraft/entity/Entity;DDDFF)V'

Resulting in...

[21:14:34] [main/ERROR] [mixin]: Critical problem: mixins.laggoggles.json:MixinEntity target net.minecraft.entity.Entity was already transformed.

Try temporarily disabling these mods, and see if that works. I would start with RandomPatches, since RandomPatches initiated the class load.

This isn't really a LagGoggles bug, but more of a incompatibility with Mixin on (probably) Wizardry or RandomPatches' side.

If you could let me know what worked for you, that'd be great

TerminatorNL commented 5 years ago

By the way, the newer LagGoggles version is more strict at checking if classes transformed or not, older versions of LagGoggles probably failed as well, but still allowed Minecraft to load. This will result in incorrect timings, that's why the crash was implemented to prevent undefined behaviour, which is unacceptable for a profiling mod ;)

ProsperCraft commented 5 years ago

Still, same problem with wizardry and random patches disabled.

I will temporarily remove the mod from the pack and mark it as incompatable so I can get this update out, and will have to troubleshoot more later.

TerminatorNL commented 5 years ago

Woops, looks like I missed another transformer...

LLibrary Core

[21:14:35] [main/INFO] [LibrarianLib ASM]: Applying Transformation to method (Names [updateEntityWithOptionalForce, func_72866_a] Descriptor (Lnet/minecraft/entity/Entity;Z)V)
ProsperCraft commented 5 years ago

It was incompatible with my other packs DrTARDIS 2, and Ancient TownCraft, so removed from those for now as well until we can figure it out.

TheDeviantCrafter commented 5 years ago

I'm running into a similar issue. I tried disabling Librarian Lib, Creative Core, Open Computers and Quark since they created a similar log message to this:

Transforming class: net.minecraft.entity.Entity

That didn't work.

Latest.log: https://pastebin.com/AWHJx23c

It doesn't create a crash log.

TerminatorNL commented 5 years ago

@TheDeviantCrafter

You might be intrested in looking in to:

[17:58:09] [main/INFO] [ShetiPhian-ASM]: Attempting: Injection of Run Particle Override into Entity.createRunningParticles
[17:58:09] [main/INFO] [ShetiPhian-ASM]: Searching for: Entity.createRunningParticles (func_174808_Z)
[17:58:09] [main/INFO] [ShetiPhian-ASM]: Found Method: Entity.createRunningParticles
[17:58:09] [main/INFO] [ShetiPhian-ASM]: Injecting: Run Particle Override
ProsperCraft commented 5 years ago

Are you seeing downloads of the new version with any modpacks?

TerminatorNL commented 5 years ago

@ProsperCraft ~48,700 downloads in 19 days for the latest version according to the download page on curse. I don't know where to check version-specific dependent modpacks.

The thing here is, a coremod is changing a class in such a way, that Mixin cannot modify it. (It modifies the class before Mixin, thus bypassing it)

Mixin is a tool that helps multiple modders modify the same class without having these issues. A mod that doesn't use mixin is not aware of any other transformers. When this happens, transforming the classes becomes a free-for-all. This is exactly what Mixin is designed to prevent, but sadly, not all mods use Mixin.

Don't get wrong, a pure mixin-based modpack can also shit the bed, it's just less likely.

The only reasonable solutions here are to either:

There's nothing I can do about this. I already attempted maximum compatibility by using Mixin, and support SpongeForge on top of that.