mojira.dev
MC-99601

Commands that fetch game profiles cause lag when fetching a player that wasn't before on the server

Using online-mode=true, when executing the /whitelist add, /whitelist remove, /ban, /pardon, /op or /deop command then this causes the server to stop responding for some seconds while it is looking up a profile for a not loaded player. This lag sometimes can take even 10 seconds. The player must not be fetched nor cached by the server for lag to happen.

The reason

This bug happens because that request to Mojang API happens on the main server thread which locks it.

Notes:

  • This might be invalid as the commands return feedback on whether or not they ran successful

Original description:

The bug

Using the /op, /whitelist or /ban command causes the server to stop responding for some seconds while it is looking up a profile for a not loaded player.

The reason

The following is based on decompiled version of Minecraft 1.9 using MCP 9.24 beta. All method and class names are the names used in the decompiled version.

The reason why this happens is because the method net.minecraft.server.management.PlayerProfileCache.getGameProfileForUsername(String) is called which tries to get the information from the Mojang servers.

Notes:

  • This might be invalid as the commands return feedback on whether or not they ran successful

  • This affects the following situations as well

    • Saving villages

    • Loading wolves, ocelots or horses

Video:

https://clips.twitch.tv/CharmingAgitatedLEDSpicyBoy-T1rdY38Enm6WHAgr

Linked issues

Comments

wobst.michael

Is this still an issue in the most recent versions (currently that is 1.10.2, or 16w42a) of Minecraft? If so, please update the affected versions and help us keeping this ticket updated from time to time. If you are the owner/reporter of this ticket, you can modify the affected version(s) yourself.

Avoma

Can confirm. Here's a video of this issue occurring: https://clips.twitch.tv/CharmingAgitatedLEDSpicyBoy-T1rdY38Enm6WHAgr

Marcono1234

EpicPlayerA10

(Unassigned)

Community Consensus

Platform

Normal

Dedicated Server, Performance

ban, op, player, profile, server, whitelist

Minecraft 1.9, 1.21, 1.21.1, 24w34a, 24w37a, 24w39a

Retrieved