Nomifactory

Nomifactory

143k Downloads

Repeated crash with specific cover setup

Tictim opened this issue ยท 3 comments

commented

Certain cover setup can mess up capability system and cause crash on server. Because it persists between saves, the problematic area will most likely get deadlocked, if not the entire server.

Pack Version:

dev-e5e318d

Description:

As shown in the code, pump covers doesn't really expect to get null passed as defaultValue. Normally that wouldn't be the case, but there's at least one way to break the expectation.

One case is when pump is attached to the output side of a SimpleMachineMetaTileEntity. If the machine has fluid input, has no fluid output, and allowInputFromOutputSide is disabled, the cover will create wrapper with null delegate and every interaction with it from now on will cause crash.

Steps To Reproduce:

  1. A machine with one or more fluid input and no fluid output is required. (ex. Ore Washer)
  2. Put any pump on non-output side.
  3. Wrench the machine to align cover to the output port.
  4. Do anything that would cause fluid interaction on that side.
  5. Your server's fucked.

Crash Log:

Actual crash occurred in dedicated server: https://gist.github.com/Tictim/40cbdea7f96eb34a7e5df547068d3850
Crash recreated in singleplayer: https://gist.github.com/Tictim/a5f9bf832e2ed1c51e636fa97586cc5d

commented

This was fixed in GTCEu 2.3.0
For Nomi CE will likely need to patch it with bansokou

commented

Hm, that's not good. The Bansoukou patches we use for GTCE are tracked at Exaxxion/GregTech:bansoukou. If you happen to know which minimal changes to code are needed to correct this problem, I would appreciate if you're willing to PR that.

commented

Confirmed with the steps above; it wasn't happening with a creative tank but simply placing a fluid conduit adjacent to the pump in SP instantly caused the game to crash and be stuck unresponsive on a black screen until I killed the process.

As described, attempting to load back into this world instantly crashes, though at least this time it's caught by CensoredASM.

Going to verify whether Tictim's bansoukou patch PR resolves this issue.