Skip to content

osrm-extract assert triggering on manoeuvre override relation #6126

@mjjbell

Description

@mjjbell

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
Screenshot 2021-09-16 at 14 53 51

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions