Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return early from alternative search if source or target are invalid #5851

Merged
merged 1 commit into from
Oct 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
- FIXED: treat `bicycle=use_sidepath` as no access on the tagged way. [#5622](https://github.com/Project-OSRM/osrm-backend/pull/5622)
- FIXED: fix table result when source and destination on same one-way segment. [#5828](https://github.com/Project-OSRM/osrm-backend/pull/5828)
- FIXED: fix occasional segfault when swapping data with osrm-datastore and using `exclude=` [#5844](https://github.com/Project-OSRM/osrm-backend/pull/5844)
- FIXED: fix crash in MLD alternative search if source or target are invalid [#5851](https://github.com/Project-OSRM/osrm-backend/pull/5851)
- Misc:
- CHANGED: Reduce memory usage for raster source handling. [#5572](https://github.com/Project-OSRM/osrm-backend/pull/5572)
- CHANGED: Add cmake option `ENABLE_DEBUG_LOGGING` to control whether output debug logging. [#3427](https://github.com/Project-OSRM/osrm-backend/issues/3427)
Expand Down
25 changes: 25 additions & 0 deletions features/testbot/zero-speed-updates.feature
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,31 @@ Feature: Check zero speed updates
| 1 | 2 | NoRoute |


Scenario: Routing with alternatives on restricted way
Given the node map
"""
a-1-b-2-c
"""

And the ways
| nodes | oneway |
| abc | no |
And the contract extra arguments "--segment-speed-file {speeds_file}"
And the customize extra arguments "--segment-speed-file {speeds_file}"
And the speed file
"""
1,2,0
2,1,0
"""
And the query options
| alternatives | true |


When I route I should get
| from | to | code | alternative |
| 1 | 2 | NoRoute | |


Scenario: Routing on restricted oneway
Given the node map
"""
Expand Down
4 changes: 4 additions & 0 deletions src/engine/routing_algorithms/alternative_path_mld.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,10 @@ makeCandidateVias(SearchEngineData<Algorithm> &search_engine_data,
Heap &reverse_heap = *search_engine_data.reverse_heap_1;

insertNodesInHeaps(forward_heap, reverse_heap, phantom_node_pair);
if (forward_heap.Empty() || reverse_heap.Empty())
{
return {};
}

// The single via node in the shortest paths s,via and via,t sub-paths and
// the weight for the shortest path s,t we return and compare alternatives to.
Expand Down