Server list ping event
LadyCailinBot opened this issue ยท 4 comments
CMDHELPER-3139 - Reported by mesolost
version used CMDHELPER-3131 (commandhelper-3.3.2-SNAPSHOT)
Ok here's my error report from my log. Fist issue is actually new. I havent noticed that ionetty thing ever before today.(only the top most one. other 2 are known) The server list ping event not being found however is an issue i've had on every startup from both KCauldron and Thermos server jars. The server shows on the list fine, version shows up, according to pieter12345 (woesh correct me on your name here if you see this) the list of mods are being reported but no player names are listed. Player count shows up but no names. OK lets see if i can paste this right. (preview displays properly so I think i got it)
[15:29:08] [Netty IO #1/WARN] [JavaPatcher/]: Didn't find any method calls to replace in net.minecraft.util.MessageSerializer.encode(io.netty.channel.ChannelHandlerContext,java.lang.Object,io.netty.buffer.ByteBuf). Class: null, method: func_148840_b, index: -1
[15:29:08] [Netty IO #1/WARN] [JavaPatcher/]:
java.lang.RuntimeException: Method not found: scheduleOutboundPacket() was not found in net.minecraft.util.MessageSerializer
at me.nallar.javapatcher.mappings.MethodDescription.inClass(MethodDescription.java:173) ~[MethodDescription.class:?]
at me.nallar.javapatcher.patcher.Patcher$PatchMethodDescriptor.run(Patcher.java:390) [Patcher$PatchMethodDescriptor.class:?]
at me.nallar.javapatcher.patcher.Patcher$ClassPatchDescriptor.runPatches(Patcher.java:522) [Patcher$ClassPatchDescriptor.class:?]
at me.nallar.javapatcher.patcher.Patcher.patch(Patcher.java:212) [Patcher.class:?]
at me.nallar.modpatcher.ModPatcher.postSrgTransformationHook(ModPatcher.java:82) [ModPatcher.class:?]
at me.nallar.modpatcher.ModPatcher.transform(ModPatcher.java:121) [ModPatcher.class:?]
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) [launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [?:1.8.0_92]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [?:1.8.0_92]
at net.minecraft.network.NetworkSystem$1.initChannel(NetworkSystem.java:94) [nd.class:?]
at io.netty.channel.ChannelInitializer.channelRegistered(ChannelInitializer.java:70) [ChannelInitializer.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRegistered(DefaultChannelHandlerContext.java:162) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRegistered(DefaultChannelHandlerContext.java:148) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.ChannelInitializer.channelRegistered(ChannelInitializer.java:73) [ChannelInitializer.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRegistered(DefaultChannelHandlerContext.java:162) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRegistered(DefaultChannelHandlerContext.java:148) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRegistered(DefaultChannelPipeline.java:730) [DefaultChannelPipeline.class:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:441) [AbstractChannel$AbstractUnsafe.class:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$100(AbstractChannel.java:373) [AbstractChannel$AbstractUnsafe.class:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:417) [AbstractChannel$AbstractUnsafe$1.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354) [SingleThreadEventExecutor.class:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:348) [NioEventLoop.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]
[15:29:09] [Netty IO #1/ERROR] [Minecraft/]: Could not pass event ServerListPingEvent to CommandHelper v3.3.2-SNAPSHOT.3131-
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:338) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:1.7.10-1614.58]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [SimplePluginManager.class:1.7.10-1614.58]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [SimplePluginManager.class:1.7.10-1614.58]
at net.minecraft.server.network.NetHandlerStatusServer.func_147312_a(NetHandlerStatusServer.java:87) [nq.class:?]
at net.minecraft.network.status.client.C00PacketServerQuery.func_148833_a(SourceFile:25) [kj.class:?]
at net.minecraft.network.status.client.C00PacketServerQuery.func_148833_a(SourceFile:8) [kj.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:137) [ej.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:353) [ej.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [SimpleChannelInboundHandler.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [ByteToMessageDecoder.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [ByteToMessageDecoder.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at com.comphenix.protocol.compat.netty.independent.NettyChannelInjector$4.channelRead(NettyChannelInjector.java:278) [ProtocolLib.jar:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [ByteToMessageDecoder.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at net.minecraft.network.PingResponseHandler.channelRead(SourceFile:94) [mz.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [ReadTimeoutHandler.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [AbstractNioByteChannel$NioByteUnsafe.class:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [NioEventLoop.class:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [NioEventLoop.class:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [NioEventLoop.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]
Caused by: java.lang.UnsupportedOperationException
at org.bukkit.event.server.ServerListPingEvent.iterator(ServerListPingEvent.java:140) ~[ServerListPingEvent.class:1.7.10-1614.58]
at com.laytonsmith.abstraction.bukkit.events.BukkitMiscEvents$BukkitMCServerPingEvent.getPlayers(BukkitMiscEvents.java:135) ~[?:?]
at com.laytonsmith.core.events.drivers.ServerEvents$server_ping.evaluate(ServerEvents.java:98) ~[?:?]
at com.laytonsmith.core.events.EventUtils.FireListeners(EventUtils.java:252) ~[?:?]
at com.laytonsmith.core.events.EventUtils.TriggerListener(EventUtils.java:240) ~[?:?]
at com.laytonsmith.abstraction.bukkit.events.drivers.BukkitServerListener.onPing(BukkitServerListener.java:34) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
... 36 more
Comment by PseudoKnight
Well, what I can tell you is that none of those seem to be related to CommandHelper. The last one is just a Bukkit call, and apparently the iterator is unimplemented?
Comment by Pieter12345
The stacktrace tells that the iterator() method in ServerListPingEvent.java has caused an UnsupportedOperationException. From the Bukkit javadocs for the iterator() method: "UnsupportedOperationException - if the caller of this event does not support removing players".
The Bukkit sourcecode also shows this here: https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/event/server/ServerListPingEvent.java#L140
In CraftBukkit, a net.minecraft.server.PacketStatusListener.ServerListPingEvent which extends from org.bukkit.event.server.ServerListPingEvent and overrides the "iterator()" method is passed to the listeners. On your modded server jars, however, org.bukkit.event.server.ServerListPingEvent is used directly and this does not support removal of players from the server ping list. This means that the bug is not caused by CommandHelper nor by CraftBukkit, but by your custom server software.
We should consider this issue closed.
Comment by PseudoKnight
Weird timing. I had just committed a fix for this yesterday. I just haven't pushed it. I decided to catch this exception anyway, since it affects some server's ability to bind that event at all. I was hoping it was just a matter of time before those servers added an implementation, but who knows when or if that'll ever happen.