ProtocolLib

3M Downloads

LinkageError not caused by multiple instances

dusekdan opened this issue ยท 9 comments

commented

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?

commented

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.

commented

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

commented

Couldn't reproduce this with the latest ProtocolLib build. Give it a try and let me know: https://ci.dmulloy2.net/job/ProtocolLib/453/

commented

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?

commented

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

https://pastebin.com/nRvznV8h

commented

Nothing change ! #840 for me .. https://pastebin.com/qktR1XH8

commented

@WareZ57 Can you too attach the offending plugin's jar? Maybe dmuloy2 would like to look into it too then.

commented

Jar looks fine. My guess is that @WareZ57's error has to do with ProtocolLib not really supporting Forge, which is a separate issue