
1.8.8 ViaRewind keepalive kick on 1.21.*
professorparabellum opened this issue ยท 14 comments
/viaversion dump
Output
https://dump.viaversion.com/2afe95b9442e2c1875f251ebec09fe4447d07c81576abc3c58e46a299ea281a9
Console Error
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.038ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-808]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.037ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-809]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.043ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-810]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.098ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-811]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.047ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-812]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.044ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-813]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.026ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-814]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.037ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-815]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.035ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-816]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.035ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-817]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.035ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-818]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_POSITION_AND_ROTATION (0.264ms) (34 bytes) positionChanged=true rotationChanged=true location=Location {[X: 11.663154256005662, Y: 100.00133597911214, Z: -0.44418565284468886], yaw: -100.346725, pitch: 10.950245} onGround=false horizontalCollision=false Z=ddbf5 b=60925541574403
[01:55:29 INFO]: [LPX] DealWiddit sent CLIENT_TICK_END (0.042ms) (19 bytes) [INSTANCE=ServerboundClientTickEndPacket[], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$3@c4061aa]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_INPUT (0.095ms) (20 bytes) [input=Input[forward=false, backward=false, left=false, right=false, jump=false, shift=false, sprint=true], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$7@2678588f]
[01:55:29 INFO]: [LPX] DealWiddit sent CLIENT_TICK_END (0.040ms) (19 bytes) [INSTANCE=ServerboundClientTickEndPacket[], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$3@c4061aa]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.033ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-819]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.033ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-820]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_POSITION_AND_ROTATION (0.115ms) (34 bytes) positionChanged=true rotationChanged=true location=Location {[X: 11.946962185482908, Y: 100.16610926093821, Z: -0.48623664307470404], yaw: -100.49673, pitch: 10.950245} onGround=false horizontalCollision=false Z=ddbf5 b=60925541574403
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.033ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-821]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_POSITION_AND_ROTATION (0.078ms) (34 bytes) positionChanged=true rotationChanged=true location=Location {[X: 12.23026885062643, Y: 100.24918707874468, Z: -0.5292101234511791], yaw: -100.64672, pitch: 10.950245} onGround=false horizontalCollision=false Z=ddbf5 b=60925541574403
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_INPUT (0.088ms) (20 bytes) [input=Input[forward=true, backward=false, left=false, right=false, jump=false, shift=false, sprint=true], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$7@2678588f]
[01:55:29 INFO]: [LPX] DealWiddit sent CLIENT_TICK_END (0.052ms) (19 bytes) [INSTANCE=ServerboundClientTickEndPacket[], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$3@c4061aa]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.070ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-822]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_POSITION_AND_ROTATION (0.129ms) (34 bytes) positionChanged=true rotationChanged=true location=Location {[X: 12.513081586895298, Y: 100.24918707874468, Z: -0.573219789369483], yaw: -101.096725, pitch: 10.950245} onGround=false horizontalCollision=false Z=ddbf5 b=60925541574403
[01:55:29 INFO]: [LPX] DealWiddit sent CLIENT_TICK_END (0.074ms) (19 bytes) [INSTANCE=ServerboundClientTickEndPacket[], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$3@c4061aa]
[01:55:29 INFO]: [LPX] DealWiddit sent PLAYER_POSITION_AND_ROTATION (0.233ms) (34 bytes) positionChanged=true rotationChanged=true location=Location {[X: 12.795392237675978, Y: 100.1707870772188, Z: -0.618433406136127], yaw: -101.696724, pitch: 10.650245} onGround=false horizontalCollision=false Z=ddbf5 b=60925541574403
[01:55:29 INFO]: [LPX] DealWiddit sent CLIENT_TICK_END (0.088ms) (19 bytes) [INSTANCE=ServerboundClientTickEndPacket[], STREAM_CODEC=net.minecraft.network.codec.StreamCodec$3@c4061aa]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.100ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-823]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.064ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-824]
[01:55:29 INFO]: [LPX] DealWiddit sent PONG (0.054ms) (23 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@26782dff, id=-825]
[01:55:29 INFO]: [LPX] DealWiddit sent KEEP_ALIVE (0.069ms) (16 bytes) [STREAM_CODEC=net.minecraft.network.codec.StreamCodec$2@6ce68eaa, id=1104644172]
[01:55:29 INFO]: Disconnecting DealWiddit for sending keepalive response (1104644172) out-of-order!
[01:55:29 INFO]: DealWiddit lost connection: Timed out.
Bug Description
this recent paper patch is very ruthless with players on legacy clients as any sort of delay or stuttering (e.g. high ping, low fps) will cause them to get kick instantaneously after they send a keepalive packet.
it also has no care for if its actually the player or the netty thread being congested, since its time between player and main thread not player and server. this is more of a paper issue but i made an issue on their repo and they told me to go here instead
Demo: https://youtu.be/Vq8uhkEsET4
Steps to Reproduce
Join a server with ViaVersion, ViaBackwards, ViaRewind on a 1.8.8 client
Turn on 3D Anagylph to make your game stutter/freeze on purpose
Wait 2 or 3 seconds
Get kicked
Expected Behavior
players on 1.8.8 are able to join and play normally, without getting kicked when their game stutters
Additional Server Info
Was not able to reproduce on 1.12.2
Checklist
- Via plugins are only running on EITHER the backend servers (e.g. Paper) OR the proxy (e.g. Velocity), not on both.
- I have included a ViaVersion dump.
- If applicable, I have included a paste (not a screenshot) of the error.
- I have tried the latest build(s) from https://ci.viaversion.com/ and the issue still persists.
- I have looked at https://www.spigotmc.org/resources/viarewind-legacy-support.52924/ and it does not offer a fix for my problem
^ Yeah the issue doesnt have anything to do with 3D anaglypth, its just whenever your game has any sort of significant stutters or lag. 3D anaglyph just simulates this
Hi, I'm having the same problem, but it happens even without messing with 3D Anagylph, sometimes I get kicked when I log in and sometimes I don't, I just couldn't find a fixed reason for it, it just happens.
In this example I was being kicked without doing anything, just after starting the server.
Can you provide your dump?
Hi, I'm having the same problem, but it happens even without messing with 3D Anagylph, sometimes I get kicked when I log in and sometimes I don't, I just couldn't find a fixed reason for it, it just happens.
In this example I was being kicked without doing anything, just after starting the server.Can you provide your dump?
https://dump.viaversion.com/dcd45f376998dd46fe9f757e9a8031c4a672c8bd1a773c370d85962cfb8d48a8
Please update all Via* plugins from https://ci.viaversion.com/.In case the issue still persists send the new dump
Hi, I'm having the same problem, but it happens even without messing with 3D Anagylph, sometimes I get kicked when I log in and sometimes I don't, I just couldn't find a fixed reason for it, it just happens.
In this example I was being kicked without doing anything, just after starting the server.Can you provide your dump?
https://dump.viaversion.com/dcd45f376998dd46fe9f757e9a8031c4a672c8bd1a773c370d85962cfb8d48a8
Can you test it with only Via* plugins?
Please update all Via* plugins from https://ci.viaversion.com/.In case the issue still persists send the new dump
I forgot to say that in that example I was being kicked when I sent a resourcepack, the moment I finished downloading and applied the resourcepack I was kicked because the game crashed. But this didn't happen all the time, it just happened out of the blue and sometimes it didn't, for example I'm trying to reproduce this now and I can't, and nothing has been changed on the server. The other time I faced this keep alive kick was when I entered the server with the sight distance at 48, I was kicked after a few seconds of entering, I also tried to reproduce this now and I'm not succeeding.
In short, it seems to me to be a very difficult problem to identify, it just happens out of the blue without much logic behind it.
I believe it's exactly what professorparabellum described, any lag on the client side, such as applying the resourcepack, sometimes results in a kick.
This isn't a ViaVersion issue, it's partially caused by this patch from Paper https://github.com/PaperMC/Paper/blob/main/paper-server/patches/features/0032-Improve-keepalive-ping-system.patch.
I think what is happening is players are sending keepalives from a different server (if you use Velocity), and the server is processing it but it didn't send it so it kicks them.
You can try Purpur's config option "useAlternateKeepAlive" https://github.com/PurpurMC/Purpur/blob/520a7e500d5b83622c2dcf1c80fdd0c046f79ed5/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerCommonPacketListenerImpl.java.patch#L8
On my server I just fix this manually by cancelling any packets at the server didn't send.
This isn't a ViaVersion issue, it's partially caused by this patch from Paper https://github.com/PaperMC/Paper/blob/main/paper-server/patches/features/0032-Improve-keepalive-ping-system.patch.
papermc referred me here. and that patch is the first thing i put in the bug description
You can try Purpur's config option "useAlternateKeepAlive" https://github.com/PurpurMC/Purpur/blob/520a7e500d5b83622c2dcf1c80fdd0c046f79ed5/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerCommonPacketListenerImpl.java.patch#L8
does not work, tried here
I am now also experiencing this even while cancelling keep-alive packets that the server did not send.