ViaRewind

ViaRewind

7.4k Downloads

1.8.8 ViaRewind keepalive kick on 1.21.*

professorparabellum opened this issue ยท 14 comments

commented

/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

commented

Platform: 1.21.7--16698--a192a03%20%28MC%3A%201.21.7%29
ViaVersion (5.4.2): Even with master
ViaBackwards(5.4.2): Even with master

commented

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.

Image

In this example I was being kicked without doing anything, just after starting the server.

commented

^ 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

commented

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.
Image

In this example I was being kicked without doing anything, just after starting the server.

Can you provide your dump?

commented

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.
Image
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

commented

Platform: 1.21.7--32--e792779%20%28MC%3A%201.21.7%29
ViaVersion (5.4.2): 3 commits behind master
ViaRewind(4.0.9): Even with master
ViaBackwards(5.4.2): Even with master

Please update all Via* plugins from https://ci.viaversion.com/.In case the issue still persists send the new dump

commented

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.
Image
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?

commented

Platform: 1.21.7--32--e792779%20%28MC%3A%201.21.7%29
ViaVersion (5.4.2): 3 commits behind master
ViaRewind(4.0.9): Even with master
ViaBackwards(5.4.2): Even with master

Please update all Via* plugins from https://ci.viaversion.com/.In case the issue still persists send the new dump

commented

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.

commented

I believe it's exactly what professorparabellum described, any lag on the client side, such as applying the resourcepack, sometimes results in a kick.

commented

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.

commented

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

commented

I am now also experiencing this even while cancelling keep-alive packets that the server did not send.

commented

Fix please