Leaving the area near an update-suppressed trapped chest after opening it crashes the game.
James103 opened this issue ยท 3 comments
As of Carpet Mod 1.4.52 with #888 applied and Minecraft 1.17.1, when you do the following:
/execute in the end run tp @s 400000 0 0
/carpet fillUpdates false
/carpet updateSuppressionCrashFix true
/fill ~-80 0 ~-80 ~80 0 ~80 sea_lantern
/fill ~-80 1 ~-80 ~80 1 ~80 powered_rail[powered=true]
/setblock 400000 0 0 repeating_command_block{Command:"fill ~-80 1 ~-80 ~80 1 ~80 powered_rail[powered=true] replace powered_rail"}
- Replace one of the powered rails with a trapped chest.
- Open the trapped chest.
- Leave the area where the trapped chest is, e.g.
/tp ~ ~20 ~
,/execute in overworld run tp ~ ~ ~
,/kill
, or "Save and Quit to Title".
Then, the game will crash as follows:
Crash on /kill
carpetextra.helpers.ThrowableSuppression: Update suppression
at net.minecraft.world.World.handler$bli000$checkUpdateSuppression(World:5063)
at net.minecraft.world.World.updateNeighbor(World:358)
at net.minecraft.world.World.updateNeighborsAlways(World:320)
at net.minecraft.block.entity.TrappedChestBlockEntity.onInvOpenOrClose(TrappedChestBlockEntity:18)
at net.minecraft.class_2595$1.onViewerCountUpdate(class_2595.java:44)
at net.minecraft.block.entity.ViewerCountManager.closeContainer(ViewerCountManager:39)
at net.minecraft.block.entity.ChestBlockEntity.onClose(ChestBlockEntity:140)
at net.minecraft.screen.GenericContainerScreenHandler.close(GenericContainerScreenHandler:109)
at net.minecraft.entity.player.PlayerEntity.remove(PlayerEntity:1393)
at net.minecraft.entity.LivingEntity.updatePostDeath(LivingEntity:573)
at net.minecraft.entity.LivingEntity.baseTick(LivingEntity:413)
at net.minecraft.entity.Entity.tick(Entity:444)
at net.minecraft.entity.LivingEntity.tick(LivingEntity:2308)
at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity:274)
at net.minecraft.server.network.ServerPlayerEntity.redirect$cei000$fixUpdateSuppressionCrashPlayerTick(ServerPlayerEntity:6207)
at net.minecraft.server.network.ServerPlayerEntity.playerTick(ServerPlayerEntity:466)
at net.minecraft.server.network.ServerPlayNetworkHandler.tick(ServerPlayNetworkHandler:212)
at net.minecraft.network.ClientConnection.tick(ClientConnection:238)
at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo:183)
at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer:902)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer:831)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer:96)
at net.minecraft.server.MinecraftServer.handler$bnh000$modifiedRunLoop(MinecraftServer:5890)
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer:676)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer:270)
at java.lang.Thread.run(Thread.java:831)
Crash on walking away
carpetextra.helpers.ThrowableSuppression: Update suppression
at net.minecraft.world.World.handler$bli000$checkUpdateSuppression(World:5063)
at net.minecraft.world.World.updateNeighbor(World:358)
at net.minecraft.world.World.updateNeighborsAlways(World:321)
at net.minecraft.block.entity.TrappedChestBlockEntity.onInvOpenOrClose(TrappedChestBlockEntity:18)
at net.minecraft.class_2595$1.onViewerCountUpdate(class_2595.java:44)
at net.minecraft.block.entity.ViewerCountManager.closeContainer(ViewerCountManager:39)
at net.minecraft.block.entity.ChestBlockEntity.onClose(ChestBlockEntity:140)
at net.minecraft.screen.GenericContainerScreenHandler.close(GenericContainerScreenHandler:109)
at net.minecraft.server.network.ServerPlayerEntity.closeScreenHandler(ServerPlayerEntity:1055)
at net.minecraft.server.network.ServerPlayerEntity.closeHandledScreen(ServerPlayerEntity:1051)
at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity:278)
at net.minecraft.server.network.ServerPlayerEntity.redirect$cei000$fixUpdateSuppressionCrashPlayerTick(ServerPlayerEntity:6207)
at net.minecraft.server.network.ServerPlayerEntity.playerTick(ServerPlayerEntity:466)
at net.minecraft.server.network.ServerPlayNetworkHandler.tick(ServerPlayNetworkHandler:212)
at net.minecraft.network.ClientConnection.tick(ClientConnection:238)
at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo:183)
at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer:902)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer:831)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer:96)
at net.minecraft.server.MinecraftServer.handler$bnh000$modifiedRunLoop(MinecraftServer:5890)
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer:676)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer:270)
at java.lang.Thread.run(Thread.java:831)
Crash on disconnect
carpetextra.helpers.ThrowableSuppression: Update suppression
at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.37)
at net.minecraft.world.World.handler$bli000$checkUpdateSuppression(World:5063)
at net.minecraft.world.World.updateNeighbor(World:358)
at net.minecraft.world.World.updateNeighborsAlways(World:320)
at net.minecraft.block.entity.TrappedChestBlockEntity.onInvOpenOrClose(TrappedChestBlockEntity:18)
at net.minecraft.class_2595$1.onViewerCountUpdate(class_2595.java:44)
at net.minecraft.block.entity.ViewerCountManager.closeContainer(ViewerCountManager:39)
at net.minecraft.block.entity.ChestBlockEntity.onClose(ChestBlockEntity:140)
at net.minecraft.screen.GenericContainerScreenHandler.close(GenericContainerScreenHandler:109)
at net.minecraft.entity.player.PlayerEntity.remove(PlayerEntity:1393)
at net.minecraft.server.world.ServerWorld.removePlayer(ServerWorld:825)
at net.minecraft.server.PlayerManager.remove(PlayerManager:382)
at net.minecraft.server.network.ServerPlayNetworkHandler.onDisconnected(ServerPlayNetworkHandler:1135)
at net.minecraft.network.ClientConnection.handleDisconnection(ClientConnection:415)
at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo:196)
at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer:902)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer:831)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer:96)
at net.minecraft.server.MinecraftServer.handler$bnh000$modifiedRunLoop(MinecraftServer:5890)
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer:676)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer:270)
at java.lang.Thread.run(Thread.java:831)
In all three of the above cases, the ThrowableSuppression
exception is not caught anywhere in Carpet code, causing it to crash the game. Normally, any ThrowableSuppression
exceptions should be caught properly and displayed as a simple message to the user.
See the video by FX-PROCESS: https://www.youtube.com/watch?v=RchVIanvMVg
You are not running Carpet 1.4.52 in those stack traces because updateSuppressionCrashFix was moved from Carpet extra into main Carpet in 40-something, making Extra versions before latest (therefore with updateSuppressionCrashFix) incompatible with newer carpet versions, but the ThrowableSuppression there definitely comes from extra (carpetextra.helpers).
If it's actually not that (almost sure it is though, but later edits may have made it compatible again) try updating extra to prevent the extra exception from being used and therefore skipped in the carpet catcher.
Yeah, seems to be related to the move. If you can confirm 1.18 version of carpet and carpet extra that would be great.