Player loading & Advancements memory leak #73
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Not sure if this was an issue with achievements, but advancements load each time a player is loaded, then never get garbage collected. Need to look into the logout process more to complete cleanup. Shouldn't present an issue to the average user, takes 1000+ player loads to make a real impact.
Hmm I remember someone complaining about advancements with a heap dump in #spigot-dev but eventually he believes he resolved it by discovering someone spamming a packet and rate limiting said packet, as a resolution to his issue. (He also was doing NMS stuff.)
I found this to be an issue when loading players periodically for various checks, ended up having advancements consuming about 30% of the memory used. After reducing periodic checks, memory usage normalized. It's certainly not a concern for the average user, but it should definitely be fixed in case other plugins end up using Player objects provided by OpenInv. The server I'm currently working with has a rather small and consistent player base. I don't think anyone's been doing anything malicious, though I guess I can't entirely rule it out.
Yea, he was also spawning entityplayers or something.
Not sure how this was handled back in 1.12 because I never invested the time to track it down, but in 1.15 there does not appear to be any special handling for advancements.
I had assumed this was resolved because I stopped encountering it in later versions, but according to this post it looks like this is as simple as releasing the player's advancement data.