Magnetism causing player disconnect on SpongeForge
bluelightning32 opened this issue ยท 4 comments
Type of Issue/Request (Bug / Crash / Suggestion / Translation / ...):
(*) Bug
Version of the mod or build number:
(*) extraalchemy-0.3.8.6.1-release.jar
Are you a Single Player, a Multiplayer Client (You are a player in a server) or Server Side?:
(*) Server Side
Minecraft Version (1.9.4, 1.10, 1.10.2, 1.11.2...):
(*) minecraft_server.1.12.2.jar
Description (or what were you doing when it crashed):
(*) A player on my server said they used the Ankh from Corail Tombstones to get the magnetism potion effect from ExtraAlchemy. The server immediately kicked them off. Now every time they try to rejoin, their account still has the magnetism effect, and they get kicked off again.
Pastebin of the log (fml-client-latest.log from your instance/logs folder):
(!) Server side debug.log: https://gist.github.com/bluelightning32/152f20783f92519616e6e5711a897d75
ModPack (or list of mods via Pastebin. If using a modified modpack, write BOTH the modpack AND the link to the full mod list):
(!) https://minecraft.curseforge.com/projects/dungeons-dragons-and-space-shuttles/files/2709365
SpongeForge: spongeforge-1.12.2-2825-7.1.6-RC3705.jar
Pastebin of the config file (extraalchemy.cfg from your instance/config folder):
(!) https://gist.github.com/bluelightning32/938885963f7557644d18143c7adc1538
OS and Java version (Java8 + Windows10 / Java7 + MacOS / ...):
(!) Fedora 30
Other information that you think might be useful:
(-) Disconnect exception:
[02:53:51] [Server thread/WARN] [net.minecraft.network.NetworkSystem]: Failed to handle packet for /172.117.248.78:60526
net.minecraft.util.ReportedException: Ticking player
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:459) ~[oq.class:?]
at net.minecraft.network.NetHandlerPlayServer.redirect$onPlayerTick$zjb000(NetHandlerPlayServer.java:2056) ~[pa.class:?]
at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:173) ~[pa.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:209) ~[NetworkDispatcher$1.class:?]
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:285) ~[gw.class:?]
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:180) [oz.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:790) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:397) [nz.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:668) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: CauseStackManager called from off main thread (current='InnocuousForkJoinWorkerThread{class=class java.util.concurrent.ForkJoinWorkerThread$InnocuousForkJoinWorkerThread, name=ForkJoinPool.commonPool-worker-5, priority=5, group=java.lang.ThreadGroup[name=InnocuousForkJoinWorkerThreadGroup,maxpri=10]}', expected='Thread{class=class java.lang.Thread, name=Server thread, priority=5, group=net.minecraftforge.fml.common.thread.SidedThreadGroup[name=SERVER,maxpri=10]}')!
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_212]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_212]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_212]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735) ~[?:1.8.0_212]
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160) ~[?:1.8.0_212]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174) ~[?:1.8.0_212]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) ~[?:1.8.0_212]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_212]
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583) ~[?:1.8.0_212]
at zabi.minecraft.extraalchemy.potion.potion.PotionMagnetism.performEffect(PotionMagnetism.java:29) ~[PotionMagnetism.class:?]
at net.minecraft.potion.PotionEffect.performEffect(PotionEffect.java:137) ~[va.class:?]
at net.minecraft.potion.PotionEffect.onUpdate(PotionEffect.java:119) ~[va.class:?]
at net.minecraft.entity.EntityLivingBase.updatePotionEffects(EntityLivingBase.java:606) ~[vp.class:?]
at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:353) ~[vp.class:?]
at net.minecraft.entity.Entity.onUpdate(Entity.java:389) ~[vg.class:?]
at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2096) ~[vp.class:?]
at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:234) ~[aed.class:?]
at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:382) ~[oq.class:?]
... 10 more
Caused by: java.lang.IllegalStateException: CauseStackManager called from off main thread (current='InnocuousForkJoinWorkerThread{class=class java.util.concurrent.ForkJoinWorkerThread$InnocuousForkJoinWorkerThread, name=ForkJoinPool.commonPool-worker-5, priority=5, group=java.lang.ThreadGroup[name=InnocuousForkJoinWorkerThreadGroup,maxpri=10]}', expected='Thread{class=class java.lang.Thread, name=Server thread, priority=5, group=net.minecraftforge.fml.common.thread.SidedThreadGroup[name=SERVER,maxpri=10]}')!
at org.spongepowered.common.event.SpongeCauseStackManager.enforceMainThread(SpongeCauseStackManager.java:86) ~[SpongeCauseStackManager.class:1.12.2-2825-7.1.6-RC3705]
at org.spongepowered.common.event.SpongeCauseStackManager.pushCause(SpongeCauseStackManager.java:148) ~[SpongeCauseStackManager.class:1.12.2-2825-7.1.6-RC3705]
at org.spongepowered.common.event.SpongeCommonEventFactory.callPlayerChangeInventoryPickupPreEvent(SpongeCommonEventFactory.java:306) ~[SpongeCommonEventFactory.class:1.12.2-2825-7.1.6-RC3705]
at net.minecraft.entity.item.EntityItem.handler$onPlayerItemPickup$zga000(EntityItem.java:769) ~[acl.class:?]
at net.minecraft.entity.item.EntityItem.onCollideWithPlayer(EntityItem.java:392) ~[acl.class:?]
at zabi.minecraft.extraalchemy.potion.potion.PotionMagnetism.attract(PotionMagnetism.java:42) ~[PotionMagnetism.class:?]
at zabi.minecraft.extraalchemy.potion.potion.PotionMagnetism.lambda$performEffect$0(PotionMagnetism.java:29) ~[PotionMagnetism.class:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_212]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[?:1.8.0_212]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_212]
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) ~[?:1.8.0_212]
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_212]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_212]
Looks like spongeforge doesn't like some performance tricks which should be completely ignored by normal loaders. I'll see with the devs if we can fix that because there's absolutely no reason to enforce that policy. If not I will provide a config option that lets you disable the optimization
I hit this same bug again in a different modpack. This time with extraalchemy-0.3.8.6.1-release.jar.
Is there any update on that fix?
Not yet, I'm very busy irl. I'll see if I can patch it together in the next few days. The patch will decrease performance however, sponge forge is applying a really dumb policy here