astei / krypton

A Fabric mod that optimizes the Minecraft networking stack and entity tracker.
GNU Lesser General Public License v3.0
367 stars 34 forks source link

Data is bad and VarInt too big #91

Closed bugescape closed 1 year ago

bugescape commented 2 years ago

Description We have a server hosting on modpack "Medieval MC Fabric" and this mod is included in the modpack, after recent update there are a lot of reports about player been occasionally disconnected by the server and error log shows "Data is bad" and "VarInt too big" and we believe this mod could be the cause of such issue, see screenshot below

https://cdn.discordapp.com/attachments/1028642533795971173/1028642699466776656/unknown.png

https://cdn.discordapp.com/attachments/1028642533795971173/1028642720136314930/unknown.png

Solution Removing the mod seems fixed it but will keep update if any issues

Other mods:

Its a big modpack so for other mods please see below link:

https://www.curseforge.com/minecraft/modpacks/medieval-mc-fabric/files/4016392

astei commented 2 years ago

There are 505 mods in this modpack. How do you expect me to narrow down what combination of those mods is causing the incompatibility?

Something tells me you need to take the difference of mods that were updated and work from there, not have me do that.

magneticflux- commented 2 years ago

I just encountered this with a slightly smaller modpack: https://mclo.gs/ZN3Gyfj It might be a conflict with Very Many Players or Raknetify?

Sunconure11 commented 1 year ago

Sorry to necro this, but it may indeed be a compat issue.

https://github.com/TonimatasDEV/PacketFixer/issues/21

Sunconure11 commented 1 year ago

Yes, I realize I'm also using a stupidly large pack, albeit of my own making, but the error is pretty much the same.

astei commented 1 year ago

Krypton does, in fact, hardcode support for Vanilla data sizes. So if you're trying to use a mod that extends the amount of data a packet can encode, then you're not going to be in luck. (In fact, Velocity won't support extended packet sizes either - it will try to encode packet sizes as a 21-bit VarInt, just as Vanilla expects.)

It is possible to modify Krypton to support larger packet sizes than those supported by Vanilla, but that is a separate issue.

astei commented 1 year ago

I added the system property krypton.permit-oversized-packets for this. Just add -Dkrypton.permit-oversized-packets=true as a JVM option, and this should fix the issue on the Krypton side.

This setting isn't enabled by default and is harder to get to because it will result in laughably easy denial of service attacks, but if you're willing to take the risk, the option is there.