Code Monkey home page Code Monkey logo

Comments (8)

Veyrdite avatar Veyrdite commented on May 27, 2024 1

Thankyou spoutn1k, that's a beautiful render and you have made my day.

from mcmap.

infinitewarp avatar infinitewarp commented on May 27, 2024

Looking closer at my attempts to render each region file individually, at least one region file (r.1.-1.mca) fails like:

[Debug] World spans from 512.-512 to 1023.-1
mcmap 3.0.0 64bit (compatible with Minecraft v1.13+)
[Debug] Decompressing chunk data failed: buffer error
[Debug] Not enough data for chunk: Success
*** stack smashing detected ***: terminated
Aborted

In that case, mcmap exits with status 134.

Some other region files (r.0.0.mca, r.2.0.mca, r.2.1.mca) fail like:

[Debug] World spans from 1024.0 to 1535.511
mcmap 3.0.0 64bit (compatible with Minecraft v1.13+)
[Debug] Loaded 314 colors out of the 760 declared
Segmentation fault0.10%]

In those cases, mcmap exits with status 139.

from mcmap.

spoutn1k avatar spoutn1k commented on May 27, 2024

Hey ! Thank you for the detailed issue and the asciinema !

This is very peculiar. Considering the coordinates, my guess would be these regions have been around for a long long time, and they might have quirks my test samples did not show. I ran tests with worlds generated using Minecraft 1.13+, so problems were to be expected.

I figure having access to those files is out of the question ? It would simplify greatly the process, but I would totally understand as this is personnal.

Are there any additional arguments I can give mcmap to produce more verbose debug output?

Unfortunately this is all the output mcmap gives out. I could try and add some more debug printfs, but my first step would be to isolate the problem. I just pushed a new script in the main branch, can you try and run regionReader on those regions ? It will detail all the chunks present along with some metadata, that could help me figure out a common property.

I picked mcmap back up after the project left alone for a while, and the only thing that did not change is the output. I use custom STL-like NBT objects and that has proven to be a double-edged sword. I was expecting more mature projects to fare better on the compatibility front, but hopefully we can fix this.

from mcmap.

spoutn1k avatar spoutn1k commented on May 27, 2024

If anyone ever ends up with a similar error, please run (and comment the result):

find <your save>/region/ -exec ./regionReader {} \; | cut -f 4 | grep -v Size | sort -ug | tail -n 1

With regionReader being the script included in mcmap (Configured with -DNBT_TOOLS=1). A memory buffer with a set size is used to decompress chunks, and a lot of activity in a single area might make it overflow.
In the meantime, its size was increased, so hopefully this error will not happen anymore.

from mcmap.

Veyrdite avatar Veyrdite commented on May 27, 2024

Segfaults on my world. Please tell me if there is anything else I can provide to help.

Further information:

  • Fabric-modded world with some extra blocks (all of the ones mcmap picked up on were added to a colors2.json file, I originally thought this was causing the segfault
  • Minecraft 1.16.5
  • Void linux x86_64
  • Git 126d8bc
$ ~/app/mcmap/bin/mcmap -colors colors2.json  -vv world/
...
[Deep Debug] Region file r.-2.5.mca does not exist, skipping ..
[Deep Debug] Region file r.-2.5.mca does not exist, skipping ..
[Deep Debug] Region file r.-2.5.mca does not exist, skipping ..
[Deep Debug] Region file r.-2.5.mca does not exist, skipping ..
[Deep Debug] Region file r.-2.5.mca does not exist, skipping ..
[Debug] Rendering -192.-1472.0 ~> 831.-449.255 (North-West)                     
[Debug] Rendering -192.-448.0 ~> 831.575.255 (North-West)
[Debug] [Debug] Rendering -192.1600.0 ~> 831.2623.255 (North-West)
Rendering -192.576.0 ~> 831.1599.255 (North-West)
Segmentation fault0.00%]

Tilesize twiddling only changes when the failure occurs:

$ ~/app/mcmap/bin/mcmap -colors colors2.json -tile 64 -vv world/
...             
[Debug] Rendering -192.64.0 ~> -129.127.255 (North-West)                        
[Debug] Rendering -192.128.0 ~> -129.191.255 (North-West)                       
[Debug] Rendering -192.192.0 ~> -129.255.255 (North-West)
[Debug] Rendering -192.256.0 ~> -129.319.255 (North-West)                       
Segmentation fault0.00%]]

Regionreader:

 $ find world/region/ -exec ~/app/mcmap/bin/regionReader {} \; | cut -f 4 | grep -v Size | sort -ug | tail -n 1
[Error] Error reading header, not enough bytes read.
27108

GDB backtrace:

...
[Debug] [Debug] Rendering -192.576.0 ~> 831.1599.255 (North-West)
Rendering -192.1600.0 ~> 831.2623.255 (North-West)
Rendering chunks [0.00%]
Thread 1 "mcmap" received signal SIGSEGV, Segmentation fault.
0x00005555555dc951 in IsometricCanvas::renderSection() ()
(gdb) bt
#0  0x00005555555dc951 in IsometricCanvas::renderSection() ()
#1  0x00005555555e04a8 in IsometricCanvas::renderChunk(Terrain::Data&) ()
#2  0x00005555555e067b in IsometricCanvas::renderTerrain(Terrain::Data&) ()
#3  0x00005555555b7cef in ?? ()
#4  0x00007ffff7d0f712 in GOMP_parallel () from /usr/lib/libgomp.so.1
#5  0x00005555555b71a1 in mcmap::render(Settings::WorldOptions const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Colors::Block, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Colors::Block> > > const&) ()
#6  0x00005555555751fe in main ()
(gdb)

from mcmap.

spoutn1k avatar spoutn1k commented on May 27, 2024

Hey thanks for shaing !

Are the 'Rendering` messages the first ones of the full error message ?
You mention 'when the failure occurs'. Is this a localized thing ? Can you render parts of your world ?

I am not sure what causes this. I never used mcmap with a non-vanilla world, and Fabric may change the expected format.
Would you be comfortable with sending the file world/region/r.-1.0.mca from the save you attempted to render ? I'll try on my side and fix or add support if need be.

from mcmap.

Veyrdite avatar Veyrdite commented on May 27, 2024

Apologies for never getting back to you. This is probably now far too little far too late (not to mention the chunk was probably modified afterwards).

r.-1.0.mca.zip

I hope your end of the world is holding up OK.

from mcmap.

spoutn1k avatar spoutn1k commented on May 27, 2024

Hey don't apologize for not folllowing up a minecraft discussion, that is really helpful already.

Looks like the mod does not change the world format, so it can be rendered. I rendered this region in both the version from February 1st and the latest. Either the chunks have been updated, or it was some kind of structure error with the rest of the world.

output

The internals of mcmap changed a lot over time so hopefully I'll see less of those segfault issues.

I hope you are too. Good luck out there.

from mcmap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.