CyclopsMC / IntegratedTunnels

Transfer other energy, items and fluids over Integrated Dynamics networks
MIT License
20 stars 13 forks source link

Server crash with bad fluid export #193

Closed met4000 closed 3 years ago

met4000 commented 4 years ago

Issue type:


Short description:

Server crashes when a world fluid exporter tries to export a fluid with no in-world form.

Steps to reproduce the problem:

  1. Place down a tank (tested using mekanism basic tank)
  2. Hook up to world fluid exporter via fluid interface
  3. Set exporter to export all (tested using wildcard)
  4. Insert some sort of fluid into the tank that doesn't have an in-world form (see below for tested examples)

Note that whether the placement succeeds or the server crashes, 1000 mB of fluid are still drained from the container.

Tested using: minecraft's water - places as expected minecraft's milk - places, however both I have both cyclic and nuclearcraft that add milk fluids, so I think it's placing one of those. No idea if it would normally work mekanism's liquid tritium - crashes mekanism's liquid deuterium - crashes galacticraft's nitrogen gas - crashes galacticraft's hydrogen gas - crashes nuclearcraft's tritium - places as expected nuclearcraft's hot eutectic NaK-cryotheum mixture - crashes

Sorta similar to #84 in that it's a world fluid exporter bug that causes server crashes, however; this only applies to specific fluids, that problem is reported fixed, and this does not immediately crash the server upon restarting (the affected network is 'frozen' until something updates it instead, in which case it may crash the server by trying to export the fluid if some remains in whatever tank).

Expected behaviour:

For some reason the first time I did this I expected it to magically be able to place the fluids in the world, but on second thought that kinda can't happen. Irrespective of my incompetence, I don't quite think the server should crash just because a someone slipped up on the fluid that made its way into the tank to be world-exported; I would expect at least a silent fail, otherwise some sort of feedback such as the dispensor-failed clicking sound effect or even some sort of variable error ("invalid fluid"?).


Versions:

Log file:

https://pastebin.com/AUymhZM1 I do have VanillaFix, so if you do need an actual stacktrace I can disable it and get one - at least, I assume that's why the stacktrace is missing in this crash report.

rubensworks commented 4 years ago

Insert some sort of fluid into the tank that doesn't have an in-world form

Ah, that's probably it.

Thanks for reporting!