Project-OSRM / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
6.21k stars 3.29k forks source link

osrm-customize crash with bicycle profile on planet #6159

Open geoneutrino opened 2 years ago

geoneutrino commented 2 years ago

I'm aware of Issue #6122 and complied 5.26 with cmake .. -DCMAKE_BUILD_TYPE=Release

osrm-extract ... works osrm-partition --max-cell-sizes=1024,16384,262144,4194304 ... works

but osrm-customize crashes with [info] RAM: peak bytes used: 205588832256 [error] [exception] std::bad_alloc

6122 mentions this should not happen with Release build

The server is a debian 11 with 256 GB Ram + 256 GB Swap, so no memory pressure

Doing a osrm-contract to switch to CH on the planet.osrm crashes with a Segmentation fault between 50 and 55 %

Any idea how to get more details on this ? Or is there a current problem/howto build the current planet net with bike ?

Thanks

mjjbell commented 2 years ago

I think you still need more memory.

6122 mentions they had 512GB RAM and 200GB swap.

geoneutrino commented 2 years ago

unfortunately not, i added lots of additional swap but got the same error, with similar ram peak usage of ~ 200GB. htop in parallel shows no exzessive ram usage

/usr/local/bin/osrm-customize ./planet-latest.osrm [info] Loaded edge based graph: 3038031592 edges, 748175550 nodes [info] Loading partition data took 828.337 seconds [info] RAM: peak bytes used: 205587542016 [error] [exception] std::bad_alloc [error] Please provide more memory or consider using a larger swapfile

hmm. memory errors with lots of ram free - maybe heap related ? (or how to avoid/trace local issue ?)

mjjbell commented 2 years ago

Can you try building with -DCMAKE_BUILD_TYPE=RelWithDebInfo and see if we hit any assertions?

geoneutrino commented 2 years ago

Its 9x slower but same effect and message, no more hints/output I cross-checked with a smaller map (Germany) which works without problems. So installation seems ok and this somehow points to a problem with too few resources (but enough free) or some other effect with the planet data

compile only mentions some deprecations (system has boost libs 1.74) but this shouldnt affect the code

pragma message: TBB Warning: tbb/atomic.h is deprecated

pragma message: This header is deprecated. Use <boost/iterator/function_output_iterator.hpp> instead.

include/util/ieee754.hpp:91:18: warning: ISO C++ does not support '__int128' for 'p' [-Wpedantic]

pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.'

github-actions[bot] commented 3 weeks ago

This issue seems to be stale. It will be closed in 30 days if no further activity occurs.