McJtyMods / RFToolsDimensions

Companion mod for RFTools which handles the dimensions
MIT License
63 stars 24 forks source link

Game crash entering singleplayer game #243

Open Garagoth opened 5 years ago

Garagoth commented 5 years ago

Issue description: Game crashes when loading previously working world. More, in this save there are NO rftools dimensions created.

Versions:

Crash: https://pastebin.com/E1zf5fun

Description: Exception in server tick loop

java.lang.NullPointerException: Exception in server tick loop at mcjty.rftoolsdim.dimensions.world.GenericChunkGenerator.(GenericChunkGenerator.java:215) at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.func_186060_c(GenericWorldProvider.java:356) at net.minecraft.world.WorldServer.func_72970_h(WorldServer.java:848) at net.minecraft.world.WorldServer.(WorldServer.java:118) at net.minecraft.world.WorldServerMulti.(WorldServerMulti.java:18) at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:102) at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:209) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) at java.lang.Thread.run(Unknown Source)

josephcsible commented 5 years ago

More, in this save there are NO rftools dimensions created.

That seems unlikely given the stack trace you got. Are you sure about this? Anyway, two things to try:

  1. See if you can create a new saved game, create an RFTools dimension, go there, save and exit while there, then reload it without crashing
  2. Make a backup of the bad world, then try loading it with just RFTools Dimensions and its dependencies installed
Garagoth commented 5 years ago

Yes, 100% sure I did not create any dimensions. There are no necessary machines placed even and never were. I am mildly confident that this is first load of this save with rftools dimensions installed...

I will try 1 and 2 in a while (takes time obviously).

Garagoth commented 5 years ago

I noticed that there is an empty folder in saves/MySave/ called RFTOOLS3. Not a single file was there. When I removed it save loaded with no issues.

EDIT: Uh, no, scratch this out. Still happening. The directory got created again when saving game, still empty. Cannot start that save, now gives me:

[Server thread/ERROR] [mcjty.lib.varia.Logging]: Catching
java.lang.RuntimeException: Dimension information for dimension 3 is missing!
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.getDimensionInformation(GenericWorldProvider.java:91) [GenericWorldProvider.class:?]
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.createBiomeProviderInternal(GenericWorldProvider.java:229) [GenericWorldProvider.class:?]
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.func_76572_b(GenericWorldProvider.java:220) [GenericWorldProvider.class:?]
    at net.minecraft.world.WorldProvider.func_76558_a(WorldProvider.java:40) [aym.class:?]
    at net.minecraft.world.WorldServer.<init>(WorldServer.java:116) [oo.class:?]
    at net.minecraft.world.WorldServerMulti.<init>(WorldServerMulti.java:18) [ok.class:?]
    at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:102) [chd.class:?]
    at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:209) [chd.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_181]

followed by

[Server thread/INFO] [mcjty.lib.varia.Logging]: Error: setSeed() called with null diminfo. Error ignored!
[Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
java.lang.NullPointerException: null
    at mcjty.rftoolsdim.dimensions.world.GenericChunkGenerator.<init>(GenericChunkGenerator.java:215) ~[GenericChunkGenerator.class:?]
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.func_186060_c(GenericWorldProvider.java:356) ~[GenericWorldProvider.class:?]
    at net.minecraft.world.WorldServer.func_72970_h(WorldServer.java:848) ~[oo.class:?]
    at net.minecraft.world.WorldServer.<init>(WorldServer.java:118) ~[oo.class:?]
    at net.minecraft.world.WorldServerMulti.<init>(WorldServerMulti.java:18) ~[ok.class:?]
    at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:102) ~[chd.class:?]
    at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:209) ~[chd.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_181]

Even better, the same happens if I just: create new world save and quit try to load it again

Garagoth commented 5 years ago

It seems like removing Advanced Rocketry mod makes this problem go away. Weird?

McJty commented 5 years ago

Looks like a dimension conflict between both mods. Was advanced rocketry added later?

Garagoth commented 5 years ago

No, RFTools Dimensions were added later, however this did not happen on server, happened on client after both mods were added and AR was then updated. Is there anything I can get to help here? Not sure where to look next.

EDIT: I wasn't able to reproduce it with a clean install of AR and RFTools Dimensions only. So something mote then just AR might be interfering.

Cazadorsniper commented 5 years ago

We're not using AR and this crash happens in PO3. Anytime one of our testers join the testing server then exit to create a singleplayer world, this crash happens.

josephcsible commented 5 years ago

@Cazadorsniper your issue is a duplicate of #205 and is unrelated to this issue.

Cazadorsniper commented 5 years ago

Yeah, noticed that after I commented.

Yarillo4 commented 4 years ago

Same error here on All the Mods 3 - Remix 1.5.2. Singleplayer crashes but multiplayer works

https://www.curseforge.com/minecraft/modpacks/all-the-mods-3-remix

