Electroblob's Wizardry

Electroblob's Wizardry

18M Downloads

[1.12.2] Out of Memory Crash

MokahTGS opened this issue ยท 15 comments

commented

Minecraft version: 1.12.2
Wizardry version: 4.1.1
Environment: Singleplayer

Issue details: Creating a new world gives a crash: Out of Memory. I've got an instance setup with 8gigs of ram on a 16gig machine. There are that many mods and I'm running other mod packs with many more just fine. Something else here is at play.

Other mods involved: https://pastebin.com/Vz60qj72

Link to crash report (if applicable): https://pastebin.com/DR5Ur4K7

commented

I see this in your crash report:

Remove FoamFixAPI (or replace with FoamFixAPI-Lawful) and try again. (foamfix-0.9.9-1.12.2-anarchy.jar)
  pl.asie.foamfix.coremod.FoamFixTransformer

I would try removing FoamFix and trying running without it.

commented

Do not report to Forge! Remove FoamFixAPI (or replace with FoamFixAPI-Lawful) and try again. (foamfix-0.9.9-1.12.2-anarchy.jar)
The fact that someone has thought to put this in here suggests to me that FoamFixAPI is messing with something behind-the-scenes, so try running without it. If the issue persists, post your new crash report here.

commented

I'll try it but I have it running in another mod pack with Foamfix and never had that issue.

commented

I have it running in another mod pack

It must be a compatibility issue then. Unfortunately I can't tell what it might be incompatible with from that crash report. If it isn't foamfix, could you try removing each of the mods that aren't in the working modpack from the broken modpack one by one to figure out which one is making it crash?

commented

So I am trying to use this in a mod pack where we are turning off the overworld using Void Island Control. I turned off wizard towers generating in dim 0 and changed it to 20 and 7 which are the Betweenlands and Twilight Forest. The crashing stopped and we have wizard towers in the betweenlands, but this is in the log:

13:15:08] [Server thread/WARN] [FML]: Electroblob's Wizardry loaded a new chunk [53, 6] in dimension 20 (betweenlands) while populating chunk [54, 6], causing cascading worldgen lag.
[13:15:08] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.

commented

Ah ok, that's not a big deal. It just means that a tower has spawned at the edge of the currently generated chunks and overlapped into chunks that haven't been generated yet. For large structures, this can set off a sort of chain reaction, hence the warning, but because wizard towers are less than a chunk wide you're unlikely to notice anything. I do need to make it so that this doesn't happen, but it's low-priority at the moment.

commented

I'm going to leave this open for now while I test things, if you don't mind. If I can confirm the crashing has stopped completely, I'll update and close it.

commented

Ok no problem, thanks.

commented

Still getting this crash on creating a new world: https://paste.dimdev.org/dunexapedu.mccrash

I don't have Foam Fix installed.

Mod list: https://pastebin.com/ctYKYdbB

commented

Running Vanilla Fix it calls out Just Enough Dimensions as well. Not sure what's happening, but its having some issue trying to generate the overworld.

commented

So this crash only happens with the Lost Cities mod world generation. I'm testing with the Space preset and it crashes. If I use a default vanilla style world it doesn't crash.

The incompatibility might be with that mods world generation. Any chance that can be fixed?

commented

Just had the same issue, on a vanilla Void type world.

[23:39:11] [Server thread/ERROR]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Exception ticking world
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:762) ~[MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) ~[MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185) ~[chd.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Caused by: java.lang.OutOfMemoryError: Java heap space
	at java.util.HashMap.resize(HashMap.java:703) ~[?:1.8.0_51]
	at java.util.HashMap.putVal(HashMap.java:662) ~[?:1.8.0_51]
	at java.util.HashMap.put(HashMap.java:611) ~[?:1.8.0_51]
	at java.util.HashSet.add(HashSet.java:219) ~[?:1.8.0_51]
	at electroblob.wizardry.WizardryWorldGenerator.generateWizardTower(WizardryWorldGenerator.java:247) ~[WizardryWorldGenerator.class:?]
	at electroblob.wizardry.WizardryWorldGenerator.generate(WizardryWorldGenerator.java:64) ~[WizardryWorldGenerator.class:?]
	at net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:167) ~[GameRegistry.class:?]
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1020) ~[axw.class:?]
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999) ~[axw.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157) ~[on.class:?]
	at net.minecraft.server.management.PlayerChunkMapEntry.func_187268_a(PlayerChunkMapEntry.java:126) ~[ot.class:?]
	at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:147) ~[ou.class:?]
	at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227) ~[oo.class:?]
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756) ~[MinecraftServer.class:?]
	... 4 more
java.lang.OutOfMemoryError: Java heap space
	at java.util.HashMap.resize(HashMap.java:703)
	at java.util.HashMap.putVal(HashMap.java:662)
	at java.util.HashMap.put(HashMap.java:611)
	at java.util.HashSet.add(HashSet.java:219)
	at electroblob.wizardry.WizardryWorldGenerator.generateWizardTower(WizardryWorldGenerator.java:247)
	at electroblob.wizardry.WizardryWorldGenerator.generate(WizardryWorldGenerator.java:64)
	at net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:167)
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1020)
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999)
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157)
	at net.minecraft.server.management.PlayerChunkMapEntry.func_187268_a(PlayerChunkMapEntry.java:126)
	at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:147)
	at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227)
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756)
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
	at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
	at java.lang.Thread.run(Thread.java:745)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
	at java.util.HashMap.resize(HashMap.java:703)
	at java.util.HashMap.putVal(HashMap.java:662)
	at java.util.HashMap.put(HashMap.java:611)
	at java.util.HashSet.add(HashSet.java:219)
	at electroblob.wizardry.WizardryWorldGenerator.generateWizardTower(WizardryWorldGenerator.java:247)
	at electroblob.wizardry.WizardryWorldGenerator.generate(WizardryWorldGenerator.java:64)
	at net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:167)
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1020)
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999)
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157)
	at net.minecraft.server.management.PlayerChunkMapEntry.func_187268_a(PlayerChunkMapEntry.java:126)
	at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:147)
	at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227)```
commented

Update:

while(flag){
flag = false;
for(BlockPos offset : foundationLayer){
if(!world.isBlockNormalCube(layerCentre.add(offset), false)){
world.setBlockState(layerCentre.add(offset), wallMaterial);
blocksPlaced.add(layerCentre.add(offset));
// Keeps going as long as something was filled in.
flag = true;
}
}
layerCentre = layerCentre.down();
}

The issue is caused by this loop, you can easily fix this by breaking after too many failed attempts

commented

Ok sounds like this is a duplicate of #73 then (I suppose it's the other way round since this is older, but that issue is more descriptive).

commented

Having now encountered this issue myself, I hope the information I've managed to discern helps this get resolved. This was particularly annoying as for me it didn't actually crash, it just hung the client and nearly fully locked up my PC.

  1. This happens in any void type worldgen. I was able to reproduce it separately using Void Island Control and YUNoMakeGoodMap as void type generators.
  2. It's 100% caused by tower worldgen. In an instance with just VIC and EBWiz, I was able to gen a world fine with the tower gen rarity config set to 0, but encountered the issue as soon as I set it back to anything else. Based on @MokahTGS's comments above, it sounds like it'll also work fine if set to gen in a different dimension - if set to the overworld the issue occurs.
    It seems like a safe bet there's something going wrong with it trying to find a place to spawn (and failing because of the void).