mojira.dev
MC-250193

Server log does not use the string representation of a player's GameProfile on a disconnect during encryption

When joining and cancel joining while the server is loading the world the disconnect message is not the same as when.

How to reproduce:
1. Start server
while world loads:
2. join
3. wait until it shows encrypting
4. press cancel
5. wait until the world loaded
6. look in the server terminal

Expected:
The server logs a disconnect like it would be logged when the world is loaded:

Sertonix lost connection: Disconnect

Observed:
The server logs a lot more data instead of just the username:

com.mojang.authlib.GameProfile@3af7900[id=c79d29c6-0d05-435c-b742-c1cdd4ab191d,name=Sertonix,properties={textures=[com.mojang.authlib.properties.Property@38b94fa8]},legacy=false] (/127.0.0.1:52010) lost connection: Disconnected

If you cancel while connecting or logging in some data hasn't loaded jet:

com.mojang.authlib.GameProfile@1154b36a[id=<null>,name=Sertonix,properties={},legacy=false] (/127.0.0.1:52087) lost connection: Disconnected

Cause & fix
The reason this happens is because there are two different functions that can log a disconnect. The on disconnect function in the server login handler could be changed to only print the user name instead.

Linked issues

Attachments

Comments 3

Cannot confirm in 1.19.3 and 23w04a

This seems to be described in MC-134419.
If not, I can confirm. It's very tricky to get right, so you have to try qute a few times to get it.

[media]

Yes, MC-134419 seems to be the same problem. I think the case described there is even harder to reproduce. Maybe when in step 4 the client is killed or disconnected without sending a disconnect message.

And thanks for the screenshot!

Sertonix

bl4ckscor3

Community Consensus

Platform

Low

Dedicated Server

logging, server

Minecraft 1.13, Minecraft 1.13.2, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, , 22w15a, 1.19.3, 23w04a, 1.20.4, 23w51b

25w36a

Retrieved