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
is duplicated by
Comments

Can confirm. Here's a video of this issue occurring: https://clips.twitch.tv/CharmingAgitatedLEDSpicyBoy-T1rdY38Enm6WHAgr
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.