Dynamic Surroundings

Dynamic Surroundings

51M Downloads

Crash with VanillaFix and Looting VI

ToMe25 opened this issue ยท 20 comments

commented

Mod Versions:
OreLib 1.12.2-3.0.6.1
DynamicSurroundings 1.12.2-3.0.6.2
VanillaFix 1.0.10-99
LootingVI 1.12.2-1.3

Forge Version:
1.12.2-14.23.5.2847

Link to client log:
latest.log

Link to crash log:
crash-report

Description:

Description of the problem. In the case of crashes, it is good to know things like the following:

  • Did you just add the mod to a pack?

I just put all the involved mods together for some testing(which didn't help me all that much as i couldn't figure out how LootingVI and/or VanillaFix are involved in this Crash) as this crash got reported to me here.

  • Did it just start crashing, or has it always crashed?

idk.

  • Did you update any other mods in your pack and it started crashing? This includes Forge.

This isn't really a modpack.

  • If updating multiple mods did you update one by one or all at once? To help narrow the problem down adding one by one is helpful.

I tested this for other reasons and removing any of the mods prevents it from crashing, but i didn't test it with all older versions of the involved mods, so maybe that could solve it too.

  • Is the modpack you are using available online somewhere? If the crash is due to mod interaction having the pack available makes things much easier. It is much harder to work these types of issues with a private kitchen sink pack containing 250 mods.

I don't think it is, but its also only 4 mods, so it shouldn't be that hard to put together.

commented
commented

That jar has the here reported problem with VanillaFix 1.0.10-150, and the standard different mixin versions crash with VanillaFix 1.0.10-99, so no it didn't fix the issue, it just moved it to a newer version.

commented

I am having some trouble parsing what you wrote. :) Based on the traces you have provided above it looks like some of my mixin transforms are not being applied for some reason.

commented

hoping that it helps, here are the two crashes with the new version:
The log of the one that is basically like the one above with VanillaFix 1.0.10-150: XJcNN4Gq
and the crash-report(it didn't generate a latest.log for some reason) of the one with not matching mixin versions using VanillaFix 1.0.10-99: DS0s1ufW

commented

Try removing OTG Core. The OTG core mod also modifies Minecraft's Biome class and it could be their transformer is somehow wiping out the modifications my Mixin code is doing.

EDIT: The other weird thing is that the OTG transformer for Biome is called twice:

[10:22:34] [main/INFO] [STDOUT]: [com.pg85.otg.forge.asm.excluded.OTGClassTransformer:transform:77]: OTG-Core transforming: net.minecraft.world.biome.Biome : anh
[10:22:34] [main/INFO] [STDOUT]: [com.pg85.otg.forge.asm.excluded.OTGClassTransformer:transform:77]: OTG-Core transforming: net.minecraft.entity.projectile.EntityArrow : aeh
[10:22:34] [main/INFO] [STDOUT]: [com.pg85.otg.forge.asm.excluded.OTGClassTransformer:transform:77]: OTG-Core transforming: net.minecraftforge.registries.GameData : net/minecraftforge/registries/GameData
[10:22:35] [main/INFO] [STDOUT]: [com.pg85.otg.forge.asm.excluded.OTGClassTransformer:transform:77]: OTG-Core transforming: net.minecraft.world.biome.Biome : anh
commented

Sorry, i forgot to remove OTG-Core and CoFH-Core because they are in a subdirectory of mods, this doesn't change the crash tho: latest.log

commented

I have tried to find the issue for quite some time before reporting, but i couldn't find anything, also i have no idea how LootingVI can have any impact on this as it doesn't use Mixin and isn't doing anything with biomes.

commented

I've been thinking about it, too, and it doesn't make too much sense. Both DS and VF use Mixin for Coremodding, and LootingVI uses the classic method. I noticed that in LootingVIs; transforms use ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES when rewriting the class. In the past with DS (pre Mixin) I ran into problems specifying both on occasion. I recommend limiting to COMPUTE_MAXS unless you really need to recompute frames.

EDIT: I am not saying that the above is the cause - just passing along what I learned in my travels.

commented

I actually have no idea what they do, i just looked the value for that method up and found that many ppl use "ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES" so i used it too,
if you think that could cause the problem, i can spend some more time trying to understand what these do and whether i need them both, in that case just let me know :)

commented

The way I eventually settled that question was just to have COMPUTE_MAXS, and when I did something that Java didn't like (usually a crash during execution - not loading - related to stack frames) I would add COMPUTE_FRAMES.

EDIT: The other thing you could do is go Mixin. The reason why I went that direction was because you could leverage Java to do what you want. With manipulating byte code directly it was a real pain trying to debug the rewritten code, not to mention getting it right.

commented

I've been looking at this issue and it is pretty weird. It seems to only happen when DS, Looting, and VF are together. Remove any one of those mods and the client starts. The failure appears that the Mixin I have for Biome is not firing for some unexplained reason. (Search for Mixing MixinBiome from mixins.dsurround.json into net.minecraft.world.biome.Biome in the logs, and when all 3 are present you will not find it.) Since the Mixin doesn't fire, the changes that were supposed to be present aren't and thus fails with the cast failure.

commented

I will try that with just COMPUTE_MAXS later today or tomorrow.
I wont change LootingVI to Mixins tho as i see the mod as mostly finished and also don't want to basically rewrite half the mod again for something that could be used instead of asm.

commented

I changed that, and while it doesn't seems to cause any new Issues it also doesn't fix this one, i will do some more tests, and upload the change to github, i wont however upload a build to curseforge as it doesn't seems to fix this or any other issue.
In case you need the changed version for testing: LootingModMC1.12.2-1.3.1.jar.zip

commented

Changing DS to use MixinBootstrap.

commented

Posted 3.6.2.0 to CurseForge as BETA. MixinBoostrap will also need to be installed.

commented

@OreCruncher for me the new Beta 3.6.2.0 still causes the same crash, with the latest forge version(14.23.5.2854),
VanillaFix 1.0.10-150,
OreLib 3.6.0.1,
MixinBootstrap 1.0.5
and the here uploaded test LootingVI version, as well as the latest curseforge version.
here a new latest.log: https://pastebin.com/srjRB34V

commented

Try adding https://www.curseforge.com/minecraft/mc-mods/mixin-0-7-0-8-compatibility.

EDIT: BTW, Mixin is at 0.8.2. VanillaFix uses 0.8. Not sure if that makes a difference. The latest MixinBootstrap uses 0.8.2. May want to download an "older" version of bootstrap that uses an older version of Mixin.

commented

I added the latest version of the mixin compat mod, and downgraded MixinBootstrap to 1.0.3, which should use Mixin 0.8, and it still causes the same exception.

commented

@OreCruncher can you please tell me the mod versions it worked with for you, and/or reopen this issue, as i can't seem to get it to work

commented

Right now it is looking like the issue is with Mixin. What I see happening is that two of the mixin transforms I have defined are not being applied (Biomes and Items) and when DS goes looking for the transformed logic it fails to find and dies. Removing either of the other two mods the transforms apply. Right now I am trying to figure out what knobs I can twist to improve things but to no avail.