PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
10.06k stars 2.34k forks source link

Logging out mounted on a Horse crashes the server when logging back in #4790

Closed luizsusin closed 2 years ago

luizsusin commented 4 years ago

Link/paste of stack trace

https://paste.ubuntu.com/p/bd9PgPHTgx/ (Yes, I'm very aware that I shouldn't paste "DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH" crashs here, but I'm pretty sure this one is valid.)

Plugin list:

AdvancedNMotd, AuthMe, AutoMessage, BeastWithdraw, BlockLocker, BlockVersion, ChestSort, CommandHook, CreativeCrates, CustomHeads, EcoEnchants, EntityDetection, EntityTrackerFixer, Essentials, EssentialsSpawn, GoldenCrates, GriefPrevention, GriefPreventionFlags, GSit (disabled), HolographicDisplays, ImageOnMap, IronElevators, LuckPerms, MarriageMaster, MaxBans, mcMMO, Minepacks, Multiverse-Core, MyPet, NexEngine, NoNetherRoof, PacketLimiter, PlaceholderAPI, PlugMan, PlusProtection, PowerVIP, ProtocolLib, ProtocolSupport, PvPManager, SimplePortals, SkinsRestorer, spark, TAB, Vault, VentureChat, Vote, Votifier, Wild, WorldEdit, WorldGuard.

Edit: Disabled GSit for testing, as mentioned down below.

Actions to reproduce (if known):

̶W̶h̶e̶n̶e̶v̶e̶r̶ ̶a̶ ̶p̶l̶a̶y̶e̶r̶ ̶w̶i̶t̶h̶ ̶a̶ ̶(̶s̶o̶m̶e̶h̶o̶w̶)̶ ̶c̶o̶r̶r̶u̶p̶t̶e̶d̶ ̶p̶l̶a̶y̶e̶r̶d̶a̶t̶a̶ ̶j̶o̶i̶n̶s̶ ̶t̶h̶e̶ ̶s̶e̶r̶v̶e̶r̶ ̶(̶y̶o̶u̶ ̶c̶a̶n̶ ̶s̶e̶e̶ ̶i̶n̶ ̶t̶h̶e̶ ̶f̶i̶r̶s̶t̶ ̶t̶w̶o̶ ̶l̶i̶n̶e̶s̶ ̶o̶f̶ ̶t̶h̶e̶ ̶s̶t̶a̶c̶k̶ ̶t̶r̶a̶c̶e̶ ̶t̶h̶a̶t̶ ̶t̶h̶e̶ ̶p̶l̶a̶y̶e̶r̶ ̶A̶m̶a̶r̶e̶l̶i̶n̶h̶a̶7̶7̶ ̶m̶a̶d̶e̶ ̶t̶h̶e̶ ̶s̶e̶r̶v̶e̶r̶ ̶f̶r̶e̶e̶z̶e̶)̶.̶ ̶E̶v̶e̶r̶y̶t̶i̶m̶e̶ ̶s̶h̶e̶ ̶l̶o̶g̶s̶ ̶i̶n̶,̶ ̶t̶h̶e̶ ̶s̶e̶r̶v̶e̶r̶ ̶f̶r̶e̶e̶z̶e̶s̶ ̶a̶n̶d̶ ̶t̶h̶e̶ ̶s̶a̶m̶e̶ ̶s̶t̶a̶c̶k̶ ̶t̶r̶a̶c̶e̶ ̶t̶a̶k̶e̶s̶ ̶p̶l̶a̶c̶e̶.̶ ̶I̶f̶ ̶I̶ ̶d̶e̶l̶e̶t̶e̶ ̶h̶e̶r̶ ̶p̶l̶a̶y̶e̶r̶d̶a̶t̶a̶ ̶(̶1̶3̶2̶e̶b̶d̶3̶d̶-̶4̶1̶a̶e̶-̶3̶9̶1̶3̶-̶8̶1̶3̶0̶-̶5̶2̶0̶b̶e̶8̶0̶9̶7̶a̶8̶2̶)̶,̶ ̶s̶h̶e̶ ̶c̶a̶n̶ ̶j̶o̶i̶n̶ ̶n̶o̶r̶m̶a̶l̶l̶y̶.̶ ̶I̶t̶'̶s̶ ̶i̶m̶p̶o̶r̶t̶a̶n̶t̶ ̶t̶o̶ ̶n̶o̶t̶i̶c̶e̶ ̶t̶h̶a̶t̶ ̶e̶v̶e̶n̶ ̶w̶h̶e̶n̶ ̶I̶ ̶h̶a̶d̶ ̶m̶u̶c̶h̶ ̶l̶e̶s̶s̶ ̶p̶l̶u̶g̶i̶n̶s̶ ̶t̶h̶a̶n̶ ̶t̶h̶a̶t̶,̶ ̶t̶h̶i̶s̶ ̶p̶r̶o̶b̶l̶e̶m̶ ̶h̶a̶s̶ ̶a̶l̶s̶o̶ ̶h̶a̶p̶p̶e̶n̶e̶d̶ ̶t̶w̶i̶c̶e̶.̶ ̶F̶r̶o̶m̶ ̶t̶h̶e̶ ̶p̶a̶s̶t̶ ̶t̶h̶r̶e̶e̶ ̶d̶a̶y̶s̶,̶ ̶t̶h̶i̶s̶ ̶h̶a̶s̶ ̶h̶a̶p̶p̶e̶n̶e̶d̶ ̶a̶t̶ ̶l̶e̶a̶s̶t̶ ̶5̶ ̶t̶i̶m̶e̶s̶.̶

