Refined Storage

Refined Storage

77M Downloads

Storage disk issue after upgrading from 1.15.2 -> 1.16.3

jmhossler opened this issue ยท 6 comments

commented

Issue description:

What happens:

When migrating to 1.16.3 from 1.15.2, after I open up the world I cannot access or add storage disks to a disk drive.

I get this error message in the server log, which might be related:


[19:34:48] [Server thread/ERROR] [minecraft/DimensionSavedDataManager]: Error loading saved data: refinedstorage_disks
java.lang.NullPointerException: null
        at net.minecraft.nbt.NBTUtil.func_186860_b(SourceFile:167) ~[?:?] {re:classloading}
        at net.minecraft.nbt.CompoundNBT.func_186857_a(CompoundNBT.java:133) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
        at com.refinedmods.refinedstorage.apiimpl.storage.disk.StorageDiskManager.func_76184_a(StorageDiskManager.java:104) ~[refinedstorage:1.9.9] {re:classloading}
        at net.minecraft.world.storage.DimensionSavedDataManager.func_223409_c(DimensionSavedDataManager.java:69) ~[?:?] {re:classloading}
        at net.minecraft.world.storage.DimensionSavedDataManager.func_215753_b(DimensionSavedDataManager.java:52) ~[?:?] {re:classloading}
        at net.minecraft.world.storage.DimensionSavedDataManager.func_215752_a(DimensionSavedDataManager.java:37) ~[?:?] {re:classloading}
        at com.refinedmods.refinedstorage.apiimpl.API.getStorageDiskManager(API.java:198) ~[refinedstorage:1.9.9] {re:classloading}
        at com.refinedmods.refinedstorage.item.StorageDiskItem.func_77659_a(StorageDiskItem.java:86) ~[refinedstorage:1.9.9] {re:classloading}
        at net.minecraft.item.ItemStack.func_77957_a(ItemStack.java:214) ~[?:?] {re:computing_frames,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A}
        at net.minecraft.server.management.PlayerInteractionManager.func_187250_a(PlayerInteractionManager.java:287) ~[?:?] {re:classloading}
        at net.minecraft.network.play.ServerPlayNetHandler.func_147346_a(ServerPlayNetHandler.java:913) ~[?:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.network.play.client.CPlayerTryUseItemPacket.func_148833_a(SourceFile:31) ~[?:?] {re:classloading}
        at net.minecraft.network.play.client.CPlayerTryUseItemPacket.func_148833_a(SourceFile:9) ~[?:?] {re:classloading}
        at net.minecraft.network.PacketThreadUtil.func_225383_a(SourceFile:21) ~[?:?] {re:classloading}
        at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18) ~[?:?] {re:classloading}
        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(SourceFile:144) ~[?:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?] {re:classloading}
        at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:730) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:156) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(SourceFile:118) ~[?:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:713) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:707) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(SourceFile:103) ~[?:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:692) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:229) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_251] {}

At first, I thought it was an issue where I added a new mod (refined_storage addons), so I removed it. I also didn't realize I couldn't insert storage disks at first, so I removed all my storage drives before upgrading to save them so I could add them back in after the upgrade, but the disk drive would not let me insert the disk. The error above is from one of these attempts.

What you expected to happen:

I expected to be able to connect to the upgraded server with my storage disks still in the existing disk drives. I also would expect to be able to insert the storage disks into the disk drives.

Steps to reproduce:

  1. Create world with 1.15.2
  2. Create a storage network and add storage disks to a connected disk drive
  3. Open that same world data in a 1.16.3 world with the upgrades mentioned above
    ...

Version (make sure you are on the latest version before reporting):

  • Minecraft: 1.15.2 -> 1.16.3
  • Forge: 131.1.18 -> 34.1.42
  • Refined Storage: 1.8.1 -> 1.9.9

Does this issue occur on a server? [yes/no]
Yes

Additional Information

I realize this is probably an issue with what I'm doing, but if I could get some help figuring out how to fix this, I would very much appreciate it. Thanks so much for all you work, I love this mod!

commented

Upgrades between major minecraft versions are not supported. The files tbat store disk data under world/data were renamed.

commented

So can I just update the name and reload? I'll try that for now, but it would be nice if this could be handled by the mod. I haven't looked at the code at all yet, but I'll take a peak to see if there is a way to make it backward compatible in case of an upgrade like this.

I don't think I'm the only person who likes to keep a world long-running (big towns created, fun storage networks, etc), and I know somethings break sometimes between upgrades but something like a filename shouldn't cause storage to be wiped out, imo.

commented

From looking at the code, it looks like it wasn't just a simple rename, but rather changing how the data was stored? Anyway, it looks like it's not as simple as just renaming the file. While I was able to make it not lose the disks during the upgrade by renaming the nodes and network file to the new names, the data was still inaccessible. Looks like the solution here is to move to AE2, unless I can get some other help. Unfortunately, not supporting upgrades between versions is a bit of a deal breaker for a storage mod.

commented

You probably looked at the code that got removed again. IIRC we just changed the name.

Upgrading between major versions is not a thing in Modded Minecraft in general. More often than not things change so much that supporting old versions becomes too much work.

commented

Haha I was agreeing and willing to help you until you did the classic "I'm moving to AE" move. That won't make me free up time faster to fix this.

commented

I mean, I renamed the files based on what I saw (it looked like the disks file was the same, but the network and nodes were renamed). Still failed for the same reason. I can't really keep using a mod that just drops all my storage during an upgrade, and it sounds like the upgrading refined storage is not supported within minor version upgrades.

If @Darkere doesn't speak for the mod, then I'm down to have a conversation about it and use the mod further once it gets fixed (I like a simple storage mod, tbh). But that's not what I was hearing from this conversation.