MattiDragon / PowerNetworks

Power Networks adds the ability to create networks of wires and coils for a more interesting and slightly more realistic power transfer
MIT License
3 stars 1 forks source link

[Bug]: Destroying coil sometimes results in ConcurrentModificationException and keeps the coil block visible even if technically the coil isn't there #2

Closed lilmayu closed 1 year ago

lilmayu commented 1 year ago

Description of the issue

Sometimes destroying connected coil results in ConcurrentModificationException. Might wanna synchronize that :P

[20:01:13] [Server thread/ERROR]: Failed to handle packet net.minecraft.class_2846@47dd1eae, suppressing error
java.util.ConcurrentModificationException: null
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1597) ~[?:?]
        at java.util.HashMap$KeyIterator.next(HashMap.java:1620) ~[?:?]
        at io.github.mattidragon.powernetworks.block.CoilBlockEntity.disconnectAllConnections(CoilBlockEntity.java:83) ~[power-networks-1.1.0+mc.1.19.4.jar:?]
        at io.github.mattidragon.powernetworks.block.CoilBlock.method_9536(CoilBlock.java:121) ~[power-networks-1.1.0+mc.1.19.4.jar:?]
        at net.minecraft.class_4970$class_4971.method_26197(class_4970.java:985) ~[server-intermediary.jar:?]
        at net.minecraft.class_2818.method_12010(class_2818.java:253) ~[server-intermediary.jar:?]
        at net.minecraft.class_1937.method_30092(class_1937.java:230) ~[server-intermediary.jar:?]
        at net.minecraft.class_1937.method_8652(class_1937.java:215) ~[server-intermediary.jar:?]
        at net.minecraft.class_1937.method_8650(class_1937.java:290) ~[server-intermediary.jar:?]
        at net.minecraft.class_3225.method_14266(class_3225.java:257) ~[server-intermediary.jar:?]
        at net.minecraft.class_3225.method_21717(class_3225.java:228) ~[server-intermediary.jar:?]
        at net.minecraft.class_3225.method_14263(class_3225.java:159) ~[server-intermediary.jar:?]
        at net.minecraft.class_3244.method_12066(class_3244.java:1083) ~[server-intermediary.jar:?]
        at net.minecraft.class_2846.method_12361(class_2846.java:42) ~[server-intermediary.jar:?]
        at net.minecraft.class_2846.method_11054(class_2846.java:8) ~[server-intermediary.jar:?]
        at net.minecraft.class_2600.method_11072(class_2600.java:22) ~[server-intermediary.jar:?]
        at net.minecraft.class_3738.run(class_3738.java:18) ~[server-intermediary.jar:?]
        at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[server-intermediary.jar:?]
        at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:786) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:165) ~[server-intermediary.jar:?]
        at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:768) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:762) ~[server-intermediary.jar:?]
        at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:747) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:679) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:266) ~[server-intermediary.jar:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[20:01:13] [Server thread/WARN]: Block entity power_networks:coil @ class_2338{x=-2081, y=72, z=-4114} state Block{minecraft:air} invalid for ticking:

(there's nothing printed after the last log)

Reproduction steps

  1. Place two coils
  2. Connect them
  3. Destroy one - there's a small chance that it will result in an exception and leave a "ghost" block after destroying the coil.

Mod version

v1.1.0

Operating System

Linux Ubuntu (amd64) Kernel 5.15.0-43-generic

Minecraft version

1.19.4

Other mods

3dskinlayers-fabric-1.5.3-mc1.19.4.jar
abstoneedition-2.1.0a-fabric-mc1.19.jar
additionallanterns-1.0.4a-fabric-mc1.19.jar
advanced-networking-1.0.3+mc.1.19.4.jar
advancementinfo-1.19.4-fabric0.76.0-1.3.1.jar
ad_astra-fabric-1.19.4-1.14.1.jar
alloy-forgery-2.0.20+1.19.4.jar
animatica-0.5+1.19.jar
antighost-1.19.3-fabric0.68.1-1.1.5.jar
appleskin-fabric-mc1.19.4-2.4.3.jar
architectury-8.1.80-fabric.jar
balm-fabric-1.19.4-6.0.2.jar
bclib-2.3.1.jar
benched-1.2.2-fabric-mc1.19.jar
better-end-3.2.0.jar
better-nether-8.2.1.jar
BetterF3-6.0.1-Fabric-1.19.4.jar
bettermounthud-1.2.1.jar
Bookshelf-Fabric-1.19.4-18.0.4.jar
borderless-mining-1.1.7+1.19.4.jar
botarium-fabric-1.19.4-2.0.5.jar
capes-1.5.2+1.19.3-fabric.jar
cardinal-components-api-5.1.0.jar
chat_heads-0.10.14-fabric-1.19.4.jar
chunkloaders-1.2.3b-fabric-mc1.19.jar
CITResewn-1.1.3+1.19.4.jar
clocks-and-chimes-V1.0.jar
cloth-config-10.0.96-fabric.jar
comforts-fabric-6.2.0+1.19.4.jar
continuity-3.0.0-beta.2+1.19.3.jar
Controlling-fabric-1.19.4-11.1.3.jar
cookingforblockheads-fabric-1.19.4-15.0.2.jar
CreativeCore_FABRIC_v2.10.12_mc1.19.4.jar
culinaryconstruct-fabric-5.1.0+1.19.4.jar
DarkPaintings-Fabric-1.19.4-15.0.1.jar
dawn-4.2.1.jar
Debugify-1.19.4+2.2.jar
dragonloot-1.1.4.jar
dynamic-fps-2.2.0.jar
e4mc-3.1.0.jar
EnchantmentDescriptions-Fabric-1.19.4-15.0.1.jar
EnhancedQuarries-1.19.4-1.3.1.jar
entityculling-fabric-1.6.2-mc1.19.4.jar
entity_model_features_fabric_1.19.4-0.2.9.jar
entity_texture_features_fabric_1.19.4-4.4.4.jar
exordium-fabric-1.0.3-mc1.19.4.jar
extremesoundmuffler-3.37-fabric-1.19.4.jar
fabric-api-0.81.0+1.19.4.jar
fabric-language-kotlin-1.9.4+kotlin.1.8.21.jar
fabricskyboxes-0.6.5+mc1.19.4.jar
fabrishot-1.9.2.jar
fallingleaves-1.15.0+1.19.4.jar
farsight-fabric-1.19-3.4.jar
fastquit-2.1.0+1.19.3.jar
ferritecore-5.2.0-fabric.jar
food-plus-2.0.jar
ForgeConfigAPIPort-v6.0.2-1.19.4-Fabric.jar
forgottengraves-1.19.4-3.0.5.jar
fsb-interop-1.2.0+mc1.19.4-build.31.jar
harvestwithease-1.19.4-6.0.1.2-fabric.jar
ImmediatelyFast-1.1.12+1.19.4.jar
immersive_armors-1.5.5+1.19.4-fabric.jar
indium-1.0.15+mc1.19.4.jar
InventorySorter-1.8.10-1.19.4.jar
iris-mc1.19.4-1.6.3.jar
Jade-1.19.4-fabric-10.2.0.jar
lambdynamiclights-2.3.0+1.19.4.jar
language-reload-1.5.5+1.19.4.jar
LeafDecayFabric-1.0.0.jar
lithium-fabric-mc1.19.4-0.11.1.jar
main-menu-credits-1.1.2.jar
mavapi-1.0.4-mc1.19.4.jar
mavm-1.2.2-mc1.19.4.jar
mayu-modpack-updater-1.1.1.jar
mayusrandomstuff-1.1.1.jar
mcpitanlibarch-1.6.3-1.19.4-fabric.jar
mcw-roofs-2.2.3-mc1.19.4fabric.jar
mcw-trapdoors-1.0.9-mc1.19.4fabric.jar
mcw-windows-2.1.2-mc1.19.4fabric.jar
memoryleakfix-fabric-1.17+-1.0.0.jar
midnightcontrols-1.8.1+1.19.4.jar
mixintrace-1.1.1+1.17.jar
modelfix-1.10-fabric.jar
modmenu-6.2.2.jar
morechathistory-1.19.1-1.1.1.jar
moreculling-1.19.4-0.17.0.jar
MouseTweaks-fabric-mc1.19.4-2.24.jar
MTR-fabric-1.19.4-3.2.2-hotfix-1.jar
mythicmetals-0.17.6+1.19.4.jar
mythicmetals-decorations-0.5.3+1.19.4.jar
NaturesCompass-1.19.4-2.2.0-fabric.jar
netherportalfix-fabric-1.19.4-12.0.1.jar
NoChatReports-FABRIC-1.19.4-v2.1.1.jar
nofade-1.18-2.0.1.jar
OfflineSkins-1.19.4-v1a-fabric.jar
optigui-2.0.0-beta.3.jar
owo-lib-0.10.3+1.19.4.jar
paladin-furniture-mod-1.1.3-fabric-mc1.19.4.jar
PlayerHealthIndicators-1.1.0-1.19.3.jar
power-networks-1.1.0+mc.1.19.4.jar
promenade-3.2.0.jar
puzzle-1.5.0+1.19.4.jar
RebornCore-5.7.0.jar
rechiseled-1.0.13-fabric-mc1.19.jar
reeses_sodium_options-1.5.0+mc1.19.4-build.72.jar
rer-2.8.0.jar
resourcefulconfig-fabric-1.19.4-1.2.0.jar
resourcefullib-fabric-1.19.4-1.3.1.jar
RoughlyEnoughItems-11.0.597.jar
RoughlyEnoughProfessions-fabric-1.19.4-1.2.1.jar
Searchables-fabric-1.19.4-1.0.2.jar
show-me-your-skin-1.6.3+1.19.4.jar
smoothboot-fabric-1.19.4-1.7.0.jar
sodium-extra-0.4.18+mc1.19.4-build.100.jar
sodium-fabric-mc1.19.4-0.4.10+build.24.jar
starlight-1.1.1+fabric.ae22326.jar
supermartijn642configlib-1.1.6-fabric-mc1.19.jar
supermartijn642corelib-1.1.7-fabric-mc1.19.jar
tables-and-chairs-V5.1.1.jar
TechReborn-5.7.0.jar
TerraBlender-fabric-1.19.4-2.2.0.156.jar
terrestria-5.2.0.jar
toms_storage_fabric-1.19.4-1.5.7.jar
trashcans-1.0.17-fabric-mc1.19.jar
travelers-backpack-1.19.4-8.4.3.jar
waveycapes-fabric-1.3.2-mc1.19.3.jar
wireless-redstone-mc1.19.4-3.0.3+build.30.jar
XaerosWorldMap_1.30.2_Fabric_1.19.4.jar
Xaeros_Minimap_23.4.3_Fabric_1.19.4.jar
yet-another-config-lib-forge-2.5.1+1.19.4.jar
yosbr-0.1.1.jar
YungsApi-1.19.4-Fabric-3.10.1.jar
YungsBetterDesertTemples-1.19.4-Fabric-2.4.0.jar
YungsBetterDungeons-1.19.4-Fabric-3.4.0.jar
YungsBetterMineshafts-1.19.4-Fabric-3.4.0.jar
YungsBetterNetherFortresses-1.19.4-Fabric-1.2.0.jar
YungsBetterOceanMonuments-1.19.4-Fabric-2.3.0.jar
YungsBetterStrongholds-1.19.4-Fabric-3.4.0.jar
YungsBetterWitchHuts-1.19.4-Fabric-2.3.0.jar
YungsBridges-1.19.4-Fabric-3.3.0.jar
YungsExtras-1.19.4-Fabric-3.3.0.jar
Zoomify-2.9.4.jar

Server

Happens

Client

Happens

Logs

https://pastebin.com/4a5mAheQ

Extra Context

No response

MattiDragon commented 1 year ago

This is actually caused by a coil being connected to itself, which is indeed a bug