The crash happens when loading any world. I've tested on an old Vanilla save downloaded from the internet and on a brand new save

https://paste.dimdev.org/ohinutufuf.mccrash

When I disable Advanced Rocketry, the crash goes away

jdratlif commented 4 years ago

I am not using Advanced Rocketry, but I also get a crash like this.

https://paste.dimdev.org/yuluhozebi.mccrash

xGarionx commented 4 years ago

https://paste.dimdev.org/woyefadifu.mccrash And another one of these .

All people on the server have this issue, however this crash only appears in the modpack after entering a Multiplayer World and then open a Single Player

jdratlif commented 4 years ago

I couldn't narrow it down to when it would crash until you said that @xGarionx , but that's what is happening to us as well. If I start the game, things work fine. It's only if I try to quit mulitplayer and go into single player that I get the crash.

puchm commented 3 years ago

I also had this problem in the MC Eternal modpack. Modpack version is 1.3.7 with the following mods added:

Also only happens in singleplayer, not in multiplayer. It also happens when creating a new singleplayer world - I can't play singleplayer at all because of this. Removing the RFTOOLS3 folder within the world save as suggested before didn't change anything.

Important to note: This started happening today - yesterday everything worked just fine. I did not manually update anything, nor did my launcher. Does RFTools / RFTools Dimensions have some sort of automatic update? Maybe the modpack also has an automatic update but I don't think so. I will ask on their discord though.

Here's one of the many crash reports I got:

crash-2020-11-27_19.46.51-server.txt

Atricos commented 3 years ago

This exact crash also happens on the (upcoming) Divine Journey 2 modpack.

From what we've been able to test:

It crashes on this line every time: https://github.com/McJtyMods/RFToolsDimensions/blob/1.12/src/main/java/mcjty/rftoolsdim/dimensions/world/GenericChunkGenerator.java#L215

And it's always a NullPointerException, it seems like .getTerrainType() is returning null. I'm not familiar with the code enough to make further conclusions, but seeing as this is happening throughout multiple modpacks, it would be nice to get a fix.

If anyone's smart enough to make a Pull Request for this, I'll be forever greatful to you.

McJty commented 3 years ago

It's very weird that this suddenly starts happening because I've had no reports of this for RFTools Dimensions on 1.12 for ages. So I suspect some other mod is doing something bad. It's not easy to fix this. Just adding an if null test is not enough because if that information is missing then something more fundamental is wrong.

Also I no longer work on 1.12

Atricos commented 3 years ago

Seeing as RFTools Dimensions for 1.12.2 hasn't been updated for 2 years, but the crash only started occuring now, it has to be caused by a mod that has recently been updated, and is included in the modpacks mentioned above.

Edit: Though the original comment from this thread is from 2018, so maybe not.

Atricos commented 3 years ago

We've been able to deduce that the missing information comes from Galacticraft's Space Station dimension, and it only starts happening once someone loaded the dimension for the first time.

This is from a log file, right as the crash occured:

[19:13:13] [Server thread/ERROR]: Catching
java.lang.RuntimeException: Dimension information for dimension 3 is missing!
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.getDimensionInformation(GenericWorldProvider.java:91) [GenericWorldProvider.class:?]
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.createBiomeProviderInternal(GenericWorldProvider.java:229) [GenericWorldProvider.class:?]
    at mcjty.rftoolsdim.dimensions.world.GenericWorldProvider.init(GenericWorldProvider.java:220) [GenericWorldProvider.class:?]
    at net.minecraft.world.WorldProvider.setWorld(WorldProvider.java:40) [aym.class:?]
    at net.minecraft.world.WorldServer.<init>(WorldServer.java:116) [oo.class:?]
    at net.minecraft.world.WorldServerMulti.<init>(WorldServerMulti.java:18) [ok.class:?]
    at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:126) [chd.class:?]
    at net.minecraft.server.integrated.IntegratedServer.init(IntegratedServer.java:156) [chd.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]

And /forge dimensions shows that it's the "Space Station" dimension. This pack only has Galacticraft (not Advanced Rocketry), so that has to be the Galacticraft Space Station dimension: image

Possible cause: The client has the Space Station dimension loaded as an existing world, possibly in Cache/RAM, but it doesn't yet exist on Singleplayer, so when RFTools tries to load it, it fails.

Atricos commented 3 years ago

Turns out it IS a dimension ID conflict.

The reason for the crash: Both Galacticraft and RFTools Dimensions think ID 3 is available, (for a personal Space Station or an RFTools Dimension). The Space Station ID gets cached from the server, and when entering a Singleplayer world, RFTools Dimensions thinks it's available, so it tries to do something with it (pregenerate it?), but fails, because it already exists.

I'm not sure if this is on RFTools Dimensions or Galacticraft.

Possible workarounds: