space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.14k stars 2.84k forks source link

Mixing hot reagents can crash the game. #22126

Closed CrigCrag closed 4 months ago

CrigCrag commented 7 months ago

Discovered by @Rainbeon

Description

It seems that when mixing two chemicals, if one (or both) of them are hot, the server has a good chance of crashing when the reaction occurs. This seems to happen with any two-chemical reaction. Untested with more complex ones. Reproduction

  1. Get two chemicals that react with each other.

  2. Make one of them hot.

  3. Mix them over and over until the server crashes.

Screenshots

https://cdn.discordapp.com/attachments/310555209753690112/1181083943919951913/Space_Station_14_2023-12-03_23-03-39.mp4?ex=657fc523&is=656d5023&hm=8910e20849c86f3a866a8274f6ad994cdd77218d0898ba505216c2543ad18478& Additional context

Error message is as follows: [FATL] unhandled: Robust.Shared.Utility.DebugAssertException: Exception of type 'Robust.Shared.Utility.DebugAssertException' was thrown. at Robust.Shared.Utility.DebugTools.Assert(Boolean condition) in D:\Users\Name\Documents\1-SS14-Others\space-station-14-1\RobustToolbox\Robust.Shared\Utility\DebugTools.cs:line 37 at Content.Shared.Chemistry.Components.Solution.ValidateSolution() in D:\Users\Name\Documents\1-SS14-Others\space-station-14-1\Content.Shared\Chemistry\Components\Solution.cs:line 193 at Content.Shared.Chemistry.Components.Solution.AddSolution(Solution otherSolution, IPrototypeManager protoMan) in D:\Users\Name\Documents\1-SS14-Others\space-station-14-1\Content.Shared\Chemistry\Components\Solution.cs:line 753 at Content.Shared.Chemistry.EntitySystems.SolutionContainerSystem.ForceAddSolution(EntityUid targetUid, Solution targetSolution, Solution toAdd) in D:\Users\Name\Documents\1-SS14-Others\space-station-14-1\Content.Shared\Chemistry\EntitySystems\SolutionContainerSystem.cs:line 567 at Content.Shared.Chemistry.EntitySystems.SolutionContainerSystem.TryAddSolution(EntityUid targetUid, Solution targetSolution, Solution toAdd) in D:\Users\Name\Documents\1-SS14-Others\space-station-14-1\Content.Shared\Chemistry\EntitySystems\SolutionContainerSystem.cs:line 530

TemporalOroboros commented 7 months ago

It's an oversensitive testing check that pops up whenever you're doing anything even slightly complicated with reagents in a debug release.

Even though this isn't really a problem in release it should probably be fixed for the sake of not needing to restart the server every 10 minutes while debugging.