refinedmods / refinedstorage

An elegant solution to your hoarding problem.
https://refinedmods.com/refined-storage
MIT License
362 stars 177 forks source link

External Storage disconnects upon save and reload #3578

Open changhe3 opened 1 year ago

changhe3 commented 1 year ago

Describe the bug

Buuz135/FunctionalStorage#203

As it has been reported here, basically each time I reload, the FS drawers become disconnected and I have to break and reconnect the cable (which has a be a cable within the chunk as the controller after some testing it seems). I'm pretty sure it's not a chunk loading issue either as I have chunkloaded all near by chunks.

Edit: Upon further testing, this happens to every kinds of storage when used with external storage, not just the storage drawers.

How can we reproduce this bug or crash?

  1. Connect the FS drawer controller to RS with external storage
  2. Save and Reload

What Minecraft version is this happening on?

Minecraft 1.20.1

What Forge version is this happening on?

NeoForge 47.1.79

What Refined Storage version is this happening on?

1.12.3

Relevant log output

no log
Wishbone1977 commented 1 year ago

This sounds an awful lot like this issue cropping up again: https://github.com/refinedmods/refinedstorage/issues/2636

Skilles commented 1 year ago

Can confirm this is happening to me as well in the Direwolf 1.20 pack. Super annoying. I ended up making a controller extension to keep it in the same chunk as the controller, but now all my crafters in other chunks need to be reconnected after every reload.

raoulvdberge commented 1 year ago

Thanks for the info guys. I cannot reproduce this myself. I will need your help to solve this.

How can you help?

LeSwede commented 1 year ago

Thanks for the info guys. I cannot reproduce this myself. I will need your help to solve this.

How can you help?

  • Can you create a test world with a minimal set of mods (maybe even just Refined Storage) that reproduces this issue?
  • How far is the External Storage from the Refined Storage Controller?
  • What is the chunkloading situation?
  • Are there reproduction steps that work 100% of the time?

If you want I can replace all my AE2 stuff in my Techopolis 2 world with RS stuff. Thats where I had the issue personally.

raoulvdberge commented 1 year ago

Preferably we get a minimal reproduction testcase. So with the least amount of mods required.

LeSwede commented 1 year ago

I'll see what I can do with just RS and drawers

Wishbone1977 commented 1 year ago

Preferably we get a minimal reproduction testcase. So with the least amount of mods required.

I've made an MC 1.20.1 installation with only Refined Storage, Storage Drawers, JEI and More Overlays (for easier experimentation with chunk boundaries). I'll fool around with it tomorrow to see if I can replicate the issue.

raoulvdberge commented 1 year ago

Thanks guys!

Wishbone1977 commented 1 year ago

I haven't managed to reproduce the issue. I've tried various setups, primarily focused around chunk borders (since that is how the issue originally materialized for me). Given the number of potential variables involved, I don't really know what else to try. I did use a creative controller since I had no powergen mods available, but I wouldn't expect that to make any difference.

The only hypothesis I can come up with is some sort of potential race condition, brought on by a large amount of activity on world load. This might explain why the issue pops up occasionally in full modpack worlds, but is impossible to replicate in small test setups. If that is the case, then while it may not be related to any other specific mod, it might still require the presence of many more mods, as well as more infrastructure using those mods in order to provoke the issue.

But that is purely guesswork on my part. I don't have any idea if that is actually feasible or not.

Skilles commented 1 year ago

I haven't managed to reproduce the issue. I've tried various setups, primarily focused around chunk borders (since that is how the issue originally materialized for me). Given the number of potential variables involved, I don't really know what else to try. I did use a creative controller since I had no powergen mods available, but I wouldn't expect that to make any difference.

The only hypothesis I can come up with is some sort of potential race condition, brought on by a large amount of activity on world load. This might explain why the issue pops up occasionally in full modpack worlds, but is impossible to replicate in small test setups. If that is the case, then while it may not be related to any other specific mod, it might still require the presence of many more mods, as well as more infrastructure using those mods in order to provoke the issue.

But that is purely guesswork on my part. I don't have any idea if that is actually feasible or not.

For what it's worth, I had this happen with a pretty minimal base (drawers + refined storage). I'm going to try disabling things like multi-threaded chunk loading first and then removing mods one at a time.

Wishbone1977 commented 1 year ago

For what it's worth, I had this happen with a pretty minimal base (drawers + refined storage). I'm going to try disabling things like multi-threaded chunk loading first and then removing mods one at a time.

I do have a world which has the problem, but it's not much use in this situation since it's a much older version, from before the changes made in #2636.

Skilles commented 1 year ago

Just started a playthrough in another modpack (ATM 9) and ran into the same exact bug again (though it didn't happen when I first built my system + drawers). If it's this easily reproducible in large modpacks than I assume there is a mod conflict happening. I have my suspicion on FTB chunks since the only thing I can think of that started causing it to happen was unclaiming & claiming the chunks that the controller and/or external storage was in.

Wishbone1977 commented 1 year ago

Just started a playthrough in another modpack (ATM 9) and ran into the same exact bug again (though it didn't happen when I first built my system + drawers). If it's this easily reproducible in large modpacks than I assume there is a mod conflict happening. I have my suspicion on FTB chunks since the only thing I can think of that started causing it to happen was unclaiming & claiming the chunks that the controller and/or external storage was in.

If this is indeed still the same problem as #2636, then I ruled that out at that time. I uninstalled FTB utilities entirely and the problem still persisted.

BonaireDreams commented 10 months ago

I'm running a custom pack on 1.20.1 and have this same issue. Seems to be a repeat of #2636. Current easiest fix enabling redstone controller on the Controller and then placing a lever beside it. When I join the world no external storage on a diamond chest shows, but no external storage connected to storage drawers shows until the controller is reset. Toggling the controller on and off using the lever restores connections. (Just reading some old threads on this issue) The External connector to the chest is on the same chunk as the controller, the external connectors on the drawer controllers are not.

TommyC81 commented 1 month ago

Experiencing the same on Forge 1.20.1 (47.3.7), using the latest versions of Refined Storage and Functional Storage. Have to disconnect and reconnect a storage cable within the same chunk as the RS controller to access the functional storage controller (and RS crafters) after every server restart to reconnect them to the RS storage system.

No chunkloaders in use (have mods installed though). Full list of mods as per attached (all are the latest version as of today for Forge).

OurGame-1.20.1.txt

Update 1: The RS controller and inventory is in a different chunk than my external storage and crafters. The crafters also don't show up until disconnecting and reconnecting the storage cable. Screenshot: 2024-10-06_17 02 53

Update 2: Removed Better Chunk Loading, no difference. To make the functional storage controller and crafters reconnect proper, I need to remove one storage cable that is within the same chunk as the RS storage controller (tried first with one cable in the functional storage controller chunk, but it made no difference).

Update 3: Removed Chunk Sending, no difference.

Update 4: Added an Advanced Chunk Loader, to load the relevant area, it now works as expected. Removing the chunk loader and restarting causes the issue to return.

Update 5: Re-added Better Chunk Loading and Chunk Sending, whilst keeping a Chunk Loader. All works as expected now. So, definitely something to do with chunkloading being a problem. I also find it interesting that the only way to fix it manually (apart from using a chunk loader) was that it was specifically necessary to remove/replace a storage cable within the same chunk as the RS controller - doing it within the adjacent chunk (where crafters and functional storage controller is located) had no effect.