Note: This report is specific to entity data not being removed at the time each entity dies / despawns / etc. The issue with old entity data not being removed is tracked in MCPE-160818.
1.19.30.20.1 Preview Is the True Fixed version. It does not clean up the mess of the older versions.
It appears that the new entity storage keys don't get cleaned up. The "actorprefix" and the NBT data that is stored under them are left behind and don't ever get removed after entities are killed or despawned. Thousands are left dangling outside any chunk pointer key ( digp ) wasting space. They may have forgotten a clean-up function for the expired entities?
there are now 21731 dangling Entities, do I need to remove these manually?
Linked issues
relates to 1
Attachments
Comments 49
I used rbedrock to analyze a fresh 1.19 world that was run for about 20 minutes or so.
I can confirm that there are actor keys in the database that are not recorded in any chunk's actor digest record. If those keys are from dead or despawned mobs, then the database has a "memory" leak.
I haven't tested if the leak keeps growing the longer the world is simulated. So I don't know if these orphaned actors will eventually be garbage collected.
To make your bug report as effective as possible, please try and include the following steps to reproduce the problem:
Steps to Reproduce:
1.
2.
3.Observed Results:
(Briefly describe what happens)Expected Results:
(Briefly describe what should happen)
Quick Links:
📓 Issue Guidelines – 💬 Mojang Support – 📧 Suggestions – 📖 Minecraft Wiki
Steps to Reproduce:
Create a new flat world with mob spawning off.
Use spawn eggs to create 10 llamas. Kill all the llamas.
Save game.
Use an external tool like rbedrock or whatever mojang has internally to inspect the world save.
Count how many "actorprefix" keys there are in the leveldb.
Count how many actors are stored in digp records in the leveldb.
If the count from step 5 is greater than the count from step 6, you have reproduced this bug.
Observed Result:
There are 10 actorprefix keys. Each one holds NBT data for a llama. None of these keys are referenced in any digp record.
Expected Result:
There are 0 actorprefix keys.
I have noticed that my mob farm test worlds are now much larger than before. For example, a world that used to sit around 4-5 MB might jump to about 15 MB.
Dan Martin, it is also laggy when I scroll up and down the lists with your entity plugin. My computer has good RAM.
Well on iPad, I think it is fixed in 1.19.20 already, since I did not see any more unlinked entities when I use the entity plugin. I upgraded my Minecraft from 1.19.11 to 1.19.20, the number of unlinked entities is still 9078. I think it is fixed for iPad, but for other devices, I have no idea.
Yes live entities take up storage but way less than the whole chunk. And like I said before you're not gonna notice a huge difference in storage space. Yet it's annoying when something's there and it doesn't need to be.
To prove my point that this bug is fixed in 1.19.20 for iOS, follow the steps below.
Requirements:
You must need a working iOS device.
You must have a copy of Minecraft on your iOS device.
You must update to Minecraft 1.19.20.
Steps:
1: Launch Minecraft on your iOS device.
2: Create a brand new world in Minecraft 1.19.20.
3: Once step 2 is completed, kill some mobs.
4: Save and exit the game.
5: Locate the world folder(the world where you have killed the mobs) in your files app(iOS). If you don’t know where to locate the world folders, search it up on the internet.
6: Zip the world folder so it can be easier to share the world folder to your PC.
7: Use a file sharing program like pCloud(referral link: https://u.pcloud.com/#page=register&invite=qcTm7Z0HNiRk ). Upload the compressed world folder to the file sharing program/software.
8: Go onto your PC, make sure you have downloaded Amulet and Dan Martin’s entity plugin(steps to install Dan Martin’s entity plugin are above these 8 comments).
9: Go onto your file sharing program/software and download the compressed world folder on your PC. Once it is downloaded, it would be in your PC’s download folder.
10: Decompress the zip file, once decompress, the world folder should appear.
11: Launch Amulet, make sure you have Dan Martin’s entity plugin in Amulet.
12: Open the world on Amulet.
13: Hover to 3D Editor.
14: Click on operations.
15: The entity plugin should appear if you have it.
16: Click ‘list dead’.
17: There should be nothing if you had your world on iOS.
I can confirm that the new actor storage system for storing entities outside the chunk that was added in 1.18.30 does not remove actors that have died or been killed.
This leads to a build up of actor keys in the leveldb database that do not seem to be cleaned up.
With compression this does not actually amount to much data but I can see this becoming an issue at scale on servers with lots of users.