Opening a Wireless Transmitter too quickly after loading dim crashes RS
Closed this issue ยท 5 comments
Describe the bug
Teleporting to the overworld and immediately opening a wireless terminal too quickly seems to crash RS in some way. The terminal is blank, and right clicking on blocks does nothing. I think it crashes the 'server' side of the single player instance. Need to reload the game to resolve.
Edit to add: Chunkloading the Refined Storage system seems to have helped avoid the issue.
How can we reproduce this bug or crash?
Teleport to overworld
Immediately press hotkey to open wireless grid
What Minecraft version is this happening on?
Minecraft 1.21.1
What NeoForge or Fabric version is this happening on?
21.1.172
What Refined Storage version is this happening on?
2.0.0-beta.2
Relevant log output
java.lang.IllegalArgumentException: Watcher is not registered
at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.api.network.impl.node.grid.GridWatcherManagerImpl.removeWatcher(GridWatcherManagerImpl.java:69) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23922!/:?] {re:classloading}
at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.quartzarsenal.common.wirelesscraftinggrid.WirelessCraftingGrid.lambda$removeWatcher$14(WirelessCraftingGrid.java:223) ~[refinedstorage-quartz-arsenal-neoforge-1.0.0.jar%23923!/:?] {re:classloading}
at java.base/java.util.Optional.ifPresent(Unknown Source) ~[?:?] {re:mixin}
at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.quartzarsenal.common.wirelesscraftinggrid.WirelessCraftingGrid.removeWatcher(WirelessCraftingGrid.java:223) ~[refinedstorage-quartz-arsenal-neoforge-1.0.0.jar%23923!/:?] {re:classloading}
at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.common.grid.AbstractGridContainerMenu.removed(AbstractGridContainerMenu.java:269) ~[refinedstorage-neoforge-2.0.0-beta.2.jar%23922!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerPlayer.doCloseContainer(ServerPlayer.java:1212) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:supplementaries-common.mixins.json:ServerPlayerMixin from mod supplementaries,pl:mixin:APP:the_bumblezone-common.mixins.json:entities.ServerPlayerAccessor from mod the_bumblezone,pl:mixin:APP:the_bumblezone-common.mixins.json:entities.ServerPlayerMixin from mod the_bumblezone,pl:mixin:APP:puffish_skills.mixins.json:ServerPlayerEntityMixin from mod puffish_skills,pl:mixin:APP:alltheleaks.mixins.json:main.ServerPlayerMixin from mod alltheleaks,pl:mixin:APP:eternal_starlight-common.mixins.json:ServerPlayerMixin from mod eternal_starlight,pl:mixin:APP:servercore.common.mixins.json:optimizations.players.ServerPlayerMixin from mod servercore,pl:mixin:APP:mixins.pneumaticcraft.json:accessors.ServerPlayerAccess from mod pneumaticcraft,pl:mixin:APP:chunksending.mixins.json:ServerPlayerChunkSending from mod chunksending,pl:mixin:APP:ars_nouveau.mixins.json:camera.ANServerPlayerMixin from mod ars_nouveau,pl:mixin:APP:kubejs.mixins.json:ServerPlayerMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ServerPlayerEntityMixin from mod owo,pl:mixin:APP:oritech_forge.mixins.json:ServerPlayerEntityMixin from mod oritech,pl:mixin:APP:betterdeserttemples.mixins.json:ServerPlayerTickMixin from mod betterdeserttemples,pl:mixin:APP:moonlight-common.mixins.json:ServerPlayerMixin from mod moonlight,pl:mixin:APP:ae2wtlib.mixins.json:ServerPlayerMixin from mod ae2wtlib,pl:mixin:APP:tesseract_api.mixins.json:event.PlayerInventoryChangeEventMixin from mod tesseract_api,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.world.entity.player.Player.remove(Player.java:1417) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:supplementaries-common.mixins.json:PlayerMixin from mod supplementaries,pl:mixin:APP:supplementaries-common.mixins.json:PlayerProjectileMixin from mod supplementaries,pl:mixin:APP:the_bumblezone-common.mixins.json:entities.PlayerMixin from mod the_bumblezone,pl:mixin:APP:the_bumblezone-common.mixins.json:entities.PlayerTimeInAirMixin from mod the_bumblezone,pl:mixin:APP:the_bumblezone-common.mixins.json:items.PlayerDamageShieldInvoker from mod the_bumblezone,pl:mixin:APP:puffish_skills.mixins.json:PlayerEntityMixin from mod puffish_skills,pl:mixin:APP:geore.mixins.json:PlayerMixin from mod geore,pl:mixin:APP:the_afterdark.mixins.json:PlayerEntityNBTMixin from mod the_afterdark,pl:mixin:APP:hangglider.common.mixins.json:PlayerMixin from mod hangglider,pl:mixin:APP:ichunutil.mixins.json:PlayerMixin from mod ichunutil,pl:mixin:APP:irons_spellbooks.mixins.json:PlayerMixin from mod irons_spellbooks,pl:mixin:APP:playerAnimator-common.mixins.json:PlayerEntityMixin from mod playeranimator,pl:mixin:APP:eternal_starlight-common.mixins.json:PlayerMixin from mod eternal_starlight,pl:mixin:APP:apothic_attributes.mixins.json:PlayerMixin from mod apothic_attributes,pl:mixin:APP:hexerei.mixins.json:PlayerMixin from mod hexerei,pl:mixin:APP:ars_nouveau.mixins.json:elytra.ElytraPlayerMixin from mod ars_nouveau,pl:mixin:APP:dummmmmmy-common.mixins.json:PlayerMixin from mod dummmmmmy,pl:mixin:APP:squatgrow.mixins.json:PlayerMixin from mod squatgrow,pl:mixin:APP:comforts.mixins.json:AccessorPlayer from mod comforts,pl:mixin:APP:extended_industrialization.mixins.json:TeslaNetworkReceiversPlayerMixin from mod extended_industrialization,pl:mixin:APP:forbidden_arcanus.mixins.json:PlayerMixin from mod forbidden_arcanus,pl:mixin:APP:kubejs.mixins.json:PlayerMixin from mod kubejs,pl:mixin:APP:puffish_attributes.mixins.json:PlayerEntityMixin from mod puffish_attributes,pl:mixin:APP:create.mixins.json:PlayerMixin from mod create,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerLevel.removePlayerImmediately(ServerLevel.java:959) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin from mod cupboard,pl:mixin:APP:servercore.common.mixins.json:optimizations.ticking.chunk.random.ServerLevelMixin from mod servercore,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin from mod supplementaries,pl:mixin:APP:the_bumblezone-common.mixins.json:world.ServerWorldMixin from mod the_bumblezone,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel from mod corgilib,pl:mixin:APP:weathergate.mixins.json:ServerLevelMixin from mod weathergate,pl:mixin:APP:eternal_starlight-common.mixins.json:ServerLevelMixin from mod eternal_starlight,pl:mixin:APP:servercore.common.mixins.json:features.activation_range.ServerLevelMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:optimizations.sync_loads.ServerLevelMixin from mod servercore,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin from mod immersiveengineering,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel from mod ohthetreesyoullgrow,pl:mixin:APP:hyperbox.mixins.json:ServerLevelMixin from mod hyperbox,pl:mixin:APP:ars_elemental.mixins.json:ServerLevelMixin from mod ars_elemental,pl:mixin:APP:kubejs.mixins.json:ServerLevelMixin from mod kubejs,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus from mod comforts,pl:mixin:APP:betterdeserttemples.mixins.json:ServerLevelMixin from mod betterdeserttemples,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin from mod moonlight,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor from mod create,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.players.PlayerList.remove(PlayerList.java:373) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alltheleaks.mixins.json:main.PlayerListMixin from mod alltheleaks,pl:mixin:APP:azurelib.neo.mixins.json:PlayerListMixin from mod azurelib,pl:mixin:APP:balm.neoforge.mixins.json:PlayerListMixin from mod balm,pl:mixin:APP:resourcefulconfig.mixins.json:common.PlayerListAccessor from mod resourcefulconfig,pl:mixin:APP:servercore.common.mixins.json:features.dynamic.PlayerListMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:optimizations.players.PlayerListMixin from mod servercore,pl:mixin:APP:creeperoverhaul-common.mixins.json:PlayerListMixin from mod creeperoverhaul,pl:mixin:APP:ars_nouveau.mixins.json:PlayerListMixin from mod ars_nouveau,pl:mixin:APP:ftbessentials-common.mixins.json:PlayerListAccess from mod ftbessentials,pl:mixin:APP:kubejs.mixins.json:PlayerListMixin from mod kubejs,pl:mixin:APP:ars_nouveau.mixins.json:camera.PlayerListMixin from mod ars_nouveau,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:1215) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:1204) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.network.Connection.handleDisconnection(Connection.java:643) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:172) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1051) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:917) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:110) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:707) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[client-1.21.1-20240808.144430-srg.jar%23602!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at java.base/java.lang.Thread.run(Unknown Source) [?:?] {re:mixin}I could reproduce it with only refinedstorage installed
https://youtu.be/q0radg8Q05g
(Before going back to the system in the overworld you have to at least open the grid one time. I did that in the video at around 0:25)
Thanks @starforcraft !
Ah, this is closely related to #512.
It will now always register the watcher even if no network is present.
Because of this, it can unregister itself properly even if the network becomes available afterwards.