-
Notifications
You must be signed in to change notification settings - Fork 307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Machine Crash due to Stocking Input Bus/Hatch #15180
Machine Crash due to Stocking Input Bus/Hatch #15180
Comments
To elaborate on this, I found this to happen the most when there are multiple very fast machines (MCR, MDT, MBF) contesting the same fluid. The issue is not exclusive to this case though (see large naquadah reactor) |
|
@miozune Just dont turn off machine when this error, update stocking and go next recipe check. its will work? |
could this fix be implemented as a “high speed parallel stocking bus” (maybe even similar price) that utilizes this code but leaves the existing as is? |
Doesn't it mean the machine might void all the ingredients that are consumed along with problematic ingredient failed extraction in the network until you notice something is wrong with setup?
I'm not sure if people would use it honestly. Current way might be easier to use since it doesn't need extra configuration for load balancing. |
Return consumed ingredients back to network would be perfect solution. |
Maybe, but it still voids certain ingredients and refuses to process them without warning, which is not great imo. |
That wouldn't be ideal, but machines with stocking buses/hatches randomly turning off every few hours is also not a great experience. |
oh, so its impossible prevent void? sad |
I might work on this feature tomorrow to see how it could affect performance; What do you think about this one? |
@miozune What about add quick and dirty fix for now? add min stack size to non auto pull mode and in error write "increase min stack size for prevent error" |
it's useless as it won't be pushed in a potential 2.5.2. Dirt hacks like this should be avoided. |
This will not working for situation when one stocking shared between several machines. What if you take your rework and add stocking input bus/hatch slave (similar as with crafting input buffer). ofc still need re-configure setup. but it's much easier and perfect load balance. what do you think? |
Now I'm confused... Reading code makes me think the second issue is impossible to happen, unless items/fluids visible from buses/hatches are actually duplicated... Or maybe my brain is sleeping... Another pair of eyes for investigating this issue would be appreciated. |
This sounds fine tbh, I've never ran into a case where this would be useful. |
I never got this issue on 2.4.0, so I'd imagine this is indeed a bug that has snuck in somehow. |
This anti-dupe feature was introduced after 2.4.1 |
[2.5.1] Getting this error twice today with only 1 stocking hatch in subnet shared between 4 LPF, so solution "let stocking speaking between each other" not working at all. So allow dupe or rework. My opinion that rework should be, but with 2 changes:
edit. oh, that will totally broke automation system that based on read if cell still contain items. So number used bytes on cell where items/fluid come from should didnt change until items/fluids in stocking will be consumed. now my solution looks really nuisance. :( |
what if |
I think its happen because sometimes slot updating happen before end recipe check, storedFluids[i] already null and cant be checked, that explain why happen only in auto pull mode, also explain why you can get wrong positive check for "failed extract from storage" error. Also idk why, but sometimes its just cant happen on current game load, i need restart game and then it start happen. |
I believe there's a third issue: When the current recipe has insufficient of the stocked input material(s), the machine shuts down with this error. That should not crash the machine, there is just not enough input, it's not that the system "couldn't extract from ME".. It doesn't happen if the last run of the recipe completely finishes the input material. |
Just happened with an input I'm 100% sure it isn't being requested by anywhere else. Not autopull, using the basic stocking input bus. When I have time later I will try replicating in a fresh world. |
Additional observations on the issue reported by Penguin in the comments: This only seems to happen with the advanced stocking hatches. I had a setup of 4 compact mk III fusion reactors and 1 mk IV; all mk III had regular stocking hatches with whitelisted fluids, and mk IV the advanced stocking hatch. When running recipes they properly pulled from the subnet without any problems. Then I switched all compacts to use advanced stocking hatch, and now I constantly get this error and voided materials. ETA: It seems that when i disable the auto-pull feature and just whitelist the fluids, it seems to no longer crash and properly produces all expected products. |
Something is making the stocking input bus think the system has double the amount of the stuff. I checked a few other buses, all of them exhibit this behaviour. The dusts are stored in a subnet drive, and these stocking input buses are all through p2p networks. Edit: Also happens without p2p. Edit Edit: I tried by requesting something that isn't in a subnet, and it's not doubled. I think it's only happening with items in a subnet. I will now try doing a subnet from the subnet and see if it triples (or quadruples) |
Okay. I determined the cause of the doubling in my case. I have multiple storage buses from the main net going to interfaces in the subnet, and all of them are bi-directional. The stocking input bus is reading the contents of the subnet from both storage buses separately, and this results in the stocking bus thinking it has double the items. In my case, this should be the root cause of the machines crashing. I should be able to solve it by adding an unfiltered storage bus (extract only) to the subnet interface, and put the filtered ones to insert only. |
Your GTNH Discord Username
ollie_de_leeuw
Your Pack Version
2.5.1, same issue in 2.5.0
Your Server
private server
Java Version
Java 19
Type of Server
Vanilla Forge
Your Expectation
The stocking input bus/hatch to continue working and the machine to not crash.
The Reality
the machine shuts off with a crash
-version: 2.5.1 , ignore the maintenance issue it does not affect the result. 3 stocking input busses (1 without auto-pull, 2 with auto-pull)
-version: 2.5.0 (image from NotAPenguin), 1 stocking input hatch (without auto-pull)
Your Proposal
When failing to extract happens it should proceed to do the next recipe check instead of staying on the failed extraction and crashing.
Don't have steps to reproduce it, first time happening to me, NotAPenguin has had it happen a few times in his mega naqline.
(similar to #15172 but different error)
Final Checklist
The text was updated successfully, but these errors were encountered: