Refined Storage

Refined Storage

107M Downloads

Crash and world corruption when breaking RS parts with Ars Nouveau

TheFlyron opened this issue ยท 8 comments

commented

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?

  1. Create modpack with Refined Storage and Ars Nouveau (+ Curio), JEI may be optional
  2. Start new world, can be flat. Creative mode.
  3. Place a (Creative) Controller and some cables like this: https://imgur.com/a/0oKUnTG
  4. Get a (Creative) Spell Book from Ars Nouveau, create a new spell with Touch -> Break. You need to hold Sneak to break RS parts.
  5. 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.
  6. 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
commented

Hi, thank you for reporting. I will be investigating this for the next RS version.

commented

Will be tackled in the issue linked above

commented

Thank you by the way, you had really good reproduction steps and I was able to reproduce it locally thanks to you.

commented

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.

commented

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!๐Ÿ‘

commented

Thank you @TheFlyron !

commented

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.

commented

Hello, this bug is now also fixed for Minecraft 1.18.2 in v1.10.6.