mekanism / Mekanism

A mod for Minecraft
MIT License
1.37k stars 524 forks source link

Fusion reactor produces infinite heat under certain conditions #7911

Open dabaer opened 11 months ago

dabaer commented 11 months ago

Issue description

When connecting a Fusion reactor to a Thermoelectric boiler via Quantum Entangloperters and Thermodynamic conductors, it is possible to create a feedback loop of heat. I assume the YottaKelvin values shown in the UI are the equivalent of Infinity due to there not being any infinite heat sources (and the UI therefore not supporting such display) like there are with energy.

We stumbled across this by accident while attempting to increase the heat going into a boiler to power Industrial Turbines. We did quite a bit of testing and have been able to slightly narrow down this easily reproducible condition inside of the ATM9 Modpack. Basically when connected a certain way, the Fusion reactor will pulse between negative and positive heat values while exponentially increasing (and decreasing) in temperature, until it reaches the infinity-like value. This heat loop infects the reactor, boiler and quantum entangloporter network permanently (or for at least an hour in our testing), or until each complete multiblock is destroyed, or network deleted.

The reactor continues to output heat and power, though interestingly it stops consuming fuel when in this state. In certain conditions, when disconnected from the boiler, the reactor is also able to get stuck in a negative infinity-like state for heat.

Additionally, we only tested this on a server, as well as in the Overworld (Savannah Biome) and the ATM Mining dimension.

javaw_CoBB8f7F8S javaw_HTpkPDrpV6

Steps to reproduce

  1. Build a Fusion reactor with ports on all available faces.
  2. Run the reactor at max burn (unsure if this is required, we only tested it at 98 mb/t) with Deuterium and Tritium
  3. Build a Thermoelectric Boiler (initially observed with a max size boiler, and later tested on 7x7) with 5 valves that face 5 ports directly on the reactor. For some reason this requires exactly 5 facing ports, we could not reproduce this with less than 5.
  4. Connect Thermodynamic conductors on all of the ports on all but one side of the reactor, and connected together.
  5. Entangloporters on the 5 remaining reactor ports, connected to the same network, with heat input/output set on all faces.
  6. An Entangloporter in this same configuration connected to another valve on the boiler (unsure if this is required)
  7. The aforementioned conductors connected to one of the Entangloporters (also unsure if this is required)

Minecraft version

1.20.1 (Latest)

(Neo)Forge version

47.1.3

Mekanism version

10.4.2 (Latest)

Other relevant versions

AllTheMods9 version 0.2.10

If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)

No response

UnknownSerhan commented 10 months ago

Impressive, tried to reproduce it in 10.4.2 with only mek and a few mods and it was a success, the reactor goes between negative and positive 64-bit limit continuously. Although once the reactor glitches, it is broken forever, producing continuous infinite energy.

UnknownSerhan commented 10 months ago

Upon further investigating, turns out there are a few factors that causes this bug. There is a bug where case heat constantly goes between negative and positive values and there is the problem of Quantum Entangloporters sending heat to each other causing a massive loop where the heat goes up to 64-bit limit. Quantum Entangloporters sending heat to each other isn't a big problem but the reactor's case heat constantly flickering makes the Quantum Entangloporter's heat transfer very broken. I am not sure if thermodynamic conductors play a role in this bug, but they probably do.

Cuttleguy commented 1 month ago

Just want to mention, it happened to me too a few months(maybe more) ago.