LinkageError not caused by multiple instances
dusekdan opened this issue ยท 9 comments
Quite recently, I have started seeing protocol lib exceptions logged multiple times in a single second on one of my servers. Exception details below, as well as /protocol dump
results.
Dump: https://pastebin.com/rKEuG2zR
Exception details
[ProtocolLib] Encountered a LinkageError. Make sure you're not using this jar for multiple server instances!
[ProtocolLib] If you're getting this error for other reasons, please report it!
java.lang.NoClassDefFoundError: Could not initialize class com.comphenix.protocol.events.PacketContainer
at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketSending(ProtocolInjector.java:297)
at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:364)
at com.comphenix.protocol.injector.netty.ChannelInjector.access$800(ChannelInjector.java:63)
at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled(ChannelInjector.java:329)
at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled(ChannelInjector.java:299)
at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:127)
at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:95)
at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:194)
at net.minecraft.server.v1_12_R1.NetworkManager.sendPacket(NetworkManager.java:143)
at net.minecraft.server.v1_12_R1.PlayerConnection.sendPacket(PlayerConnection.java:1140)
at net.minecraft.server.v1_12_R1.EntityTrackerEntry.updatePlayer(EntityTrackerEntry.java:346)
at net.minecraft.server.v1_12_R1.EntityTrackerEntry.scanPlayers(EntityTrackerEntry.java:449)
at net.minecraft.server.v1_12_R1.EntityTracker.addEntity(EntityTracker.java:119)
at net.minecraft.server.v1_12_R1.EntityTracker.track(EntityTracker.java:82)
at net.minecraft.server.v1_12_R1.WorldManager.a(WorldManager.java:21)
at net.minecraft.server.v1_12_R1.World.b(World.java:1093)
at net.minecraft.server.v1_12_R1.WorldServer.b(WorldServer.java:1163)
at net.minecraft.server.v1_12_R1.World.addEntity(World.java:1086)
at net.minecraft.server.v1_12_R1.WorldServer.addEntity(WorldServer.java:1115)
at net.minecraft.server.v1_12_R1.SpawnerCreature.a(SpawnerCreature.java:188)
at net.minecraft.server.v1_12_R1.WorldServer.doTick(WorldServer.java:290)
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:801)
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406)
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
at java.base/java.lang.Thread.run(Thread.java:834)
I have not changed anything on any of my servers in a while. It started happening suddenly about 4 days back, but it does happen now everytime there is a player on the server. I can't really detect any issues it causes, but since there is many exceptions per second logged into server logs, they will quickly grow in size to unmanageable dimensions.
What more info can I provide you with?
Server architecture: BungeeProxy + 3 game spigot servers (lobby, skyblock, survival). Protocol lib jar is copied on every single of the game servers - physically, it is a different jar file. Or do I understand it wrong?
In general, this is caused by some plugin including part of ProtocolLib. Try the steps here: https://github.com/dmulloy2/ProtocolLib/wiki/Common-Errors#illegalaccesserrornosuchmethoderror-for-protocollogger
On a related note, I'd love to tackle this so if you could send me the offending jar once you do find it, I would appreciate it.
Thanks for the reply! Judging by the dump I posted above, there is only one plugin using the ProtocolLib - HolographicDisplays. And indeed, disabling the plugin stopped the exceptions.
Offending jar (packed into .zip, because github issues do not support raw jars): HolographicDisplays.zip
Couldn't reproduce this with the latest ProtocolLib build. Give it a try and let me know: https://ci.dmulloy2.net/job/ProtocolLib/453/
I could not reproduce it with the newest build either, so I apologize, it was a false alarm.
@WareZ57 What's your architecture? Do you have multiple server connected together, or just a single one?
Only plugin (judging from the dump you provided) that uses protocollib is AuthMe. Can you try disabling AuthMe and verifying that it does not spam the exception without it?
Do you have latest AuthMe and have you tried the PL build that @dmulloy2 mentioned above?
Authme generates Protocollib errors well.
BUT ! Its no longer spam endlessly but displays errors with each interaction on the server
I use Mohist 1.12.2 (latest version)
Protocollib latest version already installed
Added AuthmeReloaded latest build
Nothing change ! #840 for me .. https://pastebin.com/qktR1XH8
@WareZ57 Can you too attach the offending plugin's jar? Maybe dmuloy2 would like to look into it too then.
Jar looks fine. My guess is that @WareZ57's error has to do with ProtocolLib not really supporting Forge, which is a separate issue