mojira.dev

Drew Davies

Assigned

No issues.

Reported

No issues.

Comments

I managed to recover my world, after a fair bit of trial and error. 😃

I made note of the last LDB file which had data in it (111116.ldb) and renamed the 0-byte MANIFEST-111120 to MANIFEST-111116. I then edited the 0-byte CURRENT file to contain "MANIFEST-111116". Upon starting my Bedrock server, it provided a warning that the database was corrupt, but it subsequently repaired it:

[2020-05-27 21:09:42 INFO] Starting Server
[2020-05-27 21:09:42 INFO] Version 1.14.60.5
[2020-05-27 21:09:42 INFO] Session ID 4e3ddebe-963a-411e-a90d-08542c93ce9a
[2020-05-27 21:09:42 INFO] Level Name: Bedrock level
[2020-05-27 21:09:42 INFO] Game mode: 0 Survival
[2020-05-27 21:09:42 INFO] Difficulty: 1 EASY
[2020-05-27 21:09:42 INFO] opening worlds/Bedrock level/db
[2020-05-27 21:09:42 WARN] LevelDB worlds/Bedrock level/db status NOT OK(Corruption: no meta-nextfile entry in descriptor). Trying repair.
[2020-05-27 21:09:51 INFO] IPv4 supported, port: 19132
[2020-05-27 21:09:51 INFO] IPv6 not supported
[2020-05-27 21:09:51 INFO] IPv4 supported, port: 55936
[2020-05-27 21:09:51 INFO] IPv6 not supported
[2020-05-27 21:09:52 INFO] Server started.
[media]

Naturally, I'll work to prevent this from happening in the future by making daily backups, but I'm still unsure as to what the underlying cause of the DB corruption was. I've seen an increased number of reports related to v1.14.60 worlds becoming corrupted due to non-graceful shutdowns of the game/BDS instance (eg. MCPE-62153, BDS-4597), so I'd be interested to know if there were any functional changes made to LevelDB as part of the release.

I came across this link on Gamepedia related to recovering corrupted worlds. When attempting to load my level.dat, a world does load, but I have no inventory and I start in a location that I'm unfamiliar with. This is not entirely unexpected, as the instructions specifically state:

The things you were wearing and carrying at the time the world got corrupted are not (recoverable).

You will start in a random location and have to find your way back to your settlement.

While I don't know much about the LevelDB format, I'm skeptical that any features (settlements) that we built in our world before it became corrupted, could possibly be captured within the 2.1KB level.dat alone. My expectation is that the level.dat contains the seed for the world, but that the LDB files contain the vast majority of changes to the base world.

I also found issue BDS-4597 which closely resembles the issue that Trivi and I have experienced, and the OP was able to resolve their issue by opening the map in Minecraft directly, before migrating it back to their BDS. I'm not sure of the process that they followed to accomplish this though, as I don't see a way to directly open either the level.dat or individual LDB files within Minecraft.

Thanks for the suggestion Pablo, however, just like in Trivi's case, the "Network port occupied, can't start server" appears to be a false flag. I've verified that there is only one instance of the Bedrock server running, and in my case, Docker provides full network isolation. On a properly working BDS instance (port 19132 bound via UDP) this is what should be displayed, but in my case is not:

[media]

 

Having the same issue after upgrading from 1.14.30.2 to 1.14.60.5.

I use a Docker container (https://github.com/itzg/docker-minecraft-bedrock-server) in Linux and noticed that I was unable to start my container after perfoming some maintenance on the underlying server:

[media]

I have 90 files in my "data/worlds/Bedrock level/db" folder, however it appears that the latest three files are all zero bytes, including the MANIFEST, which appears to be referencing an LDB which doesn't exist (111120).

[media]

My "data/worlds/Bedrock level" folder appears to contain a populated level.dat:

[media]