With the Kentucky OSM extract.
osrm-extract with the default bike profile triggers an assertion when compressing a manoeuvre override.
|
BOOST_ASSERT(ptr->via == to); |
The override is applied at an intersection between a private and public road: https://www.openstreetmap.org/relation/10547836#map=16/39.0284/-84.5417

The private road is not accessible to the bike profile, so the node has degree two, allowing it to be compressed.
The via node of manoeuvre overrides are not exempt from being compressed, although the code appears to expect this to be the case. This inconsistency leads to the triggering of the assertion.
Furthermore, manoeuvre overrides do not support non-compressible nodes as part of the paths, meaning many are skipped or ignored. This was fixed for turn restrictions, a similar change is required for manoeuvres.
Other than fixing debug builds, there are only ~100 overrides in OSM data, so the impact on routing will be low.
With the Kentucky OSM extract.
osrm-extractwith the default bike profile triggers an assertion when compressing a manoeuvre override.osrm-backend/src/extractor/restriction_compressor.cpp
Line 228 in 051e931
The override is applied at an intersection between a private and public road: https://www.openstreetmap.org/relation/10547836#map=16/39.0284/-84.5417

The private road is not accessible to the bike profile, so the node has degree two, allowing it to be compressed.
The via node of manoeuvre overrides are not exempt from being compressed, although the code appears to expect this to be the case. This inconsistency leads to the triggering of the assertion.
Furthermore, manoeuvre overrides do not support non-compressible nodes as part of the paths, meaning many are skipped or ignored. This was fixed for turn restrictions, a similar change is required for manoeuvres.
Other than fixing debug builds, there are only ~100 overrides in OSM data, so the impact on routing will be low.