Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KnownPacksPacket serialization is stricter than vanilla (and serverbound one breaks for fabric if client has more than 64 entries). #1474

Open
Patbox opened this issue Dec 14, 2024 · 1 comment
Labels
type: bug Something isn't working

Comments

@Patbox
Copy link

Patbox commented Dec 14, 2024

Expected Behavior

KnownPacksPacket should not have an enforced limit, as vanilla protocol allows server to send as many known packs as it can.
Aka if server sends more than 64 packs it should just work.

(additionally, if fabric client should be amount equal or lower to one sent originally by server).

Actual Behavior

If server sends over 64 known packs, neither modded or vanilla clients will be able to join.

If modded client sends over 64 (while still below or equal to what server sent), modded client will disconnect.

It can be worked around by setting velocity.max-known-packs to amount of known packs sent by server

Steps to Reproduce

  1. Create a fabric server, with many server side/vanilla client compatible mods (or not if testing modded-client compat). Requires over 64 mods that include a datapack (/data/) inside.
  2. Try to connect to that server with vanilla client. You will be able to join if it's not behind velocity, but will get disconnected with an error if velocity is present.

Plugin List

Nothing on velocity.

139 mods on Fabric 1.21.4 server (all work purely server side):
- anvildrop 1.0.0
- ascension 1.0.0
- banhammer 0.12.0+1.21.2
|-- com_mysql_mysql-connector-j 9.1.0
|-- org_postgresql_postgresql 42.7.4
-- org_xerial_sqlite-jdbc 3.46.1.3
- beaconbreakers 1.0.0
- bedwars 1.0.0
-- kdotjpg_open-simplex 2.0
- blocklobbers 1.0.0
- buildbattle 1.0.6
- clutchpractice 1.0.0
- codebreaker 1.0.0
- colorswap 1.0.0
- compound 1.0.0
- consolebox 1.0.0
-- io_github_kawamuray_wasmtime_wasmtime-java 0.18.0
- cornmaze 1.0.0
- creeperfall 1.3.11
- deacoudre 1.4.2
- deathswap 1.0.0
- destroythemonument 1.1.0
- diceyheights 1.0.0
- disguiselib 1.3.6
- downpour 1.0.0
- electricfloor 1.0.0
- elytron 1.0.0
- fabric-api 0.112.0+1.21.4
|-- fabric-api-base 0.4.53+453d4f9104
|-- fabric-api-lookup-api-v1 1.6.85+b1caf1e904
|-- fabric-biome-api-v1 15.0.5+b1caf1e904
|-- fabric-block-api-v1 1.0.31+7feeb73304
|-- fabric-block-view-api-v2 1.0.19+7feeb73304
|-- fabric-blockrenderlayer-v1 2.0.7+7feeb73304
|-- fabric-client-tags-api-v1 1.1.28+20ea1e2304
|-- fabric-command-api-v1 1.2.61+f71b366f04
|-- fabric-command-api-v2 2.2.40+e496eb1504
|-- fabric-commands-v0 0.2.78+df3654b304
|-- fabric-content-registries-v0 9.1.13+7feeb73304
|-- fabric-convention-tags-v1 2.1.7+7f945d5b04
|-- fabric-convention-tags-v2 2.9.7+b1caf1e904
|-- fabric-crash-report-info-v1 0.3.6+7feeb73304
|-- fabric-data-attachment-api-v1 1.4.4+9aea556b04
|-- fabric-data-generation-api-v1 22.2.0+20ea1e2304
|-- fabric-dimensions-v1 4.0.10+7feeb73304
|-- fabric-entity-events-v1 2.0.11+60fccc7604
|-- fabric-events-interaction-v0 4.0.1+a4eebcf004
|-- fabric-game-rule-api-v1 1.0.62+7feeb73304
|-- fabric-item-api-v1 11.1.13+203e6b2304
|-- fabric-item-group-api-v1 4.1.22+7feeb73304
|-- fabric-key-binding-api-v1 1.0.56+7feeb73304
|-- fabric-keybindings-v0 0.2.54+df3654b304
|-- fabric-lifecycle-events-v1 2.5.3+bf2a60eb04
|-- fabric-loot-api-v2 3.0.32+3f89f5a504
|-- fabric-loot-api-v3 1.0.20+203e6b2304
|-- fabric-message-api-v1 6.0.24+7feeb73304
|-- fabric-model-loading-api-v1 4.1.0+7b6b225304
|-- fabric-networking-api-v1 4.3.8+cc0fa2fe04
|-- fabric-object-builder-api-v1 18.0.6+e604fe7f04
|-- fabric-particles-v1 4.0.13+7feeb73304
|-- fabric-recipe-api-v1 8.0.4+b1caf1e904
|-- fabric-registry-sync-v0 6.1.0+9ba00ebb04
|-- fabric-renderer-api-v1 5.0.1+84404cdd04
|-- fabric-renderer-indigo 2.0.1+84404cdd04
|-- fabric-rendering-data-attachment-v1 0.3.57+73761d2e04
|-- fabric-rendering-fluids-v1 3.1.18+7feeb73304
|-- fabric-rendering-v1 10.1.1+b874120c04
|-- fabric-resource-conditions-api-v1 5.0.13+203e6b2304
|-- fabric-resource-loader-v0 3.0.11+b1caf1e904
|-- fabric-screen-api-v1 2.0.37+7feeb73304
|-- fabric-screen-handler-api-v1 1.3.107+7feeb73304
|-- fabric-sound-api-v1 1.0.32+7feeb73304
|-- fabric-tag-api-v1 1.0.1+20ea1e2304
|-- fabric-transfer-api-v1 5.4.7+b1caf1e904
-- fabric-transitive-access-wideners-v1 6.3.2+56e78b9b04
- fabricloader 0.16.9
-- mixinextras 0.4.1
- fabricproxy-lite 2.9.0
-- com_moandjiezana_toml_toml4j 0.7.2
- fantasy 0.6.6+1.21.4
- farmy_feud ${version}
-- kdotjpg_open-simplex 2.0
- fortress 1.0.0
- game_parties 1.0.3
-- more_codecs 0.3.5+1.21.2
- gomoku 1.0
- infiniteparkour 1.0.0
- irritaterrun 1.0.0
- itemhunt 1.0
- java 21
- koth 1.0.0
- lastcard 1.0.0
- lavasurvival 1.1.0
- leukocyte 0.3.10+1.21.3
-- stimuli 0.5.0+1.21.3
- loopdeloop 1.2.2
- microbattle 1.0.0
- minecraft 1.21.4
- minefield 1.0.0
- nucleoid_creator_tools 0.2.2
|-- fabric-permissions-api-v0 0.3.3
|-- map_templates 0.2.1+1.21.3
-- server_translations_api 2.4.0+1.21.2-rc1
-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
- nucleoid_extras 1.3.2
- paintball 1.0.0
- parkourrun 1.0.0
- plasmid 0.6.3-build.4+1.21.4
|-- fabric-permissions-api-v0 0.3.3
|-- map-canvas-api 0.5.0+1.21.3
|-- map_templates 0.2.1+1.21.3
|-- more_codecs 0.3.5+1.21.2
|-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- placeholder-api 2.5.1+1.21.3
|-- player-data-api 0.7.0+1.21.3
|-- predicate-api 0.6.0+1.21.2
|-- server_translations_api 2.4.0+1.21.2-rc1
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- sgui 1.8.1+1.21.4
|-- sidebar-api 0.5.1+1.21.1
|-- stimuli 0.5.0+1.21.3
-- substrate 0.2.2+1.20.1
- player_roles 1.6.13
-- player_roles_api 1.6.13
- polymer-bundled 0.11.2+1.21.4
|-- polymer-autohost 0.11.2+1.21.4
| -- io_netty_netty-codec-http 4.1.82
|-- polymer-blocks 0.11.2+1.21.4
|-- polymer-common 0.11.2+1.21.4
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- polymer-core 0.11.2+1.21.4
| |-- polymer-networking 0.11.2+1.21.4
| | -- polymer-common 0.11.2+1.21.4
| | -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
| -- polymer-registry-sync-manipulator 0.11.2+1.21.4
|-- polymer-resource-pack 0.11.2+1.21.4
| -- polymer-common 0.11.2+1.21.4
| -- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
|-- polymer-resource-pack-extras 0.11.2+1.21.4
-- polymer-virtual-entity 0.11.2+1.21.4
-- polymer-common 0.11.2+1.21.4
-- packet_tweaker 0.6.0-pre.1+1.21.2-pre3
- quakecraft 1.7.7+1.21
- rocketspleef 0.1.2
-- kdotjpg_open-simplex 2.0
- sabotage 1.0.0
- sculkprison 1.0.0
- shardthief 1.0.0
- siege 1.0.1
- skywars 1.0.0-build.89
- snake 1.0.0
- snowballfight 1.0.0
- spleef 1.0.0
- styledchat 2.7.1+1.21.3
|-- fabric-permissions-api-v0 0.3.3
|-- placeholder-api 2.5.1+1.21.3
|-- player-data-api 0.7.0+1.21.3
-- predicate-api 0.6.0+1.21.2
- styledplayerlist 3.6.0+1.21.2
-- predicate-api 0.6.0+1.21.2
- survival-games 0.1.1
|-- dev_gegy_noise-composer 0.1.0
-- kdotjpg_open-simplex 2.0
- territorybattle 1.0.0
- the_towers 2.2.0
- totemhunt 1.0.0
- uhc 3.0.0
- volleyball 1.0.0
- wavedefense ${version}
-- kdotjpg_open-simplex 2.0
- werewolf 1.0.0
- withersweeper 1.0.0

Velocity Version

Velocity 3.4.0-SNAPSHOT (git-965db127-b454)

Additional Information

No response

@Patbox Patbox added the type: bug Something isn't working label Dec 14, 2024
@electronicboy
Copy link
Member

ref; The Serverbound packet has a limit of 64, the Clientbound has no limit;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants