Concurrent Modification Exception when generating worlds

Issue #35 new
The Stick created an issue

A friend of mine is creating a modpack that admittedly has over 300 mods. (She doesn't think small at all)

She currently is having issues generating chunks in her world. A crash log is attached; the short version is essentially that several mods registered their hook in worldgen - Glenn's Gasses being one - and something has modified a HashMap when generating a structure.

Of the mods that could be easily spotted, TTFTCuts's ATG, Reika's ChromatiCraft, Natura, Chococraft, ShadowMage's Ancient Warfare, Azanor's Thaumcraft, and (of course) Glenn's Gasses all have their fingers in it. However, Glenn's Gasses show up three separate times in the stack trace, so people on #MinecraftForge seem to think that the issue's coming from it.

If there was any way to fix the issue besides removing Glenn's Gasses, it would be very much appreciated.

(Oh, and we're already aware of the williewillus BugfixMod NullPointer on line 805, that has been resolved separately)

Comments (9)

  1. Trent VanSlyke

    As far as I know we are not doing any concurrent world generation, so I would advise you to look in other mods. Try ATG, as it's the very first referenced mods. I'll keep looking into it, though. Try up- or down- grading Forge, just in case?

  2. The Stick reporter

    @trentv4 - I've already talked with TTFTCuts (owner / maintainer of ATG) via IRC before leaving this Issue and he says it's nothing to do with his mod, all he does is hand off control to other mods.

    The modpack developer has already tried using bleeding edge Forge (exact build number escapes me atm), but I don't believe has tried older versions just yet. We'll look into that tonight.

  3. Trent VanSlyke

    It's actually "@Trentv4" (@ trentv4), haha. Older versions sometimes work where bleeding edge doesn't, I've found. I just peeked through our source and it doesn't look like an issue with us at all. I believe that the extra mentions of GG/GF is because we split them into two different mods, with their own worldgen hooks.

  4. The Stick reporter

    ( Fixed it when I noticed it wasn't right - email doesn't show handles )

    I take it that it's normal for Glenn's Gasses to show up three or four times in the stacktrace, then, calling what appears to be the same line? (getPlacementVolume - GasWorldGenPocket line 47, six times in the provided stacktrace - and GasWorldGenDiabalinePocket line 33, also six times in stacktrace)

  5. The Stick reporter

    So, checked with the modpack dev right now. She's used bleeding edge (aka b1492) as well as recommended (aka b1448 - neither have worked. Additionally, she's not willing to use anything before b1448 because she's concerned some of the other 300+ mods require b1448 at minimum.

  6. Trent VanSlyke

    That's alright then. I'll keep looking just to be sure, and I'll check with Glenn when he comes online just to make sure I didn't miss anything.

  7. Erlend Åmdal repo owner

    Glenn's Gases, or more correctly, the Gases Framework has gas pocket world generation that suffers from the same problem ore generators do. They bleed over chunk borders, which can lead to one chunk being requested causing additional chunks being loaded. It is the reason the stack trace shows signs of recursion.

    What is strange is that the ConcurrentModificationException happened instantly when the ATGChunkProvider was for some reason involved. It seems ChromatiCraft's bytecode patch on ChunkProviderServer is failing because of some state. In the trace below, the world generation is intercepted by ChromatiCraft at line 280 in ChunkProviderServer.

    #!
        ...
        at Reika.ChromatiCraft.Auxiliary.ChromaAux.interceptChunkPopulation(ChromaAux.java:45)
        at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:280)
        at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1045)
        ...
    

    In this trace, however, it is not intercepted at line 279 in ChunkProviderServer.

    #!
        ...
        at ttftcuts.atg.ATGChunkProvider.func_73153_a(ATGChunkProvider.java:384)
        at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:279)
        at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1040)
        ...
    

    I'll drop a message to the ChromatiCraft dev and see what's up. I would open an issue there, but they don't have an issue tracker.

  8. Erlend Åmdal repo owner

    After some further analysis it seems ChromatiCraft's patch of ChunkProviderServer is irrelevant. Something might be wrong with the way we handle world generation, or it could be general incompatibility. There are some known issues with gas world gen using certain forge versions, and this error might be related to it.

  9. Log in to comment