mojira.dev
MC-92916

Player is removed from the EntityTracker when teleporting to unloaded chunks or changing dimensions, resulting in client side desync

The bug

Players are removed from the list of loaded entities and the EntityTracker stops tracking them when they teleport out of non-spawn chunks which are not loaded afterwards anymore into currently unloaded chunks. This causes all kind of desynchronizations for the client and results in the @e selector not finding the player anymore (@a, @r and @p still do).

Desynchronization examples

  • For any level of speed/slowness, it doesn't increase/decrease your walking speed, nor FOV and if you had speed or slowness before the glitch happens the speed/slowness will also stay after you clear it. (It won't show any particles or a tab in the GUI saying that you have the effect but your FOV is still increased/decreased and you still walk faster/slower)

  • Invisibility doesn't work.

  • Switching to spectator mode makes your head completely nontransparent (MC-93377) and when switching from spectator to another makes you invisible. (MC-92324)

  • You don't take knockback from any damage. (MC-98210)

  • You can't hear any damage sounds.

  • Elytras won't work (MC-89994) which might be the cause of MC-90035.

  • Targeting with @e and @r[type=player] becomes unreliable. (MC-100369)

  • If you have some armor equipped, then teleport, changing the armor values (changing, adding, removing) makes your armor points stay the same.

  • Players will be invisible. (MC-91236)

  • Potion effects are displayed incorrectly, went through a teleporter after getting absorption, and even after the absorption wore off minutes later, the particle effects from it were there.

  • Health is displayed incorrectly, health-boost/absorption before teleporting, and extra hearts did not show after teleporting.

  • Attack Indicator displays wrong animation (MC-97169)

  • Main hand is always your right hand (MC-142135)

  • Killing an entity with a bow and arrow will not count as the player's kill

  • Player becomes stuck in bed

List by @unknown

How to reproduce

The main steps are always

  1. Use setup steps provided for the specific reproduction case

  2. Teleport away from any chunks which remain loaded after you teleport, example: spawn chunks, chunks with other player, chunks with hoppers...

    /tp ~ ~ ~100000
  3. Teleport away from these chunks making sure they get unloaded once you teleported

    /tp ~ ~ ~100000
  4. Use reproduction steps provided for the specific reproduction case

Potion effects modifiers are not updated for client

Reproduction steps
  1. Give yourself speed or slowness which both modify the movement speed

    /effect @p speed 10000 10 true
  2. Walk around
    → You will notice that you walk with normal movement speed

Potion effect particles are not updated

Setup steps
  1. Give yourself for example night vision

    /effect @p night_vision 1000 1
Reproduction steps
  1. Clear the potion effects

    /effect @p clear

    → You will notice that the particles remain

Actions modifying flags value

The FLAGS data parameter stores the state for some entity states:

  • burning

  • sneaking

  • sprinting

  • invisible

  • glowing

  • elytra flying

Data parameters are managed by the EntityTracker and therefor the player will not receive the change. The highlighted states cause client side problems. "Invisible" includes switching from Spectator mode to Creative mode.

Setup steps

Switch to Spectator mode or give yourself the invisibility effect

/gamemode spectator
Reproduction steps
  • Switch back to a different game mode

  • Stand in fire

  • Use the glowing effect

    /effect @p glowing 1000 1 true
  • Use the invisibility effect

    /effect @p invisibility 1000 1 true
  • Try using the elytra

Entity selector not finding player anymore

Reproduction steps

Use the following command

/say @e

Code analysis

Based on 1.11.2 decompiled using MCP 9.35 rc1

The problem is that the method net.minecraft.world.World.updateEntityWithOptionalForce(Entity, boolean) only updates the chunk an entity is in if the area around the entity is loaded, which causes other bugs like MC-81536 and might not be a good design as seen in MC-108469.
When the server then receives a CPacketPlayer packet before the area around the player is loaded correcting the chunk the player is in, the chunks were the player was before are unloaded. This makes the server then later remove the player from the list of loaded entities (Side note: but not loaded players) and causes the EntityTracker to stop tracking the player which means no data parameter changes are send to the player anymore.

Removing the condition for the area to be loaded could nearly completely solve this problem. It would however not solve the problem where entities teleported in unloaded chunks get lost.

The reason why it only "nearly completely" solves this is because it might still be possible that this happens when the CPacketPlayer packet is received and processed before the player is updated, which might be possible because packets are processed before players are updated.

Linked issues

MC-10676 Sleeping in bed won't let you leave bed or reset time (or leave "leave bed" screen) [SMP] Resolved MC-23628 Cant get out of bed Resolved MC-35080 Cannot leave the bed! Resolved MC-40898 Unable to leave my bed. Resolved MC-89994 Elytra stops working when teleported into unloaded chunks Resolved

Attachments

Comments 108

[Mod] redstonehelper

Works just fine for me. Please attach a crash report, exact steps to reproduce and a video if possible.

wait, now it does work? weird
I can't see this issue now anymore, and nothing changed in my commands, world, etc

[Mod] redstonehelper

Not the first time this has been reported. Weird indeed.

should it be good to note that the first time I did a lot of teleporting to unloaded chunks?
I tried that again, had no effect the second try after it worked already

I have just ran into the same bug. I'm attaching a crash report.

98 more comments

The player is still invisible for a bit of time after switching the gamemode from spectator (1.16.1)

This report is currently missing crucial information. Please take a look at the other comments to find out what we are looking for.
If you added the required information and a moderator sees your comment, they will reopen and update the report. However, if you think your update to this report has been overlooked or you want to make sure that this report is reopened, you can contact the Mojira staff in Discord or Reddit.
-- I am a bot. This action was performed automatically! Please report any issues in Discord or Reddit

@@unknown, please create a new report with exact reproduction steps and if possible a video showing the bug.

still invisible for a bit

Especially the "for a bit" part sounds like it might be a separate (but possibly related) issue.

@Marcono1234 Sorry, I can't reproduce it at 1.16.2 rc-1. If I will experience this issue again, I will report it.

Doesn't seem like an issue anymore. Resolving as Cannot Reproduce.

user-f2760

No User

Nathan Adams

Confirmed

(Unassigned)

FOV, GUI, behaviour, chunk, damage, dying, effect, elytra, invisibility, invisible, knockback, particle, relog, slowness, spectator, speed, unexpected, unloaded, unloaded-chunks, walking, walking-speed

Minecraft 15w47a, Minecraft 15w47c, Minecraft 15w49a, Minecraft 1.9, Minecraft 1.9.1 Pre-Release 1, ..., Minecraft 19w03c, Minecraft 19w04b, Minecraft 19w05a, Minecraft 19w06a, Minecraft 19w07a

Minecraft 1.12 Pre-Release 3

Retrieved