PaperMC / Waterfall

BungeeCord fork that aims to improve performance and stability.
https://papermc.io
MIT License
743 stars 298 forks source link

[BUG] Fallback Server not working. #829

Closed M2HF closed 11 months ago

M2HF commented 11 months ago

The fallback server is not working. I'm on the latest version. When closing a server, I'm not being redirected to the lobby, I simply get disconnected. The console throws this error:

[/iphere|Augustus15] <-> DownstreamBridge <-> [world] - could not decode packet! io.netty.handler.codec.DecoderException: java.lang.UnsupportedOperationException: Packet must implement read method

electronicboy commented 11 months ago

run waterfall with -Dwaterfall.packet-decode-logging=true

M2HF commented 11 months ago

In my start script? Only the Proxy server?

electronicboy commented 11 months ago

Yes

M2HF commented 11 months ago

Thanks for your quick response btw, fastest I've ever seen. I did as you said, and I still get disconnected though.

electronicboy commented 11 months ago

It's a debug flag, the entire intent is that it actually hopefully logs the full info of what happened and then we can actually see what broke.

M2HF commented 11 months ago

Oh, sorry. Been up for way too long. Here's the error:

[/62.226.73.96:54133|Augustus15] <-> DownstreamBridge <-> [world] - A decoder exception has been thrown: io.netty.handler.codec.DecoderException: java.lang.UnsupportedOperationException: Packet must implement read method at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.UnsupportedOperationException: Packet must implement read method at net.md_5.bungee.protocol.DefinedPacket.read(DefinedPacket.java:440) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at net.md_5.bungee.protocol.DefinedPacket.read(DefinedPacket.java:450) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at net.md_5.bungee.protocol.MinecraftDecoder.decode(MinecraftDecoder.java:62) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at net.md_5.bungee.protocol.MinecraftDecoder.decode(MinecraftDecoder.java:13) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[waterfall-1.20-549.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:9b4b8cb:549] ... 24 more [21:11:52 INFO]: [Augustus15] disconnected with: The server you were previously on went down, you have been connected to a fallback server [21:11:52 INFO]: [/62.226.73.96:54133|Augustus15] -> UpstreamBridge has disconnected

electronicboy commented 11 months ago

Well, that is less insightful, forgot java didn't log that itself; only guess would be to reproduce without plugins at this point

electronicboy commented 11 months ago

Only because I'm curious as I've seen a few people having this one, this build should dump some info (with the debug flag) Waterfall.jar.zip

M2HF commented 11 months ago

Now I got this error:

[21:51:57 WARN]: [/IP:51606|Augustus15] <-> DownstreamBridge <-> [ww2_normandy] - A decoder exception has been thrown: net.md_5.bungee.protocol.FastDecoderException: Error decoding packet class Kick with contents: +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| 1b 1f 7b 22 74 65 78 74 22 3a 22 53 65 72 76 65 |..{"text":"Serve| |00000010| 72 20 69 73 20 72 65 73 74 61 72 74 69 6e 67 22 |r is restarting"| |00000020| 7d |} | +--------+-------------------------------------------------+----------------+ Caused by: java.lang.UnsupportedOperationException: Packet must implement read method at net.md_5.bungee.protocol.DefinedPacket.read(DefinedPacket.java:440) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at net.md_5.bungee.protocol.DefinedPacket.read(DefinedPacket.java:450) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at net.md_5.bungee.protocol.MinecraftDecoder.decode(MinecraftDecoder.java:62) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at net.md_5.bungee.protocol.MinecraftDecoder.decode(MinecraftDecoder.java:13) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.20-R0.2-SNAPSHOT:c89ee9e:unknown] at java.lang.Thread.run(Thread.java:833) [?:?] [21:51:57 INFO]: [Augustus15] disconnected with: The server you were previously on went down, you have been connected to a fallback server [21:51:57 INFO]: [/62.226.73.96:51606|Augustus15] -> UpstreamBridge has disconnected

M2HF commented 11 months ago

I just tried the newest build, now the "fallback_server: lobby" option was removed from my config.yml and I'm still not being redirected to my lobby.

electronicboy commented 11 months ago

fallback_server has literally not been a thing inside of waterfall (or bungee) for years, it should use the priorities list to determine where to send you in the correct conditions

M2HF commented 11 months ago

Oh? Strange. Lobby is set as priority though. Still no redirecting.

electronicboy commented 11 months ago

Okay, I misremembered, this is intended behavior, if you want a kick to send the player elsewhere, you'd need a plugin