zabi94 / ExtraAlchemy

Extra Alchemy: a Minecraft mod that expands on potions
Other
38 stars 16 forks source link

Magnetism causing player disconnect on SpongeForge #56

Closed bluelightning32 closed 5 years ago

bluelightning32 commented 5 years ago

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]
zabi94 commented 5 years ago

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

bluelightning32 commented 5 years ago

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?

zabi94 commented 5 years ago

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

bluelightning32 commented 5 years ago

Thanks for the fix! I'll try it out when the modpacks pick it up.