Ellpeck / ActuallyAdditions

A Minecraft Mod about lots of useful gadgets and things!
http://minecraft.curseforge.com/projects/actually-additions
MIT License
215 stars 99 forks source link

Crash when exporting from AE2's ME system into Storage Crates #1281

Closed katubug closed 5 years ago

katubug commented 5 years ago

So I have never been so relieved and excited to receive a crash report. For the past week or so, my server has been having crashes every time someone tries to export from their ME system. Some of these have been catastrophic, creating enormous heapdump etc files that fill up the harddisk so rapidly that my server panel refuses to start and I can't connect to FTP. I've had to SSH in and delete the files via command in order to restore access. Unfortunately I haven't been able to download those files. None of them have produced an actual crash report, however, so I've had nothing to go on.

Anyway, so today was about the third time this has happened, and I went to restore the affected chunks from backup. I also downloaded the erroring region and loaded it up in singleplayer. Upon teleporting to the affected area, I crashed out, as I rather expected. But to my absolute delight, it produced a crash log. Here it is: https://paste.dimdev.org/zuqecijala.mccrash

I checked with my players and as far as we can recall, every time this crash has happened, it's specifically been using an export bus to transfer items into an AA crate (tbh we're all addicted, they're so good, thank you for making them, lol).

Here is some further diagnostic information:

katubug commented 5 years ago

Hmm. In my excitement, I went to go replicate this in singleplayer and I don't seem to be able to by creating a world and an ME system from scratch. I am not completely duplicating the erroring setup because I don't know exactly what that is, but a simple ME Drive/Crafting Terminal/Export Bus setup does not replicate the crash.

The only difference modwise between my server and my singleplayer client atm is that my singleplayer is using forge 2838 instead of 2846 (long story). However, since the region from the server produces the crash in singleplayer, I'm not sure that's related.

In case it helps, here is a link to the region file that the crash is occurring in. The coordinates of the offending area are -1489, 69, 576.

world.zip

katubug commented 5 years ago

Hoo boy so I think I've found a rabbit hole. After I was unable to replicate the issue in singleplayer, I decided to do some more testing. Here's my documentation of the process:

Attempts 1-6 were performed in the world "Ciuperca" - where the crash in the top post came from. In between each attempt, the region file (r-3.1.mca) was replaced from the original erroring version. The level.dat was not altered by me. Attempts 7-8 were performed in a copy of the server's map that I downloaded from backup, with region r-3.1.mca replaced with the erroring version.

  1. After removing Actually Additions/Actually Baubles: https://paste.dimdev.org/bidabuxohu.mccrash

  2. After removing EnderIO/EnderCore instead: https://paste.dimdev.org/cesadajami.mccrash

  3. After removing Applied Energistics/AE2Stuff instead: https://paste.dimdev.org/uputiteper.mccrash

  4. After removing AE2/AE2 Stuff, and ActuallyAdditions/ActuallyBaubles: I saw the world for a second, then https://paste.dimdev.org/azovuvakuy.mccrash

  5. After removing AE2/AE2 Stuff, and ActuallyAdditions/ActuallyBaubles, and the recently implicated BetterFoliage: https://paste.dimdev.org/warofaduva.mccrash

  6. After removing AE2/AE2 Stuff, and ActuallyAdditions/ActuallyBaubles, BetterFoliage, and Reliquary (mentioned in line 441 of previous crash): It loaded!!! However, block ID swaps had occurred, so I am loading up the server's world file into singleplayer, and including the erroring region.

  7. With AE2, AA, BF, and Reliquary removed, in server world: Loaded up correctly.

  8. With only Reliquary removed, in server world: LOADED IN! Hooray!

There is still a catch, though - the other player for whom the server crashed had a different setup, with no Reliquary blocks in the region.

AK (the player in the above report) is using EnderIO conduits to export items from the ME system into a crate. Fish, the other player, was using Fluix Cables. Fish was attempting to remove items via Fuzzy Card export with possibly-invalid NBT data (long story short - we had a major modpack update and reset the world but copied over playerdata, something I'm really beginning to regret, haha), but with AK I'd made sure to remove any invalid items manually before this latest crash occurred. So the items exported, method of export, and general surroundings were all different. The only common threads are the ME system and the Storage Crate.

I'm exhausted and need to go to bed. In the morning I'll be submitting this to the other mod authors (for AE2, EnderIO, and Reliquary) in the hopes that we can figure this out. In the meantime, I very much appreciate any input you may have on this!

Thank you for reading my novel and I apologize for my verbosity and possibly-incorrect bug report.

Shadows-of-Fire commented 5 years ago

Judging from all these crash reports... You have something that is causing the tile entities in the world to be totally invalid. They're not even on the correct blocks. I don't believe it is the fault of either AE, EIO, AA, or Reliquary.

It may be forge, as you said you were unable to reproduce this issue on an older forge version (and there's something in the changelog mentioning tile entities for build 2844).

However it may be another mod that interacts deeply with the world (NEID/JEID, etc) that has the capacity to break the tile map so severely.

Whatever it is, it's nothing that AA can fix, as somehow your world has a grinder tile entity where there should not be. What caused that, I can't tell, but something is incredibly wrong.

katubug commented 5 years ago

Yeah, I do use JEID and for a lot of those steps, I was using a world file that was different than the one the region was created on, which explains the ID conflicts. It would also explain why the two tests that I did using a copy of the same world the region was originally from, worked just fine. The removing of Reliquary at the end there was just me following a red herring.

This morning I attempted to load that same world but with my entire modlist - and still had no issues. So, I guess it's an issue with forge. Or something else.

In any case, I thank you for your insight and apologize again for my wild goose chase.