Edit: Found the real problem. As the title says, logging out mounted on a horse makes the server crash when logging back in. If needed, you can download her playerdata here: https://gofile.io/d/JSlE1d Removing the RootVehicle from the playerdata fixes the problem and the player can log back in.

Paper version:

Paper version git-Paper-288 (MC: 1.16.4) (Implementing API version 1.16.4-R0.1-SNAPSHOT)

Edit: Updated from Paper b284 to Paper b288. Tested on b288.

MiniDigger commented 4 years ago

I am not awake yet and I only took a quick look, but I would guess its not the player data that is broken, but then chunk that player is in. try changing his location to spawn and see if that fixes it, or try downloading the world and teleport to his coordinates and see if that breaks.

luizsusin commented 4 years ago

@MiniDigger thanks for your comment, however, I've already done this. I locked the server so that I'd be the only one to join. Got the position from his player data and teleported to that position. The chunk is just fine, so I'm guessing there's something more.

luizsusin commented 4 years ago

Found a possible related problem: When I delete RootVehicle from his player data and put that data back in the server, the player can log in just fine. It seems to be related with the RootVehicle package. It seems to be related to GSit plugin as it has an entry CustomName: {"extra":[{"text":"GSit"}],"text":""}, but I cannot confirm.

Edit: I'll disable the plugin until I know for sure if this is truly the problem, which probably is.

luizsusin commented 4 years ago

I've changed the title as I've figured out what was causing the issue. Logging out of the server mounted on a Horse (tested on b288 as well) is causing the server to crash.

Strahilchu commented 3 years ago

Can you replicate this without any plugins? If its a plugin issue shouldn't you report it to GSit developers instead of Paper? Or are you implying that it is a Paper bug because paper should be able to fix files that were corrupted by plugins? I feel like this should be a Paper Bug if its actually caused by Paper and seems to be caused by plugin and paper just can't fix it and crashes I guess it would be nice to have something that detects corrupted playerdata and auto resets it (with a config option)

e-im commented 2 years ago

Cannot reproduce on 1.18- if you're still experiencing this, leave a comment. Unfortunately, your uploaded file has expired.