-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fixer crashes scanning regions #71
Comments
Thanks for the bug report. Could you please send me the region file that causes this? |
@deepnetworks Was this tested with the |
I have a world that also has many corrupted chunks. The scanner works fine with other worlds, but not the corrupted one. I am getting the same error as DeepNetworks, and I am using the most current and updated branch. Also Fenixin, this is a very amazing tool and thank you for all the time you put into it! |
Hello! @GeoffSon, could you please try to scan that same world with this branch? Is a WIP, but should detect a new kind of problem. Currently, this branch only works with python3. |
@Fenixin Thank you for the quick response. I’ll be sure to try out this new branch! |
I just tried to run the program with the new2to3 branch on Python3.7, and I got the following message. Bug report: *** Exception while scanning: *** Printing the child's traceback: *** File C:\Users\Geoffrey\Desktop\Region Fixer\Minecraft-Region-Fixer-new2to3\regionfixer_core\scan.py, line 615, in scan_data The scan crashed after starting to scan structures and map data files. I believe the file causing the issue is idcounts.dat. |
Actually, I just ran another scan, but I deleted the idcounts.dat file, and the scan worked! Thank you. |
@deepnetworks could you share your Both exceptions originate in the nbt library, which is used by Minecraft-Region-Fixer. I like to check if these exceptions are correct, and like to work with @Fenixin to see if we can make a patch that allows Minecraft-Region-Fixer to better report the error, and continue with other files. |
@Fenixin perhaps a better approach when a NBT file can't be read is first to:
Of course, recovering or deleting a bad NBT file ( To delete or replace a chunk is possible with the NBT library. In 2013 I meticulously improved the region code to ensure even the most insanely corrupted regionfile is at least not further corrupted. |
I don't mind sharing my idcounts.dat file. |
@macfreek, that sounds great. I should look where the region file format version is stored and check if nbt cand open it before scanning. I haven't looked into it yet but, is there a nice why to ask nbt if a world is the correct format? |
@GeoffSon, it's probably quite late for this but I have added a those errors to data scanning and regionfixer should point out that the file is broken instead of crashing. So I have been looking how to check if the nbt version is supported or not and it seems that it's not that hard. From the Minecraft Wiki/level.dat there is TAG_Int that store the nbt version, currently 19133. A funny thing that happens is that regionfixer is designed to be able to scan worlds and independent region files. Because the nbt version is only stored in leve.dat, if the user only provides a region file/regionset instead of a world directory there is no way to know what nbt version is being used, and consequently we don't know if the chunks/regions are really broken or nbt is failing because a new version of nbt format. Another funny case that could happen when a new version of nbt rolls out and to look the nbt file version we need to open a nbt file. But I think it's unlikely that the nbt format changes that much. I'm not really sure how to tackle this problems. Though I'm not sure is the best of solutions, right now I'm thinking in:
Any other ideas? EDIT: Is there another way to check NBT version in a region file? |
My when loading a specific chunk of the world,
the bukkit crashes and the bukkit says : I cannot load newer version of chunk
and scannning my world with this region fixer, it crashes :
The text was updated successfully, but these errors were encountered: