Crash and world corruption when breaking RS parts with Ars Nouveau
TheFlyron opened this issue ยท 8 comments
Describe the bug
We found out the hard way on our small server when you're picking up RS storage system parts with a spell book from Ars (Touch + Break) and quickly replacing them with different RS parts, the server suddenly crashes and the world is corrupted until the chunk in which this happened is deleted/reset. It's a ClassCastException of looking for one type of RS part and finding another. See log and steps how to reproduce.
How can we reproduce this bug or crash?
- Create modpack with Refined Storage and Ars Nouveau (+ Curio), JEI may be optional
- Start new world, can be flat. Creative mode.
- Place a (Creative) Controller and some cables like this: https://imgur.com/a/0oKUnTG
- Get a (Creative) Spell Book from Ars Nouveau, create a new spell with Touch -> Break. You need to hold Sneak to break RS parts.
- Take an RS Exporter. Break a piece of cable and quickly replace it with the exporter. Then break the exporter and replace it with a cable. Cycle both items in one spot until crash occurs.
- World is now corrupt and cannot be started again without deleting that chunk.
What Minecraft version is this happening on?
Minecraft 1.20.1
What Forge version is this happening on?
47.2.0
What Refined Storage version is this happening on?
Refined Storage 1.12.3 & Ars Nouveau 4.7.4
Relevant log output
---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3
Time: 2023-11-02 18:15:32
Description: Exception ticking world
java.lang.ClassCastException: class com.refinedmods.refinedstorage.apiimpl.network.node.ExporterNetworkNode cannot be cast to class com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode (com.refinedmods.refinedstorage.apiimpl.network.node.ExporterNetworkNode and com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode are in module [email protected] of loader 'TRANSFORMER' @75023c53)
at com.refinedmods.refinedstorage.blockentity.CableBlockEntity.writeUpdate(CableBlockEntity.java:49) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.m_5995_(BaseBlockEntity.java:35) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket.m_195642_(ClientboundBlockEntityDataPacket.java:21) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.getUpdatePacket(BaseBlockEntity.java:40) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.m_58483_(BaseBlockEntity.java:13) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288223_(ChunkHolder.java:243) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288224_(ChunkHolder.java:235) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288111_(ChunkHolder.java:221) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket.m_132992_(ClientboundSectionBlocksUpdatePacket.java:68) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading}
at net.minecraft.server.level.ChunkHolder.m_140054_(ChunkHolder.java:220) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ServerChunkCache.m_184021_(ServerChunkCache.java:374) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?] {}
at net.minecraft.server.level.ServerChunkCache.m_8490_(ServerChunkCache.java:373) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerChunkCache.m_201698_(ServerChunkCache.java:312) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:305) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:833) ~[?:?] {}
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Server thread
Stacktrace:
at com.refinedmods.refinedstorage.blockentity.CableBlockEntity.writeUpdate(CableBlockEntity.java:49) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.m_5995_(BaseBlockEntity.java:35) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket.m_195642_(ClientboundBlockEntityDataPacket.java:21) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.getUpdatePacket(BaseBlockEntity.java:40) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at com.refinedmods.refinedstorage.blockentity.BaseBlockEntity.m_58483_(BaseBlockEntity.java:13) ~[refinedstorage-1.12.3.jar%23163!/:?] {re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288223_(ChunkHolder.java:243) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288224_(ChunkHolder.java:235) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ChunkHolder.m_288111_(ChunkHolder.java:221) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket.m_132992_(ClientboundSectionBlocksUpdatePacket.java:68) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading}
at net.minecraft.server.level.ChunkHolder.m_140054_(ChunkHolder.java:220) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:mixin,re:classloading}
at net.minecraft.server.level.ServerChunkCache.m_184021_(ServerChunkCache.java:374) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?] {}
at net.minecraft.server.level.ServerChunkCache.m_8490_(ServerChunkCache.java:373) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerChunkCache.m_201698_(ServerChunkCache.java:312) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:305) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}
-- Affected level --
Details:
All players: 1 total; [ServerPlayer['TheFlyron'/1, l='ServerLevel[Test 1]', x=-1.28, y=-60.00, z=7.04]]
Chunk stats: 2809
Level dimension: minecraft:overworld
Level spawn location: World: (0,-60,0), Section: (at 0,4,0 in 0,-4,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)
Level time: 7186 game time, 7186 day time
Level name: Test 1
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Level weather: Rain time: 165054 (now: false), thunder time: 87349 (now: false)
Known server brands: forge
Removed feature flags:
Level was modded: true
Level storage version: 0x04ABD - Anvil
Stacktrace:
at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23164!/:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:833) ~[?:?] {}
-- System Details --
Details:
Minecraft Version: 1.20.1
Minecraft Version ID: 1.20.1
Operating System: Windows 11 (amd64) version 10.0
Java Version: 17.0.8, Microsoft
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
Memory: 720318456 bytes (686 MiB) / 1786773504 bytes (1704 MiB) up to 10502537216 bytes (10016 MiB)
CPUs: 12
Processor Vendor: AuthenticAMD
Processor Name: AMD Ryzen 5 5600G with Radeon Graphics
Identifier: AuthenticAMD Family 25 Model 80 Stepping 0
Microarchitecture: Zen 3
Frequency (GHz): 3.89
Number of physical packages: 1
Number of physical CPUs: 6
Number of logical CPUs: 12
Graphics card #0 name: NVIDIA GeForce GTX 1080
Graphics card #0 vendor: NVIDIA (0x10de)
Graphics card #0 VRAM (MB): 4095.00
Graphics card #0 deviceId: 0x1b80
Graphics card #0 versionInfo: DriverVersion=31.0.15.3742
Graphics card #1 name: AMD Radeon(TM) Graphics
Graphics card #1 vendor: Advanced Micro Devices, Inc. (0x1002)
Graphics card #1 VRAM (MB): 4095.00
Graphics card #1 deviceId: 0x1638
Graphics card #1 versionInfo: DriverVersion=31.0.12027.9001
Memory slot #0 capacity (MB): 16384.00
Memory slot #0 clockSpeed (GHz): 2.13
Memory slot #0 type: DDR4
Memory slot #1 capacity (MB): 16384.00
Memory slot #1 clockSpeed (GHz): 2.13
Memory slot #1 type: DDR4
Virtual memory max (MB): 48016.45
Virtual memory used (MB): 25147.77
Swap memory total (MB): 19456.00
Swap memory used (MB): 82.72
JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx10016m -Xms256m
Server Running: true
Player Count: 1 / 8; [ServerPlayer['TheFlyron'/1, l='ServerLevel[Test 1]', x=-1.28, y=-60.00, z=7.04]]
Data Packs: vanilla, mod:mixinextras (incompatible), mod:forge, mod:curios (incompatible), mod:refinedstorage, mod:geckolib, mod:ars_nouveau (incompatible), mod:jei
Enabled Feature Flags: minecraft:vanilla
World Generation: Stable
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'
Launched Version: forge-47.2.0
ModLauncher: 10.0.9+10.0.9+main.dcd20f30
ModLauncher launch target: forgeclient
ModLauncher naming: srg
ModLauncher services:
mixin-0.8.5.jar mixin PLUGINSERVICE
eventbus-6.0.5.jar eventbus PLUGINSERVICE
fmlloader-1.20.1-47.2.0.jar slf4jfixer PLUGINSERVICE
fmlloader-1.20.1-47.2.0.jar object_holder_definalize PLUGINSERVICE
fmlloader-1.20.1-47.2.0.jar runtime_enum_extender PLUGINSERVICE
fmlloader-1.20.1-47.2.0.jar capability_token_subclass PLUGINSERVICE
accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE
fmlloader-1.20.1-47.2.0.jar runtimedistcleaner PLUGINSERVICE
modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE
modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE
FML Language Providers:
[email protected]
lowcodefml@null
javafml@null
Mod List:
client-1.20.1-20230612.114412-srg.jar |Minecraft |minecraft |1.20.1 |DONE |Manifest: ****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****
mixinextras-forge-0.2.0-beta.8.jar |MixinExtras |mixinextras |0.2.0-beta.8 |DONE |Manifest: NOSIGNATURE
forge-1.20.1-47.2.0-universal.jar |Forge |forge |47.2.0 |DONE |Manifest: ****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****:****
curios-forge-5.4.2+1.20.1.jar |Curios API |curios |5.4.2+1.20.1 |DONE |Manifest: NOSIGNATURE
refinedstorage-1.12.3.jar |Refined Storage |refinedstorage |1.12.3 |DONE |Manifest: NOSIGNATURE
geckolib-forge-1.20.1-4.2.2.jar |GeckoLib 4 |geckolib |4.2.2 |DONE |Manifest: NOSIGNATURE
ars_nouveau-1.20.1-4.7.4-all.jar |Ars Nouveau |ars_nouveau |4.7.4 |DONE |Manifest: NOSIGNATURE
jei-1.20.1-forge-15.2.0.27.jar |Just Enough Items |jei |**.**.**.** |DONE |Manifest: NOSIGNATURE
Crash Report UUID: 20a4baf3-062e-46bc-9bf4-3c3667d13edf
FML: 47.2
Forge: net.minecraftforge:47.2.0
Hi, thank you for reporting. I will be investigating this for the next RS version.
Thank you by the way, you had really good reproduction steps and I was able to reproduce it locally thanks to you.
Hello. This bug has been fixed in v1.12.4 of Refined Storage. If this issue persists anyway, please feel free to create a new bug.
Finally came around to test the setup with the new version. Seems fine to me now. I was even able to join old, previously corrupted worlds again. Good job!๐
Thank you @TheFlyron !
This bug has also been fixed in v1.11.7 of Refined Storage for Minecraft 1.19.2. If this issue persists anyway, please feel free to create a new bug.