Skip to content

Improve migration command#663

Open
zombachu wants to merge 2 commits intoMultiverse:mainfrom
SynergyMC:master
Open

Improve migration command#663
zombachu wants to merge 2 commits intoMultiverse:mainfrom
SynergyMC:master

Conversation

@zombachu
Copy link
Copy Markdown

@zombachu zombachu commented Apr 23, 2026

Needed these changes to get it working on my server from 2014 and 150k+ files

  1. Migrates data in worlds/ and groups/ even if the player file doesn't have a matching player in players/ (possible due to legacy versions mixing and matching UUID and username-based file names)
  2. Processes players sequentially to avoid resource exhaustion
  3. Improves handling of profiles with legacy formats and naming (no lastKnownName, username named files, etc.)

1. Migrates data in worlds/ and groups/ even if the player file doesn't have a matching player in players/ (possible due to legacy versions mixing and matching UUID and username-based file names)
2. Processes players sequentially to avoid resource exhaustion with thousands of files
3. Adds per-profile and per-player exception handling to avoid errors cancelling the whole migration
4. Continues on serialization errors to avoid invalid items skipping the whole inventory
@benwoo1110
Copy link
Copy Markdown
Member

benwoo1110 commented Apr 23, 2026

  1. I will need concrete examples of your setup having this issue, bcu I don’t have any reproducible case of this occurring which is required to identify the issue.
  2. I’m using Java’s default thread pool which is based on your systems cpu spec, but if it’s a vm or shared host maybe it will cause issues. You also shouldn’t have your server in productions with players playing on it during migration anyways. So unless you are saying the entire server crash, lag is expected during migration. So again, will need logs to proof.
  3. Yea sure, will look into this, tho I thought its already per player error handling… again need logs to see what exactly crashed.
  4. Depends on the error, not every error can be handled so gracefully or just bypass parts of the inventory data while still able to read the others.
  5. It’s already stated in the wiki and our modrinth site does not list Multiverse-InventoriesImporter as spigot compatible at all. ig I can add a very specific message in the command, but I don’t think it’s a huge concern.

@benwoo1110
Copy link
Copy Markdown
Member

I will need player data from your end with said issues, so I can test that this pr actually resolved it. You can send here or over discord. I also want you send server logs that shows the errors and resource exhaustion.

@zombachu
Copy link
Copy Markdown
Author

Did more testing and cleaned up the changes a bit.

  1. Sent dm on discord
  2. I'm on a dedicated server. Bumped up the memory to my testing server to 8 gigs and it stopped hanging fully but the difference with sequential player processing is massive: [09:18:10 INFO]: Bulk edit completed in 90288 ms. vs [10:03:01 INFO]: Bulk edit completed in 2182051 ms.
  3. My b, made a mistake and MV's probably fine
  4. Turned out to not be making a difference so reverted
  5. Fair, reverted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants