Tube becomes disconnected from Pressure Chamber Valve after server restart
tslindsay opened this issue · 13 comments
Minecraft Version
1.15.2
Forge Version
31.2.21
Mod Version
1.15.2-1.3.2-42
Describe your problem, including steps to reproduce it
Pressure Tube becomes disconnected from Pressure Chamber Valve after server restarts, causing the system to leak and lose pressure.
Valve is connected to a low-pressure tube, which is immediately connected to a regulator module to an advanced tube (see screenshot).
Any other comments?
Issue was noticed after upgrading Forge version from 31.1.63 to 31.2.21.
The system is powered by an array of forge compressors. After the server restarts, the low-pressure tube disconnects from the valve. The tube is not destroyed, and the system does not lose all of its pressure; rather it levels out at ~1.8 bar. Even the Pressure Chamber maintains this same pressure. It's as if the valve is still connected to the pressure system, but the tube is disconnected from the valve. The leaking particle effect shoots out of the tube (and into/through the pressure chamber, which retains its multiblock shape and texture), but the Pressure Chamber Valve does not shoot the leaking particle effect. When the Pressure Chamber Valve is broken and replaced, the system resets and begins pressurizing as normal, with no further issue until server restart.
Unfortunately there's nothing out of the order in the server log or debug text.
I believe I did update PNC:R alongside the Forge update.
I took the screenshot after I had fixed the issue. The system looked the same when it was working properly as it did when it was not; the tube appeared connected to the valve in both cases. The only difference is that when not working, air would shoot out of the tube and through the chamber.
I checked and it looks like I managed to build the chamber over 4 chunks.
I have restarted the server a couple times today to test the setup, and it seems that this issue does not happen every time, though it has happened at least twice since I updated Forge a few days ago.
None of this is much to work off of, so I appreciate your time. Hopefully it's just a fluke thing. At most it's a temporary inconvenience.
Anything in the server log?
When you upgraded Forge, did you also upgrade the PNC:R version?
The tube doesn't appear to be disconnected in your picture, but air shooting out of the valve into the pressure chamber is an indication that the multiblock hasn't properly reformed. I've seen that happen once or twice but never been able to actually reproduce it, which makes it very difficult to track down. Does it happen every single time for you?
Is your Pressure Chamber built across a chunk boundary, by any chance? (Having said that, both Pressure Chambers in my test world are across boundaries, and I'm not seeing this problem there)
I will keep this open, although I haven't been able to reproduce this problem since you reported it. But as I said, I have seen it happen once or twice so I know it is a thing... just a nightmare to track down.
I've had this happen, but in my case the pressure chamber was built across a chunk boundary and one of those chunks was force loaded. I ended up moving it over a few blocks to avoid the chunk boundary and haven't had an issue since.
Update:
I repositioned the chamber so that it and its connection to the pressure system is all in the same chunk. A server restart or two later and I had the same problem as before.
This happened to me while playing Enigmatica 6 (Minecraft 1.16.4, PNC version 2.6.2). My Pressure Chamber and its Air Compressor are contained entirely with the same chunk. I was not able to reproduce in creative mode despite recreating as many conditions from my survival world as I could (placing the Valve on the west side of the Pressure Chamber, recreating the pipe configuration, using the same Air Compressor, putting fuel in the Air Compressor and restarting the world while it was still burning, etc.)
I'm not sure if this will help, but it seems to me that one thing that's been common to every setup I've seen bug out has been that they've had a long run of pipe that does cross chunk boundaries.
Lately, I've taken to building my chambers in a chunk with the compressor within a couple lengths of pipe. If I need pressure elsewhere, I build a new compressor rather than run pipe.
I've yet to have an issue with this method. Admittedly, my play time has also been limited.
The players I'm seeing encounter it will instead run longer runs of pipes to multiple machines.
At the same time, I'm only ever seeing this with the pressure chamber valve. So I'd think it may be some issue with the check for the multiblock structure in these conditions. Especially since reforming the multiblock by removing the valve and replacing it seems to resolve it every time.
they've had a long run of pipe that does cross chunk boundaries.
Unfortunately, my survival world busts that theory. There are only two sections of pressure tube in my entire world, forming a single tube. One end connects to my pressure chamber and the other connects to an air compressor. All of this is contained within a single chunk.
Well, that's good to know!
Another thought I just had... I had an enormous amount of very strange math errors while running PNC in GDLauncher that cleared up as soon as I went back to Twitch (now curse). Are you by chance running GDLauncher?
Though, I just tried running my survival world in a PNC/Forge-only debugging instance in IntelliJ, and that also reproduced the issue. I'm going to try debugging it soon.
I just encountered a leaking pressure chamber in my dev world (all in one chunk, no tubes attached - just a creative compressor adjacent to the valve). A bit of debugging suggested to me that some NBT data that it needed to re-init the multiblock didn't get reloaded properly. It's possible something (either me or some other mod) threw an exception during tile entity NBT loading, which prevent the pressure chamber from getting the data it needed.
I'm adding a workaround, where the server will try (once only) to reconstruct the multiblock structure from the leaking valve's position, i.e. simulate the valve block just having been placed down to force a rescan and rebuild. So far so good, but I can't promise this will fix all cases.