TeamPneumatic / pnc-repressurized

A port of PneumaticCraft to MC1.12+
Other
121 stars 49 forks source link

Regulator Woes #475

Closed MuteTiefling closed 4 years ago

MuteTiefling commented 4 years ago

Minecraft Version

1.15.2

Forge Version

forge-31.1.74

Mod Version

pneumaticcraft-repressurized-1.15.2-1.1.1-11

Describe your problem, including steps to reproduce it

I've got a small setup at this point with a Flux Compressor feeding all of my primary PNC machines. Half way down the line I regulate down to 4.5 bar with a regulator module (advanced PCB installed). The last three times I've restarted the game, that section of tube simply disappears. I don't think it's exploding as none of the pieces are laying about. All tubes are advanced too, and the section before the regulator is limited to 15 at the compressor.

Any other comments?

desht commented 4 years ago

Anything in the logs? An NBT read error could cause that..

MuteTiefling commented 4 years ago

Logs: https://gist.github.com/MuteTiefling/f804c2c818d3103fd42e149a67505221

desht commented 4 years ago

Nothing in the logs, then. I've tried and failed to reproduce this one... my regulators stay exactly where I expect them to on restart: image

MuteTiefling commented 4 years ago

I suspect this might be the ghost air source issue I was seeing with the Flux compressor. I've since moved the regulator further along the pipe and everything is fine.

MuteTiefling commented 4 years ago

I had this happen again when updating to 21, but not in the same place. Actually, it happened in a completely different line of tubes. Baffling. I had set up a straight run of tube with the regulator in the middle so all lines in/out were straight. Logged in after dropping in 21 to find that it had poofed out of existence.

No clue how to reliably recreate this, but one thing that I've noticed is that I have a tendency to put on the regulator after air is running in the pipe, so I'm effectively using it to plug a leak. I believe the last time I repaired one that had broken, that line had effectively drained to nothing (or nearly nothing, the compressor was still running but obviously everything was venting). That one has not needed replacement since. I'll see if I can reproduce that in my testing world.

MuteTiefling commented 4 years ago

Aaannd, nope. Working fine in test.

I put down two identical compressor setups feeding into a regulator, stepping down to 4.9 to power a universal sensor. On one, I let the pressure in the line build to 19, broke the pipe off and plugged it up with the regulator. On the other I placed the regulator before starting the compressor.

After a restart they are both still present. I'll leave them in world and labelled to watch in the future for now.

MuteTiefling commented 4 years ago

Ok. So, while I could not reproduce this in test, I did just have it blow up in my face again when I loaded back to my play world. So I sealed off the tube a few tiles back then broke the tubes around where the regulator should be so they'd be empty. After placing them in and putting the regulator down on empty tubes, I then re-connected to the main line. Pressure built back up and I logged out. Upon logging back in, it did not blow up. So that's progress, even if I can't figure out what's different between what I'm doing here and in my test world.

MuteTiefling commented 4 years ago

Hrm. It's gone back to poofing out of existence the last few reloads, so I guess I wasn't on to anything in particular with the previous tests.

I've now physically split that section of tube off from the main branch by putting a charger/chest/charger section in line.

2020-05-22_08 20 09

I don't know if this is because the sub section is now 'stabilized' and not really doing anything or what. The main branch is a logistics network that's constantly pushing items/charging drones, so air is constantly fluctuating and those tubes are constantly updating.

desht commented 4 years ago

Give build 23 a go. I've made a few tweaks which might help with this problem (I think it's related to the tube being over-pressure on startup and exploding, though not sure why). This does the air dispersal logic (i.e. pushing air to lower pressure neighbours) before the overpressure checks on each tick, as well as disabling explosions in the first 20 ticks of server startup (give the system a chance to "settle down").

Not sure if it'll help, but would be interested to know...

(This build also fixes the drone external program issue, btw)

desht commented 4 years ago

I think I may have found the real cause of the problem (see also #500 where duncanwebb found the same issue in 1.14.4). Calculation error in the air handler which allowed air to "backflow" into the tube the regulator was on, causing that one tube section's pressure to rise incorrectly high - often high enough to blow up the tube, especially right after server startup.

Try build 24 and see if that helps...

MuteTiefling commented 4 years ago

I'll give it a go, awesome!

MuteTiefling commented 4 years ago

So far so good. Only one restart performed, but nothing has blown up yet. Awesome job!

desht commented 4 years ago

Fixed in 1.2.1 release