Server crash with Biome Crystals
wrincewind opened this issue ยท 7 comments
Issue type: Crash
- ๐ Bug
Short description:
When I put an item card set to 'Biome Crystal: Storage Cell' from the Random Things mod into the 'Export Item' slot of an item exporter, the server crashes, booting me out with an error of 'server closed' and causing the server to reboot. The same thing happens when the Biome Crystal is the first/only item in a list card, and happens irrespective of the exporter's settings for ignoring/respecting damage/nbt/etcetera.
I also tried it with a different Biome Crystal (Forest, specifically) in a Dynamic Light Panel and got the same thing. So it seems to be more generic than just that specific biome.
Expected behaviour:
The Item Exporter should pull all biome crystals (or all biome crystal:Storage Cells) from the rest of the system (A handful of small crates from Actually Additions) into the crate it's attached to.
Actual behaviour:
When placed into the GUI, the client freezes for a few moments before booting me from the server, with the error message 'server closed'. Upon reboot, any attempt to access the GUI of the offending Item Exporter will result in another crash, requiring me to break the exporter to get my card back.
Steps to reproduce the problem:
-
Place down a chest (crate, etc, it seems to work on both so probably anything... but there's only so many tests I can do before the admin yells at me to stop crashing his server, this is like the sixth time)
-
Place an item exporter and at least 1 piece of cable onto the chest
-
in your portable logic controller (... or whatever the doohickey's called), select either 'item' or 'list' > 'item', then take a Biome Crystal from Random Things (I used Biome Crystal: Storage Cell) and place it in the slot, along with a blank variable card to get your item or list variable.
-
place your item or list variable in the appropriate slot of the Item Exporter.
-
The server should crash.
Versions:
Exact versions of the following mods, not just latest.
- This mod:
- CyclopsCore: 1.12.2-0.11.0
- Minecraft: 1.12.2
- Forge: 1.12.2-14.23.1.2582
Log file:
https://imgur.com/a/JW5jJ < pictures of the two cards I used, with advanced NBT Data shown.
Let me ask the admin of the server - my client didn't crash, it just booted me off the server. I'm playing SMP, sorry for not mentioning that sooner.
I can confirm that the crash does not occur in single player when using a blank, cheated in biome crystal. Trying to get a non-cheated one is proving a little challenging, so a single-player crash log might take a little longer...
Okay, tried doing it in a single player world on the same instance, and it worked fine - no crash, no GUI error, nothing.
this should be the latest crashlog.
http://www.sillydragon.ca/Minecraft/Live%20Server/crash-reports/crash-2018-01-10_12.34.00-server.txt
Hmm, it seems to be caused by Random Things that calls Biome#getBiomeName
(which is client-side only) from within Item#getItemStackDisplayName
(server-side).
Typically, this isn't a problem, but ID calls this server-side.
Ideally, the stack itself should be sent to the client, but due the way it works now, this would require a lot of hacking.
Note to self: add a (temp?) try-catch around this because similar issues may occur in the future, and fall back to a safer way to get the item name.
Fair enough! So, sounds like it's an issue with Random Things. You wanna go tell 'em, or shall I?
Also, got any suggestions for safe ways to filter these? I think I can do something with having the name equal a string, but I'm not sure about partial matches.
No, no need to tell them. It's something that should be handled better in ID. RT does nothing wrong.
Fixed in CyclopsMC/IntegratedDynamics@7ba9c85