RelativityMC / raknetify

A Fabric mod / Velocity plugin / BungeeCord plugin that uses RakNet to improve multiplayer experience significantly under unreliable and rate-limited connections.
MIT License
148 stars 2 forks source link

Krypton incompatibility with *small* packets on Vanilla transport #1

Closed Ampflower closed 2 years ago

Ampflower commented 2 years ago

Steps to Reproduce

Notes

The server was with stock settings at the time of testing, which means the compression threshold of 256 was applied. There are no other configs available, for as LazyDFU (present purely to reduce boot time), Krypton and RaknetFabric has no user/admin-configurable options.

The full server.properties for reference. ```properties #Minecraft server properties #Sun Feb 20 12:57:52 CST 2022 enable-jmx-monitoring=false rcon.port=25575 gamemode=survival enable-command-block=false enable-query=false level-name=world motd=A Minecraft Server query.port=25565 pvp=true difficulty=easy network-compression-threshold=256 require-resource-pack=false max-tick-time=60000 use-native-transport=true max-players=20 online-mode=true enable-status=true allow-flight=false broadcast-rcon-to-ops=true view-distance=10 server-ip= resource-pack-prompt= allow-nether=true server-port=25565 enable-rcon=false sync-chunk-writes=true op-permission-level=4 prevent-proxy-connections=false hide-online-players=false resource-pack= entity-broadcast-range-percentage=100 simulation-distance=10 rcon.password= player-idle-timeout=0 force-gamemode=false rate-limit=0 hardcore=false white-list=false broadcast-console-to-ops=true spawn-npcs=true spawn-animals=true function-permission-level=2 text-filtering-config= spawn-monsters=true enforce-whitelist=false resource-pack-sha1= spawn-protection=16 max-world-size=29999984 ```

Logs

The full, unmodified logs with both the Vanilla and Raknet transports used. The same task was attempted with both, with only the Vanilla transport crashing. ```java [12:57:45 INFO]: Loading Minecraft 1.18.1 with Fabric Loader 0.13.2 [12:57:46 INFO]: Loading 7 mods: - com_velocitypowered_velocity-native 1.1.0-SNAPSHOT via krypton - fabricloader 0.13.2 - java 17 - krypton 0.1.6 - lazydfu 0.1.2 - minecraft 1.18.1 - raknet-fabric 0.1.0+alpha.1.4 [12:57:46 INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/home/kjp12/Downloads/raknet/libraries/net/fabricmc/sponge-mixin/0.11.2+mixin.0.8.5/sponge-mixin-0.11.2+mixin.0.8.5.jar Service=Knot/Fabric Env=SERVER [12:57:46 INFO]: Compatibility level set to JAVA_16 [12:57:46 WARN]: Error loading class: net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon (java.lang.ClassNotFoundException: net/fabricmc/fabric/impl/networking/server/ServerLoginNetworkAddon) [12:57:51 INFO]: Compression will use libdeflate (Linux x86_64), encryption will use OpenSSL 1.1.x (Linux x86_64) [12:57:51 INFO]: Krypton is now accelerating your Minecraft server's networking stack 🚀 [12:57:52 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [12:57:52 WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [12:57:52 WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] [12:57:52 WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] [12:57:52 WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] [12:57:52 WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [12:57:52 INFO]: Reloading ResourceManager: Default [12:57:53 INFO]: Loaded 7 recipes [12:57:53 INFO]: Loaded 1141 advancements [12:57:56 INFO]: Starting minecraft server version 1.18.1 [12:57:56 INFO]: Loading properties [12:57:56 INFO]: Default game type: SURVIVAL [12:57:56 INFO]: Generating keypair [12:57:56 INFO]: Starting Minecraft server on *:25565 [12:57:56 INFO]: Using epoll channel type [12:57:56 INFO]: Using epoll channel type [12:57:56 INFO]: Preparing level "world" [12:57:56 INFO]: Preparing start region for dimension minecraft:overworld [12:57:57 INFO]: [STDOUT]: Krypton detected, applying compatibility [12:57:58 INFO]: Preparing spawn area: 0% [12:57:58 INFO]: UUID of player _KJP12 is 82fe072f-b2d9-4005-b8a6-9284195a576e [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:01 INFO]: Preparing spawn area: 0% [12:58:02 INFO]: Preparing spawn area: 4% [12:58:02 INFO]: Preparing spawn area: 10% [12:58:03 INFO]: Preparing spawn area: 17% [12:58:03 INFO]: Preparing spawn area: 33% [12:58:04 INFO]: Preparing spawn area: 42% [12:58:04 INFO]: Preparing spawn area: 55% [12:58:05 INFO]: Preparing spawn area: 69% [12:58:05 INFO]: Preparing spawn area: 79% [12:58:06 INFO]: Preparing spawn area: 79% [12:58:06 INFO]: Preparing spawn area: 83% [12:58:07 INFO]: Preparing spawn area: 85% [12:58:07 INFO]: Preparing spawn area: 88% [12:58:08 INFO]: Preparing spawn area: 91% [12:58:08 INFO]: Preparing spawn area: 96% [12:58:09 INFO]: Preparing spawn area: 98% [12:58:09 INFO]: Time elapsed: 12561 ms [12:58:09 INFO]: Done (12.780s)! For help, type "help" [12:58:09 INFO]: _KJP12[/[0:0:0:0:0:0:0:1%0]:45814] logged in with entity id 200 at (-32.127683096115916, 71.0, -73.60408038656982) [12:58:09 INFO]: _KJP12 joined the game [12:58:12 INFO]: [STDERR]: io.netty.handler.codec.DecoderException: Badly compressed packet - size of 259 is below server threshold of 512 [12:58:12 INFO]: [STDERR]: io.netty.handler.codec.DecoderException: Badly compressed packet - size of 120 is below server threshold of 512 [12:58:12 INFO]: _KJP12 lost connection: Internal Exception: io.netty.handler.codec.DecoderException: Badly compressed packet - size of 259 is below server threshold of 512 [12:58:12 INFO]: _KJP12 left the game [13:01:06 INFO]: [STDOUT]: Krypton detected, applying compatibility [13:01:06 INFO]: UUID of player _KJP12 is 82fe072f-b2d9-4005-b8a6-9284195a576e [13:01:06 INFO]: [STDOUT]: _KJP12 logged in via RakNet, mtu 1398 [13:01:06 INFO]: _KJP12[/[0:0:0:0:0:0:0:1%0]:44051] logged in with entity id 214 at (-32.127683096115916, 71.0, -73.60408038656982) [13:01:06 INFO]: _KJP12 joined the game [13:01:06 INFO]: [STDOUT]: [MultiChannellingDataCodec] Started multichannel ```

Minimal reproducible world

The world contains a chest with both pickaxes in the required order to reproduce the same error.

ishland commented 2 years ago

Fixed in 1e46f5c