Closed warrenwyf closed 2 years ago
Do you build OSRM manually? We probably should have disabled asserts in Release mode 🤔
Do you build OSRM manually? We probably should have disabled asserts in Release mode 🤔
I can reproduce only if I explicitly build OSRM like:
cmake -DENABLE_ASSERTIONS=ON .. && make -j8
I localized the issue to this function call(after it one of TurnLaneData.from starts to be equal 255) https://github.com/Project-OSRM/osrm-backend/blob/41dda32546399f1dc12af1de41668993de44c7dc/src/guidance/turn_lane_handler.cpp#L327
We explicitly set it to 255 (i.e. what causes assert to fire) here https://github.com/Project-OSRM/osrm-backend/blob/41dda32546399f1dc12af1de41668993de44c7dc/src/guidance/turn_lane_handler.cpp#L683
and this augmentEntry function is expected to set this 255 to something else, but it doesn’t happen
Link to current version of armenia-latest.osm.pbf with which problem is reproducible https://drive.google.com/file/d/116GlPrZOWSFYTMjcB9BnsH31OdGg047H/view?usp=sharing
Do you build OSRM manually? We probably should have disabled asserts in Release mode 🤔
No, I used the prebuilt binary from node-osrm:
OS X release builds have assertions enabled: https://github.com/Project-OSRM/osrm-backend/blob/660cea8fcc4af14f6c231e40057df713fb311126/.github/workflows/osrm-backend.yml#L276
It's probably a historical artifact that can be removed.
Actually, I'm also getting assertions on the Linux release build too. Now I am confused.
Actually, I'm also getting assertions on the Linux release build too. Now I am confused.
Yes, but the executable files in the docker image seems to be fine
This is the problematic intersection: https://www.openstreetmap.org/#map=19/40.17416/44.50071
It includes a road whose only possible turn has a restriction applied: https://www.openstreetmap.org/relation/14065440
Therefore
I encountered an interruption while executing the osrm-extract command while using Armenia's OSM data:
The test data can be downloaded from http://download.geofabrik.de/asia/armenia-latest.osm.pbf
It looks like there may be errors in the data, but because of the assertion, osrm-extract doesn't ignore the errors and interrupts the execution.