Extra Alchemy

Extra Alchemy

13M Downloads

Magnetism causing player disconnect on SpongeForge

bluelightning32 opened this issue ยท 4 comments

commented

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]
commented

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

commented

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?

commented

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

commented

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