Skip to content
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

[Crash] Oritech Fluid Pipe inserting into a Tesseract causes a Save Bricking Crash #105

Open
thebloxxer11 opened this issue Dec 24, 2024 · 1 comment
Labels
crash The program has crashed

Comments

@thebloxxer11
Copy link

Version Info

  • Minecraft, 1.21.1
  • Tesseract, 1.0.35+a
    Other Mods:
  • Oritech, 0.12.3
  • Forgified Fabric API (Dependency of Oritech), 0.107.0+2.0.22+1.21.1

Loader: Neoforge 21.1.89

Steps to Reproduce

Materials:
A new save (to protect existing saves), An Oritech Pump, A generator of some kind (like a lava generator), some kind of structural block (cobblestone works fine), a Tesseract from another mod listed below, and at least 2 Fluid pipes

  1. In a new save, make a nether portal and cross it.
  2. Navigate to a Lava Ocean, if not already over one.
  3. Use the structural blocks to bridge out over the ocean and make a platform
  4. Make a hole in the platform, ensuring it is over the lava.
  5. Place the pump over the hole.
  6. Place the generator adjacent to the pump.
  7. Place the pipes connecting the pump, generator, and Tesseract.
  8. Set the pipe connected to the pump to Extract.
  9. Fuel the generator.
  10. It should crash, and continue crashing on loading of the save.

Crash report (~/logs/latest.log)
crash-2024-12-23_09.42.07-server.txt

Notes:
This is EXCLUSIVE to the NeoForge branch. I tested it on Fabric and it works fine there.

Since this is a mod interoperability issue, see Rearth/Oritech#217 for the Oritech side. Rearth, the dev of Oritech, said he is near certain it isn't on their side.

@thebloxxer11 thebloxxer11 added the crash The program has crashed label Dec 24, 2024
@SuperMartijn642
Copy link
Owner

This seems to be caused by the combination of Fabric's transfer API through Forgified Fabric API with the NeoForge item handler API.

What happens in the crash:

  • A pipe from Oritech opens an outer transaction ticket and inserts into the tesseract with the ticket through Forgified Fabric API.
  • Forgified Fabric API converts the insertion into a call to NeoForge's item handler API. The ticket context is lost here as that is part of Fabric's API.
  • The tesseract inserts into some block which also uses Forgified Fabric API next to another tesseract on the same channel.
  • Forgified Fabric API converts the insertion into a call to Fabric's transfer API. As Fabric's transfer API requires a ticket and the NeoForge insertion call obviously provides none, Forgified Fabric API opens a new outer ticket.
  • Since there is already an open ticket on the thread, this now causes a crash.

There is nothing I can do about this as I am just using NeoForge's API. The problem comes from Forgified Fabric API converting between the two APIs.
This is something that would have to be worked around somehow in Forgified Fabric API. I would suggest reporting the issue to them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash The program has crashed
Projects
None yet
Development

No branches or pull requests

2 participants