Storage Drawers

Storage Drawers

151M Downloads

StorageDrawers update 1.7.10-1.6.2.jar breaks some things

1n5aN1aC opened this issue ยท 7 comments

commented

We were previously on StorageDrawers-1.7.10-1.6.1, and everything was tested working fine.

Recently we updated Botania, Forestry & Storage drawers (to version StorageDrawers-1.7.10-1.6.2) and we have noticed some interesting regressions that appear to happen with one of our drawers in particular.

We have a Compacting drawers & controller setup which is connected to our extensive logistics system. The issue lies in our diamond / diamond block drawer. For some reason, it has stopped automatically down-converting what it exposes to logistics. (That is to say that is I have 7 diamond blocks in it, and one diamond, logistics only sees that, not 64 diamonds.) Additionally, attempting to request the diamond blocks out of it seems to cause the server to freeze with no crash log.

I have tried breaking the compacting drawer and replacing it to no effect. The drawer is locked to diamonds, with no upgrades.

Furthermore, a downgrade back to StorageDrawers-1.7.10-1.6.1 seems to have fixed this issue.

commented

By logistics, you are referring to logistics pipes?

I'm at a bit of a loss to explain why 1.6.1 works and 1.6.2 does not. No logic changed. The recipes got fixed, and some try/catch was added to the renderer to protect against crashing.

Is this reproducible when you start a new world and do basic extracting tests with logistics?

commented

Yeah, before posting this, I read through the changelogs, and was perplexed by that, but figured I'd post it with just the information I currently have anyways.

Yes, Logistics Pipes. There is a possibility that the issue was more transient, and it was the rebooting of the server that caused the symptoms to go away, thus causing it to be a weird correlation.

I think our server will attempt to update again tomorrow, and see if we notice anything like that again.

commented

Well, it seemed to have been fixed for a while, then happened again on 1.7.10-1.6.1. So you are correct, it was not the update. We have since updated, and it seemed fixed for a while, then came back again.

In summary: I really have no idea what is wrong, but there's definitely something periodically messed up with Logistics-Pipes interacting with Large Storage-Drawers Banks. I'm trying to do more testing to see which end the issue is on, and even just what specifically is causing it, but it's so hard to pinpoint.

Symptoms noticed so far:

  1. Rare refusal of Logistics-Pipes to see the full amount of diamonds in a compacting drawer.
  2. Server freeze when I then requested all diamond blocks & diamonds when experiencing #1^
  3. Storage-Drawers seems to rarely not expose that it has more space for a particular item. (randomly logistics will stop putting a certain item in a storage-Drawer bank, even when space is available.)

All the above symptoms seem to be extremely hard to track down. They can sometimes be resolved by breaking and replacing the drawer in question, sometimes be resolved by breaking and replacing the drawer controller, and nearly always resolved by restarting the dedicated server.

At a minimum, do you have any idea whether the problem is likely to lie within Storage-Drawers, or if you think it might be the Logistics-Pipes side causing the issue? (If you think it's Logistics, I'd be glad to open an issue and dialog with them.) At any rate, I will definitely provide more information if I find anything that seems to point to the cause.

commented

Do you have AE2 installed? If you were to attach a storage bus to the same controller as your LP system, I would like to know if any of the symptoms could be noticed with an AE terminal when the LP system is acting up. They both work through the API rather than IInventory interface.

If you experienced problems with AE2, that would indicate a problem in the core of Storage Drawers, even though I'm not seeing any other reports of problems. Otherwise, my guess is it's in the bridge code between SD and LP, which lives inside the LP project.

I'm not sure that the LP devs will be in any better position to explain or debug this. Especially because it is so difficult to reproduce and you don't have a reproduction in an SSP world.

You may need to spend more time trying to isolate a reliable reproduction, preferably with a minimal SD and LP system. I can't offer any advise on the LP side because I don't know how to use most of the mod. On the SD side, I would focus on state changes in the network, such as a drawer being added or removed, a drawer being emptied or populated, or changes in locking. The network rebuilds itself every 5 seconds, and those state changes can rearrange how storage slots are exposed both through IInventory and the API, and that could potentially impact LP.

I don't know what assumptions LP is making on special inventory handlers, so perhaps on that point their input may be helpful.

commented

Well, I haven't used AE2 in a looooong time, as most of our server considers it easy and OP.

Anyways, I guess I'm going to close this issue for now.

We're going to continue periodically trying to narrow down the problem, but if we find out enough information to actually make a better report into what exactly has been causing it, I'll open a ticked on LP, or re-open this one if it applies more.

Thanks!

commented

If you do open a ticket with them, you should link this one for background. Wouldn't hurt to post updated findings here, either.

commented

If I do open a ticket with them, definitely will reference this one. I'll try to do that as well.

Though I suspect at this point, there likely isn't enough information to tell them anything, so we'll see if/when I can figure that out.