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

Assertion thrown during map matching when traffic data loaded #3641

Closed
danpat opened this issue Feb 2, 2017 · 11 comments
Closed

Assertion thrown during map matching when traffic data loaded #3641

danpat opened this issue Feb 2, 2017 · 11 comments
Milestone

Comments

@danpat
Copy link
Member

danpat commented Feb 2, 2017

We're hitting the following assertion:

"bt full" output from the asserting thread (click to expand)
#0  0x00007ffff69a5c37 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007ffff69a9028 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007ffff72bbbbd in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#3  0x00007ffff72b9b96 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#4  0x00007ffff72b9be1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#5  0x0000000000df8b96 in (anonymous namespace)::assertion_failed_msg_helper (
    expr=0xf53447 <.L.str.153> "forward_core_heap.GetData(middle).parent == middle && reverse_core_heap.GetData(middle).parent == middle", msg=0xf46345 <.L.str.91> "",
    function=0xf531a4 <.L__PRETTY_FUNCTION__._ZNK4osrm6engine18routing_algorithms21BasicRoutingInterfaceINS0_10datafacade14BaseDataFacadeENS1_11MapMatchingIS4_EEE14SearchWithCoreERKS4_RNS_4util10BinaryHeapIjjiNS0_8HeapDataENSA_19UnorderedMapStorageIjiEEEESG_SG_SG_RiRSt6vectorIjSaIjEEbbi> "void osrm::engine::routing_algorithms::BasicRoutingInterface >::Search"...,
    file=0xf52ceb <.L.str.149> "/home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/include/engine/routing_algorithms/routing_base.hpp", line=718)
    at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/src/util/assert.cpp:14
No locals.
#6  0x0000000000df8ad7 in boost::assertion_failed (
    expr=0xf53447 <.L.str.153> "forward_core_heap.GetData(middle).parent == middle && reverse_core_heap.GetData(middle).parent == middle",
    function=0xf531a4 <.L__PRETTY_FUNCTION__._ZNK4osrm6engine18routing_algorithms21BasicRoutingInterfaceINS0_10datafacade14BaseDataFacadeENS1_11MapMatchingIS4_EEE14SearchWithCoreERKS4_RNS_4util10BinaryHeapIjjiNS0_8HeapDataENSA_19UnorderedMapStorageIjiEEEESG_SG_SG_RiRSt6vectorIjSaIjEEbbi> "void osrm::engine::routing_algorithms::BasicRoutingInterface >::Search"...,
    file=0xf52ceb <.L.str.149> "/home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/include/engine/routing_algorithms/routing_base.hpp", line=718)
    at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/src/util/assert.cpp:23
No locals.
#7  0x0000000000e7ddf1 in osrm::engine::routing_algorithms::BasicRoutingInterface >::SearchWithCore (this=0x10fb8d8, facade=..., forward_heap=..., reverse_heap=..., forward_core_heap=...,
    reverse_core_heap=..., weight=@0x7ffff5f65ee0: 894, packed_leg=std::vector of length 0, capacity 0, force_loop_forward=false, force_loop_reverse=false,
    duration_upper_bound=7558) at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/include/engine/routing_algorithms/routing_base.hpp:717
        middle = 32496545
        forward_entry_points = std::vector of length 31, capacity 32 = {std::tuple containing = {[1] = 32466589, [2] = -656, [3] = 32496570}, std::tuple containing = {
            [1] = 32494580, [2] = -599, [3] = 32496571}, std::tuple containing = {[1] = 32514643, [2] = 321, [3] = 32466586}, std::tuple containing = {[1] = 32496560,
            [2] = 417, [3] = 32494578}, std::tuple containing = {[1] = 32456748, [2] = 611, [3] = 32466586}, std::tuple containing = {[1] = 32456745, [2] = 640,
            [3] = 32466586}, std::tuple containing = {[1] = 32496545, [2] = 840, [3] = 32494578}, std::tuple containing = {[1] = 32514642, [2] = 852, [3] = 32466586},
          std::tuple containing = {[1] = 32496544, [2] = 861, [3] = 32494578}, std::tuple containing = {[1] = 32521904, [2] = 1023, [3] = 32494578},
          std::tuple containing = {[1] = 32515432, [2] = 1044, [3] = 32530405}, std::tuple containing = {[1] = 32515410, [2] = 1113, [3] = 32511997},
          std::tuple containing = {[1] = 32480939, [2] = 1198, [3] = 32466586}, std::tuple containing = {[1] = 32445916, [2] = 1246, [3] = 32466586},
          std::tuple containing = {[1] = 33160961, [2] = 1343, [3] = 32511997}, std::tuple containing = {[1] = 32525754, [2] = 1453, [3] = 32466586},
          std::tuple containing = {[1] = 32447592, [2] = 1481, [3] = 32499266}, std::tuple containing = {[1] = 32519048, [2] = 1483, [3] = 32494569},
          std::tuple containing = {[1] = 32507035, [2] = 1487, [3] = 32494569}, std::tuple containing = {[1] = 32496583, [2] = 1550, [3] = 32485131},
          std::tuple containing = {[1] = 32449361, [2] = 1710, [3] = 32449366}, std::tuple containing = {[1] = 32474186, [2] = 1833, [3] = 32485131},
          std::tuple containing = {[1] = 68295450, [2] = 1954, [3] = 32511997}, std::tuple containing = {[1] = 66369724, [2] = 2067, [3] = 32499266},
          std::tuple containing = {[1] = 33139150, [2] = 2084, [3] = 32494578}, std::tuple containing = {[1] = 32499265, [2] = 2103, [3] = 32515429},
          std::tuple containing = {[1] = 32472126, [2] = 2107, [3] = 32449366}, std::tuple containing = {[1] = 75071192, [2] = 2231, [3] = 32449366},
          std::tuple containing = {[1] = 32477032, [2] = 2322, [3] = 32449366}, std::tuple containing = {[1] = 32526336, [2] = 2346, [3] = 32485131},
          std::tuple containing = {[1] = 33122896, [2] = 2712, [3] = 32511997}}
        reverse_entry_points = std::vector of length 1, capacity 1 = {std::tuple containing = {[1] = 32496545, [2] = 54, [3] = 32496545}}
        min_edge_offset = -1103
        STALLING_ENABLED = true
        insertInCoreHeap = {}
        min_core_edge_offset = -656
        STALLING_DISABLED = false
#8  0x0000000000e72fdc in osrm::engine::routing_algorithms::BasicRoutingInterface >::GetNetworkDistanceWithCore (this=0x10fb8d8, facade=..., forward_heap=..., reverse_heap=..., forward_core_heap=...,
    reverse_core_heap=..., source_phantom=..., target_phantom=..., duration_upper_bound=7558)
    at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/include/engine/routing_algorithms/routing_base.hpp:875
        DO_NOT_FORCE_LOOPS = false
        duration = 894
        packed_path = std::vector of length 0, capacity 0
        distance = 6.9533359174003169e-310
#9  0x0000000000e4ce09 in osrm::engine::routing_algorithms::MapMatching::operator() (this=0x10fb8d8, facade=...,
    candidates_list=std::vector of length 3, capacity 3 = {...}, trace_coordinates=std::vector of length 3, capacity 3 = {...},
    trace_timestamps=std::vector of length 0, capacity 0, trace_gps_precision=std::vector of length 0, capacity 0)
    at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/include/engine/routing_algorithms/map_matching.hpp:240
        network_distance = 2465.8667666019446
        d_t = 1442.4651715104203
        emission_pr = -2.572981144269411
        new_value = -5.9467885795833615
        transition_pr = -146.54910224403608
        s_prime = 0
        __range = 
        __begin = {last = 2, iter = 0}
        __end = {last = 2, iter = 0}
        s = 5
        __range = 
        __begin = {last = 6, iter = 5}
        __end = {last = 6, iter = 0}
        prev_unbroken_timestamp = 0
        prev_viterbi = std::vector of length 6, capacity 6 = {-2.6444365554025504, -2.6444365554025504, -3.3738074353139504, -3.3738074353139504, -3.3738074353139504,
          -3.3738074353139504}
        prev_unbroken_timestamps_list = std::vector of length 6, capacity 6 = {{phantom_node = {forward_segment_id = {id = 32466588, enabled = 1}, reverse_segment_id = {
                id = 32496570, enabled = 0}, name_id = 5580064, forward_weight = 77, reverse_weight = 3, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884}, lat = {__value = 41752165}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {id = 32466588, enabled = 0},
              reverse_segment_id = {id = 32496570, enabled = 1}, name_id = 5580064, forward_weight = 77, reverse_weight = 3, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884}, lat = {__value = 41752165}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {id = 32494581, enabled = 1},
              reverse_segment_id = {id = 32496571, enabled = 0}, name_id = 5580064, forward_weight = 79, reverse_weight = 0, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {__value = 41752220}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32496572, enabled = 1},
              reverse_segment_id = {id = 32530404, enabled = 0}, name_id = 47888, forward_weight = 0, reverse_weight = 1103, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {__value = 41752220}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32494581, enabled = 0},
              reverse_segment_id = {id = 32496571, enabled = 1}, name_id = 5580064, forward_weight = 79, reverse_weight = 0, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {__value = 41752220}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32496572, enabled = 0},
              reverse_segment_id = {id = 32530404, enabled = 1}, name_id = 47888, forward_weight = 0, reverse_weight = 1103, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {__value = 41752220}},
              input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}}
        current_pruned = std::vector of length 2, capacity 64 = {0, 0}
        current_parents = std::vector of length 2, capacity 2 = {{first = 0, second = 0}, {first = 0, second = 0}}
        current_lengths = std::vector of length 2, capacity 2 = {1023.52637, 2471.98486}
        prev_pruned = std::vector of length 6, capacity 64 = {0, 0, 0, 0, 0, 0}
        prev_coordinate = @0x7fffe8004100: {lon = {__value = -86250855}, lat = {__value = 41752166}}
        current_viterbi = std::vector of length 2, capacity 2 = {-7.5324821387118437, -152.37832005092463}
        current_timestamps_list = std::vector of length 2, capacity 2 = {{phantom_node = {forward_segment_id = {id = 32496545, enabled = 1}, reverse_segment_id = {
                id = 33139150, enabled = 0}, name_id = 7791152, forward_weight = 54, reverse_weight = 302, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18123816, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250923}, lat = {__value = 41761367}},
              input_location = {lon = {__value = -86250905}, lat = {__value = 41761367}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}, {phantom_node = {forward_segment_id = {id = 32496545, enabled = 0},
              reverse_segment_id = {id = 33139150, enabled = 1}, name_id = 7791152, forward_weight = 54, reverse_weight = 302, forward_offset = 0, reverse_offset = 0,
              packed_geometry_id = 18123816, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250923}, lat = {__value = 41761367}},
              input_location = {lon = {__value = -86250905}, lat = {__value = 41761367}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001',
              backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}}
        current_coordinate = @0x7fffe8004108: {lon = {__value = -86250905}, lat = {__value = 41761367}}
        haversine_distance = 1023.4015950915243
        duration_upper_bound = 7558
        gap_in_trace = false
        trace_split = false
        t = 1
        use_timestamps = false
        median_sample_time = 1
        max_broken_time = 10
        max_distance_delta = 2000
        emission_log_probabilities = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {-2.6444365554025504, -2.6444365554025504,
            -3.3738074353139504, -3.3738074353139504, -3.3738074353139504, -3.3738074353139504}, std::vector of length 2, capacity 2 = {-2.572981144269411,
            -2.572981144269411}, std::vector of length 2, capacity 2 = {-2.6076412482218378, -2.6076412482218378}}
        model = {viterbi = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {-2.6444365554025504, -2.6444365554025504, -3.3738074353139504,
              -3.3738074353139504, -3.3738074353139504, -3.3738074353139504}, std::vector of length 2, capacity 2 = {-7.5324821387118437, -152.37832005092463},
            std::vector of length 2, capacity 2 = {-inf, -inf}}, parents = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {{first = 0,
                second = 0}, {first = 0, second = 1}, {first = 0, second = 2}, {first = 0, second = 3}, {first = 0, second = 4}, {first = 0, second = 5}},
            std::vector of length 2, capacity 2 = {{first = 0, second = 0}, {first = 0, second = 0}}, std::vector of length 2, capacity 2 = {{first = 0, second = 0}, {
                first = 0, second = 0}}}, path_distances = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {0, 0, 0, 0, 0, 0},
            std::vector of length 2, capacity 2 = {1023.52637, 2471.98486}, std::vector of length 2, capacity 2 = {0, 0}},
          pruned = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 64 = {0, 0, 0, 0, 0, 0}, std::vector of length 2, capacity 64 = {
              0, 0}, std::vector of length 2, capacity 64 = {1, 1}}, breakage = std::vector of length 3, capacity 64 = {0, 0, 1},
          candidates_list = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {{phantom_node = {forward_segment_id = {id = 32466588,
                    enabled = 1}, reverse_segment_id = {id = 32496570, enabled = 0}, name_id = 5580064, forward_weight = 77, reverse_weight = 3, forward_offset = 0,
                  reverse_offset = 0, packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884}, lat = {
                      __value = 41752165}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {
                    id = 32466588, enabled = 0}, reverse_segment_id = {id = 32496570, enabled = 1}, name_id = 5580064, forward_weight = 77, reverse_weight = 3,
                  forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884},
                    lat = {__value = 41752165}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {
                    id = 32494581, enabled = 1}, reverse_segment_id = {id = 32496571, enabled = 0}, name_id = 5580064, forward_weight = 79, reverse_weight = 0,
                  forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885},
                    lat = {__value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {
                    id = 32496572, enabled = 1}, reverse_segment_id = {id = 32530404, enabled = 0}, name_id = 47888, forward_weight = 0, reverse_weight = 1103,
                  forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885},
                    lat = {__value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {
                    id = 32494581, enabled = 0}, reverse_segment_id = {id = 32496571, enabled = 1}, name_id = 5580064, forward_weight = 79, reverse_weight = 0,
                  forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885},
                    lat = {__value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {
                    id = 32496572, enabled = 0}, reverse_segment_id = {id = 32530404, enabled = 1}, name_id = 47888, forward_weight = 0, reverse_weight = 1103,
                  forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885},
                    lat = {__value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                  forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}}, std::vector of length 2, capacity 2 = {{
                phantom_node = {forward_segment_id = {id = 32496545, enabled = 1}, reverse_segment_id = {id = 33139150, enabled = 0}, name_id = 7791152,
                  forward_weight = 54, reverse_weight = 302, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123816, component = {id = 12580,
                    is_tiny = 0}, location = {lon = {__value = -86250923}, lat = {__value = 41761367}}, input_location = {lon = {__value = -86250905}, lat = {
                      __value = 41761367}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}, {
                phantom_node = {forward_segment_id = {id = 32496545, enabled = 0}, reverse_segment_id = {id = 33139150, enabled = 1}, name_id = 7791152,
                  forward_weight = 54, reverse_weight = 302, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123816, component = {id = 12580,
                    is_tiny = 0}, location = {lon = {__value = -86250923}, lat = {__value = 41761367}}, input_location = {lon = {__value = -86250905}, lat = {
                      __value = 41761367}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}},
            std::vector of length 2, capacity 2 = {{phantom_node = {forward_segment_id = {id = 33100368, enabled = 1}, reverse_segment_id = {id = 33139139,
                    enabled = 0}, name_id = 7791152, forward_weight = 257, reverse_weight = 11, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18449185,
                  component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250701}, lat = {__value = 41774492}}, input_location = {lon = {
                      __value = -86250677}, lat = {__value = 41774492}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'},
                distance = 1.9907888208328994}, {phantom_node = {forward_segment_id = {id = 33100368, enabled = 0}, reverse_segment_id = {id = 33139139, enabled = 1},
                  name_id = 7791152, forward_weight = 257, reverse_weight = 11, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18449185, component = {
                    id = 12580, is_tiny = 0}, location = {lon = {__value = -86250701}, lat = {__value = 41774492}}, input_location = {lon = {__value = -86250677},
                    lat = {__value = 41774492}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'},
                distance = 1.9907888208328994}}}, emission_log_probabilities = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {
              -2.6444365554025504, -2.6444365554025504, -3.3738074353139504, -3.3738074353139504, -3.3738074353139504, -3.3738074353139504},
            std::vector of length 2, capacity 2 = {-2.572981144269411, -2.572981144269411}, std::vector of length 2, capacity 2 = {-2.6076412482218378,
              -2.6076412482218378}}}
        initial_timestamp = 0
        forward_heap = @0x7fffe8004d90: {inserted_nodes = std::vector of length 63, capacity 64 = {{node = 32530404, key = 0, weight = -1103, data = {
                parent = 32530404}}, {node = 32496570, key = 0, weight = -730, data = {parent = 32530404}}, {node = 32496571, key = 0, weight = -695, data = {
                parent = 32530404}}, {node = 32466586, key = 0, weight = -604, data = {parent = 32496570}}, {node = 32466589, key = 0, weight = -656, data = {
                parent = 32496570}}, {node = 32530403, key = 0, weight = 139, data = {parent = 32496570}}, {node = 32530405, key = 0, weight = 193, data = {
                parent = 32496570}}, {node = 32494569, key = 0, weight = 61, data = {parent = 32496571}}, {node = 32494577, key = 0, weight = -585, data = {
                parent = 32496571}}, {node = 32494578, key = 0, weight = -546, data = {parent = 32496571}}, {node = 32494580, key = 0, weight = -599, data = {
                parent = 32496571}}, {node = 32494600, key = 0, weight = 965, data = {parent = 32496571}}, {node = 32445916, key = 0, weight = 1246, data = {
                parent = 32466586}}, {node = 32456745, key = 0, weight = 640, data = {parent = 32466586}}, {node = 32456748, key = 0, weight = 611, data = {
                parent = 32466586}}, {node = 32480939, key = 0, weight = 1198, data = {parent = 32466586}}, {node = 32514642, key = 0, weight = 852, data = {
                parent = 32466586}}, {node = 32514643, key = 0, weight = 321, data = {parent = 32466586}}, {node = 32525754, key = 0, weight = 1453, data = {
                parent = 32466586}}, {node = 32494581, key = 0, weight = 430, data = {parent = 32494584}}, {node = 32447592, key = 0, weight = 1481, data = {
                parent = 32499266}}, {node = 32449366, key = 0, weight = 1554, data = {parent = 32499266}}, {node = 32485131, key = 0, weight = 1207, data = {
                parent = 32515429}}, {node = 32494584, key = 0, weight = 61, data = {parent = 32494578}}, {node = 32496544, key = 0, weight = 861, data = {
                parent = 32494578}}, {node = 32496545, key = 0, weight = 840, data = {parent = 32494578}}, {node = 32496558, key = 0, weight = 705, data = {
                parent = 32494578}}, {node = 32496560, key = 0, weight = 417, data = {parent = 32494578}}, {node = 32496561, key = 0, weight = 397, data = {
                parent = 32494578}}, {node = 32515427, key = 0, weight = 549, data = {parent = 32530405}}, {node = 32515432, key = 0, weight = 1044, data = {
                parent = 32530405}}, {node = 32521904, key = 0, weight = 1023, data = {parent = 32494578}}, {node = 33139150, key = 0, weight = 2084, data = {
                parent = 32494578}}, {node = 66369724, key = 0, weight = 2067, data = {parent = 32499266}}, {node = 32444161, key = 0, weight = 976, data = {
                parent = 32494569}}, {node = 32444164, key = 0, weight = 882, data = {parent = 32494569}}, {node = 32507035, key = 0, weight = 1487, data = {
                parent = 32494569}}, {node = 32514629, key = 0, weight = 292, data = {parent = 32494569}}, {node = 32519048, key = 0, weight = 1483, data = {
                parent = 32494569}}, {node = 33139037, key = 0, weight = 1200, data = {parent = 32494569}}, {node = 60772795, key = 0, weight = 844, data = {
                parent = 32494569}}, {node = 32494586, key = 0, weight = 587, data = {parent = 32530403}}, {node = 32494588, key = 0, weight = 659, data = {
                parent = 32530403}}, {node = 32456618, key = 0, weight = 283, data = {parent = 32530405}}, {node = 32499266, key = 0, weight = 1123, data = {
                parent = 32530405}}, {node = 32515429, key = 0, weight = 1075, data = {parent = 32530405}}, {node = 32488015, key = 0, weight = 1171, data = {
                parent = 32456618}}, {node = 32511997, key = 0, weight = 911, data = {parent = 32515427}}, {node = 32515410, key = 0, weight = 1113, data = {
                parent = 32511997}}, {node = 33122896, key = 0, weight = 2712, data = {parent = 32511997}}, {node = 33160961, key = 0, weight = 1343, data = {
                parent = 32511997}}, {node = 68295450, key = 0, weight = 1954, data = {parent = 32511997}}, {node = 32456619, key = 0, weight = 1481, data = {
                parent = 32515427}}, {node = 32515416, key = 0, weight = 1803, data = {parent = 32511997}}, {node = 32474627, key = 0, weight = 2170, data = {
                parent = 32515429}}, {node = 32499265, key = 0, weight = 2103, data = {parent = 32515429}}, {node = 32474186, key = 0, weight = 1833, data = {
                parent = 32485131}}, {node = 32496583, key = 0, weight = 1550, data = {parent = 32485131}}, {node = 32526336, key = 0, weight = 2346, data = {
                parent = 32485131}}, {node = 32449361, key = 0, weight = 1710, data = {parent = 32449366}}, {node = 32472126, key = 0, weight = 2107, data = {
                parent = 32449366}}, {node = 32477032, key = 0, weight = 2322, data = {parent = 32449366}}, {node = 75071192, key = 0, weight = 2231, data = {
                parent = 32449366}}}, heap = std::vector of length 1, capacity 64 = {{index = 0, weight = -2147483648}}, node_index = {
            nodes = std::unordered_map with 63 elements = {[75071192] = 62, [32477032] = 61, [32472126] = 60, [32449361] = 59, [32526336] = 58, [32496583] = 57,
              [32474186] = 56, [32499265] = 55, [32474627] = 54, [32515416] = 53, [32456619] = 52, [68295450] = 51, [33160961] = 50, [33122896] = 49, [32515410] = 48,
              [32511997] = 47, [32488015] = 46, [32515429] = 45, [32499266] = 44, [32456618] = 43, [32494588] = 42, [32494586] = 41, [60772795] = 40, [33139037] = 39,
              [32519048] = 38, [32514629] = 37, [32507035] = 36, [32444164] = 35, [32444161] = 34, [66369724] = 33, [33139150] = 32, [32521904] = 31, [32515432] = 30,
              [32515427] = 29, [32496561] = 28, [32496560] = 27, [32496558] = 26, [32496545] = 25, [32496544] = 24, [32494584] = 23, [32485131] = 22, [32449366] = 21,
              [32447592] = 20, [32494581] = 19, [32525754] = 18, [32514643] = 17, [32514642] = 16, [32480939] = 15, [32456748] = 14, [32456745] = 13, [32445916] = 12,
              [32494600] = 11, [32494580] = 10, [32494578] = 9, [32494577] = 8, [32494569] = 7, [32530405] = 6, [32530403] = 5, [32466589] = 4, [32466586] = 3,
              [32496571] = 2, [32496570] = 1, [32530404] = 0}}}
        reverse_heap = @0x7fffe8007070: {inserted_nodes = std::vector of length 1, capacity 1 = {{node = 32496545, key = 0, weight = 54, data = {parent = 32496545}}},
          heap = std::vector of length 1, capacity 2 = {{index = 0, weight = -2147483648}}, node_index = {nodes = std::unordered_map with 1 elements = {[32496545] = 0}}}
        forward_core_heap = @0x7fffe8009190: {inserted_nodes = std::vector of length 37, capacity 64 = {{node = 32466589, key = 0, weight = -656, data = {
                parent = 32496570}}, {node = 32494580, key = 0, weight = -599, data = {parent = 32496571}}, {node = 32514643, key = 6, weight = 321, data = {
                parent = 32466586}}, {node = 32496560, key = 5, weight = 417, data = {parent = 32494578}}, {node = 32456748, key = 11, weight = 611, data = {
                parent = 32466586}}, {node = 32456745, key = 3, weight = 282, data = {parent = 32466589}}, {node = 32496545, key = 0, weight = -118, data = {
                parent = 32494580}}, {node = 32514642, key = 9, weight = 507, data = {parent = 32494580}}, {node = 32496544, key = 0, weight = -97, data = {
                parent = 32494580}}, {node = 32521904, key = 0, weight = 65, data = {parent = 32494580}}, {node = 32515432, key = 1, weight = 109, data = {
                parent = 32526336}}, {node = 32515410, key = 12, weight = 1113, data = {parent = 32511997}}, {node = 32480939, key = 26, weight = 1198, data = {
                parent = 32466586}}, {node = 32445916, key = 31, weight = 1246, data = {parent = 32466586}}, {node = 33160961, key = 30, weight = 582, data = {
                parent = 32521904}}, {node = 32525754, key = 16, weight = 1453, data = {parent = 32466586}}, {node = 32447592, key = 8, weight = 621, data = {
                parent = 32526336}}, {node = 32519048, key = 18, weight = 1004, data = {parent = 32496544}}, {node = 32507035, key = 19, weight = 776, data = {
                parent = 32496544}}, {node = 32496583, key = 21, weight = 881, data = {parent = 32466589}}, {node = 32449361, key = 10, weight = 850, data = {
                parent = 32526336}}, {node = 32474186, key = 2, weight = 119, data = {parent = 32466589}}, {node = 68295450, key = 23, weight = 1068, data = {
                parent = 32521904}}, {node = 66369724, key = 24, weight = 1207, data = {parent = 32526336}}, {node = 33139150, key = 25, weight = 1126, data = {
                parent = 32494580}}, {node = 32499265, key = 13, weight = 911, data = {parent = 32526336}}, {node = 32472126, key = 27, weight = 2107, data = {
                parent = 32449366}}, {node = 75071192, key = 29, weight = 2231, data = {parent = 32449366}}, {node = 32477032, key = 28, weight = 2322, data = {
                parent = 32449366}}, {node = 32526336, key = 0, weight = -79, data = {parent = 32466589}}, {node = 33122896, key = 22, weight = 1951, data = {
                parent = 32521904}}, {node = 33090203, key = 14, weight = 1909, data = {parent = 32496545}}, {node = 33122844, key = 15, weight = 551, data = {
                parent = 32496545}}, {node = 33139143, key = 7, weight = 457, data = {parent = 32496545}}, {node = 33141542, key = 17, weight = 1122, data = {
                parent = 32496545}}, {node = 33141551, key = 20, weight = 1681, data = {parent = 32496545}}, {node = 32521898, key = 4, weight = 284, data = {
                parent = 32496544}}}, heap = std::vector of length 32, capacity 64 = {{index = 0, weight = -2147483648}, {index = 10, weight = 109}, {index = 21,
              weight = 119}, {index = 5, weight = 282}, {index = 36, weight = 284}, {index = 3, weight = 417}, {index = 2, weight = 321}, {index = 33, weight = 457}, {
              index = 16, weight = 621}, {index = 7, weight = 507}, {index = 20, weight = 850}, {index = 4, weight = 611}, {index = 11, weight = 1113}, {index = 25,
              weight = 911}, {index = 31, weight = 1909}, {index = 32, weight = 551}, {index = 15, weight = 1453}, {index = 34, weight = 1122}, {index = 17,
              weight = 1004}, {index = 18, weight = 776}, {index = 35, weight = 1681}, {index = 19, weight = 881}, {index = 30, weight = 1951}, {index = 22,
              weight = 1068}, {index = 23, weight = 1207}, {index = 24, weight = 1126}, {index = 12, weight = 1198}, {index = 26, weight = 2107}, {index = 28,
              weight = 2322}, {index = 27, weight = 2231}, {index = 14, weight = 582}, {index = 13, weight = 1246}}, node_index = {
            nodes = std::unordered_map with 37 elements = {[32521898] = 36, [33141551] = 35, [33141542] = 34, [33139143] = 33, [33122844] = 32, [33090203] = 31,
              [33122896] = 30, [32526336] = 29, [32477032] = 28, [75071192] = 27, [32472126] = 26, [32499265] = 25, [33139150] = 24, [66369724] = 23, [68295450] = 22,
              [32474186] = 21, [32449361] = 20, [32496583] = 19, [32507035] = 18, [32519048] = 17, [32447592] = 16, [32525754] = 15, [33160961] = 14, [32445916] = 13,
              [32480939] = 12, [32515410] = 11, [32515432] = 10, [32521904] = 9, [32496544] = 8, [32514642] = 7, [32496545] = 6, [32456745] = 5, [32456748] = 4,
              [32496560] = 3, [32514643] = 2, [32494580] = 1, [32466589] = 0}}}
        reverse_core_heap = @0x7fffe800b2b0: {inserted_nodes = std::vector of length 37, capacity 128 = {{node = 32496545, key = 0, weight = 54, data = {
                parent = 32496545}}, {node = 32494580, key = 0, weight = 535, data = {parent = 32496545}}, {node = 32496560, key = 4, weight = 1551, data = {
                parent = 32496545}}, {node = 32514643, key = 6, weight = 1636, data = {parent = 32496545}}, {node = 32515410, key = 0, weight = 438, data = {
                parent = 32496545}}, {node = 32519048, key = 0, weight = 385, data = {parent = 32496545}}, {node = 33139150, key = 3, weight = 1369, data = {
                parent = 32496545}}, {node = 33141551, key = 0, weight = 822, data = {parent = 32496545}}, {node = 66453318, key = 10, weight = 1573, data = {
                parent = 32496545}}, {node = 32496544, key = 2, weight = 1486, data = {parent = 32519048}}, {node = 32449361, key = 8, weight = 1647, data = {
                parent = 32515410}}, {node = 32456745, key = 18, weight = 2412, data = {parent = 32494580}}, {node = 32496583, key = 1, weight = 1106, data = {
                parent = 32494580}}, {node = 32499265, key = 11, weight = 1609, data = {parent = 32515410}}, {node = 32514642, key = 12, weight = 1686, data = {
                parent = 32494580}}, {node = 32521904, key = 13, weight = 1808, data = {parent = 32515410}}, {node = 32526336, key = 15, weight = 1689, data = {
                parent = 32515410}}, {node = 33122896, key = 0, weight = 616, data = {parent = 32515410}}, {node = 63276247, key = 29, weight = 2737, data = {
                parent = 33141551}}, {node = 33100369, key = 22, weight = 2241, data = {parent = 33141551}}, {node = 33122479, key = 23, weight = 3418, data = {
                parent = 33141551}}, {node = 33129385, key = 24, weight = 3247, data = {parent = 33141551}}, {node = 33133435, key = 25, weight = 3129, data = {
                parent = 33141551}}, {node = 33133443, key = 26, weight = 3510, data = {parent = 33141551}}, {node = 33139141, key = 27, weight = 2387, data = {
                parent = 33141551}}, {node = 33141492, key = 28, weight = 3391, data = {parent = 33141551}}, {node = 33153035, key = 14, weight = 2176, data = {
                parent = 33141551}}, {node = 33157056, key = 30, weight = 2760, data = {parent = 33141551}}, {node = 33162532, key = 31, weight = 2460, data = {
                parent = 33141551}}}, heap = std::vector of length 32, capacity 64 = {{index = 0, weight = -2147483648}, {index = 12, weight = 1106}, {index = 9,
              weight = 1486}, {index = 6, weight = 1369}, {index = 2, weight = 1551}, {index = 26, weight = 1511}, {index = 3, weight = 1636}, {index = 19,
              weight = 1452}, {index = 10, weight = 1647}, {index = 23, weight = 2087}, {index = 8, weight = 1573}, {index = 13, weight = 1609}, {index = 14,
              weight = 1686}, {index = 15, weight = 1808}, {index = 34, weight = 2176}, {index = 16, weight = 1689}, {index = 20, weight = 2426}, {index = 21,
              weight = 2335}, {index = 11, weight = 2412}, {index = 22, weight = 2169}, {index = 24, weight = 2102}, {index = 25, weight = 1670}, {index = 27,
              weight = 2241}, {index = 28, weight = 3418}, {index = 29, weight = 3247}, {index = 30, weight = 3129}, {index = 31, weight = 3510}, {index = 32,
              weight = 2387}, {index = 33, weight = 3391}, {index = 18, weight = 2737}, {index = 35, weight = 2760}, {index = 36, weight = 2460}}, node_index = {
            nodes = std::unordered_map with 37 elements = {[33162532] = 36, [33157056] = 35, [33153035] = 34, [33141492] = 33, [33139141] = 32, [33133443] = 31,
              [33133435] = 30, [33129385] = 29, [33122479] = 28, [32521898] = 26, [33100369] = 27, [33164291] = 25, [33160961] = 24, [33153020] = 23, [33141534] = 22,
              [33139143] = 21, [33133436] = 20, [33122844] = 19, [63276247] = 18, [33122896] = 17, [32526336] = 16, [32521904] = 15, [32514642] = 14, [32499265] = 13,
              [32496583] = 12, [32456745] = 11, [32449361] = 10, [32496544] = 9, [66453318] = 8, [33141551] = 7, [33139150] = 6, [32519048] = 5, [32515410] = 4,
              [32514643] = 3, [32496560] = 2, [32494580] = 1, [32496545] = 0}}}
        breakage_begin = 18446744073709551615
        split_points = std::vector of length 0, capacity 0
        prev_unbroken_timestamps = std::vector of length 1, capacity 3 = {0}
        sub_matching_begin = 140737319953424
        sub_matchings = std::vector of length 0, capacity 0
#10 0x0000000000e47869 in osrm::engine::plugins::MatchPlugin::HandleRequest (this=0x10fb8d0, facade=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 3, weak 0) 0x7fffe8004160, parameters=...,
    json_result=...) at /home/travis/build/Project-OSRM/node-osrm/deps/osrm-backend-Debug/src/engine/plugins/match.cpp:183
        time_increases_monotonically = true
        search_radiuses = std::vector of length 3, capacity 3 = {15, 15, 15}
        candidates_lists = std::vector of length 3, capacity 3 = {std::vector of length 6, capacity 6 = {{phantom_node = {forward_segment_id = {id = 32466588,
                  enabled = 1}, reverse_segment_id = {id = 32496570, enabled = 0}, name_id = 5580064, forward_weight = 77, reverse_weight = 3, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884}, lat = {
                    __value = 41752165}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {id = 32466588,
                  enabled = 0}, reverse_segment_id = {id = 32496570, enabled = 1}, name_id = 5580064, forward_weight = 77, reverse_weight = 3, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18110042, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250884}, lat = {
                    __value = 41752165}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 2.4089428154667467}, {phantom_node = {forward_segment_id = {id = 32494581,
                  enabled = 1}, reverse_segment_id = {id = 32496571, enabled = 0}, name_id = 5580064, forward_weight = 79, reverse_weight = 0, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {
                    __value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32496572,
                  enabled = 1}, reverse_segment_id = {id = 32530404, enabled = 0}, name_id = 47888, forward_weight = 0, reverse_weight = 1103, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {
                    __value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32494581,
                  enabled = 0}, reverse_segment_id = {id = 32496571, enabled = 1}, name_id = 5580064, forward_weight = 79, reverse_weight = 0, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18122698, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {
                    __value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}, {phantom_node = {forward_segment_id = {id = 32496572,
                  enabled = 0}, reverse_segment_id = {id = 32530404, enabled = 1}, name_id = 47888, forward_weight = 0, reverse_weight = 1103, forward_offset = 0,
                reverse_offset = 0, packed_geometry_id = 18123828, component = {id = 12580, is_tiny = 0}, location = {lon = {__value = -86250885}, lat = {
                    __value = 41752220}}, input_location = {lon = {__value = -86250855}, lat = {__value = 41752166}}, fwd_segment_position = 0,
                forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 6.5016574412805603}}, std::vector of length 2, capacity 2 = {{
              phantom_node = {forward_segment_id = {id = 32496545, enabled = 1}, reverse_segment_id = {id = 33139150, enabled = 0}, name_id = 7791152,
                forward_weight = 54, reverse_weight = 302, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123816, component = {id = 12580, is_tiny = 0},
                location = {lon = {__value = -86250923}, lat = {__value = 41761367}}, input_location = {lon = {__value = -86250905}, lat = {__value = 41761367}},
                fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}, {phantom_node = {
                forward_segment_id = {id = 32496545, enabled = 0}, reverse_segment_id = {id = 33139150, enabled = 1}, name_id = 7791152, forward_weight = 54,
                reverse_weight = 302, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18123816, component = {id = 12580, is_tiny = 0}, location = {lon = {
                    __value = -86250923}, lat = {__value = 41761367}}, input_location = {lon = {__value = -86250905}, lat = {__value = 41761367}},
                fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.4933971111301614}},
          std::vector of length 2, capacity 2 = {{phantom_node = {forward_segment_id = {id = 33100368, enabled = 1}, reverse_segment_id = {id = 33139139, enabled = 0},
                name_id = 7791152, forward_weight = 257, reverse_weight = 11, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18449185, component = {
                  id = 12580, is_tiny = 0}, location = {lon = {__value = -86250701}, lat = {__value = 41774492}}, input_location = {lon = {__value = -86250677}, lat = {
                    __value = 41774492}}, fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.9907888208328994}, {
              phantom_node = {forward_segment_id = {id = 33100368, enabled = 0}, reverse_segment_id = {id = 33139139, enabled = 1}, name_id = 7791152,
                forward_weight = 257, reverse_weight = 11, forward_offset = 0, reverse_offset = 0, packed_geometry_id = 18449185, component = {id = 12580, is_tiny = 0},
                location = {lon = {__value = -86250701}, lat = {__value = 41774492}}, input_location = {lon = {__value = -86250677}, lat = {__value = 41774492}},
                fwd_segment_position = 0, forward_travel_mode = 1 '\001', backward_travel_mode = 1 '\001'}, distance = 1.9907888208328994}}}
        sub_matchings = std::vector of length 0, capacity 0
        sub_routes = std::vector of length -142205, capacity -586405579719 = {{unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length -4, capacity -4 = {, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0,
            unpacked_alternative = std::vector of length 0, capacity 0, segment_end_coordinates = std::vector of length 0, capacity 0,
            source_traversed_in_reverse = std::vector of length 0, capacity 0, target_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_source_traversed_in_reverse = std::vector of length 0, capacity 0, alt_target_traversed_in_reverse = std::vector of length 0, capacity 0,
            shortest_path_length = 0, alternative_path_length = 0}, {unpacked_path_segments = std::vector of length 0, capacity 0 = {, {
            unpacked_path_segments = std::vector of length 0, capacity 0, unpacked_alternative = std::vector of length 0, capacity 0,
            segment_end_coordinates = std::vector of length 0, capacity 0, source_traversed_in_reverse = std::vector of length 0, capacity 0,
            target_traversed_in_reverse = std::vector of length 0, capacity 0, alt_source_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_target_traversed_in_reverse = std::vector of length 0, capacity 0, shortest_path_length = 0, alternative_path_length = 0}, {
            unpacked_path_segments = std::vector of length 0, capacity 0, unpacked_alternative = std::vector of length 0, capacity 0,
            segment_end_coordinates = std::vector of length 0, capacity 0, source_traversed_in_reverse = std::vector of length 0, capacity 0,
            target_traversed_in_reverse = std::vector of length 0, capacity 0, alt_source_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_target_traversed_in_reverse = std::vector of length 0, capacity 0, shortest_path_length = 0, alternative_path_length = 0}, {
            unpacked_path_segments = std::vector of length 0, capacity 0, unpacked_alternative = std::vector of length 0, capacity 0,
            segment_end_coordinates = std::vector of length 0, capacity 0, source_traversed_in_reverse = std::vector of length 0, capacity 0,
            target_traversed_in_reverse = std::vector of length 0, capacity 0, alt_source_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_target_traversed_in_reverse = std::vector of length 0, capacity 0, shortest_path_length = 0, alternative_path_length = 0}, {
            unpacked_path_segments = std::vector of length 0, capacity 0, unpacked_alternative = std::vector of length 0, capacity 0,
            segment_end_coordinates = std::vector of length 0, capacity 0, source_traversed_in_reverse = std::vector of length 0, capacity 0,
            target_traversed_in_reverse = std::vector of length 0, capacity 0, alt_source_traversed_in_reverse = std::vector of length 0, capacity 0,
            alt_target_traversed_in_reverse = std::vector of length 0, capacity 0, shortest_path_length = 0, alternative_path_length = 0}, {
            unpacked_path_segments = std::vector of length 0, capacity 0, unpacked_alternative = std::vector of length 0, capacity 0,
            segment_end_coordinates = std::vector of length 0, capacity 0, source_traversed_in_reverse = std::vector of length 0, capacity 0,

The map-matched request in question is:

curl 'http://localhost:5000/match/v1/driving/-86.250855,41.752166;-86.250905,41.761367;-86.250677,41.774492'

but note that the assertion does not occur when no traffic data is applied and we use the plain Lua profile data.

@oxidase
Copy link
Contributor

oxidase commented Feb 2, 2017

@danpat can you add traffic csv file and git sha?

@danpat
Copy link
Member Author

danpat commented Feb 2, 2017

@oxidase it's with the 5.5.4 release binaries (via node-osrm). Still working on tracking down the original data, all we have saved right now are the processed datafiles, the traffic data was ephemeral.

@oxidase
Copy link
Contributor

oxidase commented Feb 2, 2017

@danpat I did not reproduce exactly the assertion but some overflow that gives result:

            "confidence": 0.977336, 
            "distance": 2477.3, 
            "duration": -214748203.8, 

steps to reproduce:

osmconvert us-midwest-latest.osm.pbf -b=-86.3,41.7,-86.2,41.83 -o=map.osm.pbf
./osrm-extract map.osm.pbf -p ../profiles/car.lua --generate-edge-lookup
echo -e "181758712,181709197,0\n181709197,181758712,0" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv
echo -e "181758743,181695325,0\n181695325,181758743,0\n" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv
./osrm-routed map.osrm

and http 'http://localhost:5000/match/v1/driving/-86.250855,41.752166;-86.250905,41.761367;-86.250677,41.774492'

But the following speed updates

./osrm-extract map.osm.pbf -p ../profiles/car.lua --generate-edge-lookup
echo -e "181758712,181709197,0\n181709197,181758712,0\n" > test1.csv
echo -e "181758743,181695325,0\n181695325,181758743,0\n" > test2.csv
./osrm-contract map.osrm --segment-speed-file test1.csv --segment-speed-file test2.csv
./osrm-extract map.osm.pbf -p ../profiles/car.lua --generate-edge-lookup
echo -e "181758743,181695325,0\n181695325,181758743,0\n181758712,181709197,0\n181709197,181758712,0" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv
./osrm-extract map.osm.pbf -p ../profiles/car.lua --generate-edge-lookup
echo -e "181758743,181695325,0\n181695325,181758743,0\n" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv
echo -e "181758712,181709197,0\n181709197,181758712,0" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv

are ok and result to

            "confidence": 0.315005, 
            "distance": 2715.2, 
            "duration": 248.2, 

It can be a different issue, but it shows that something related to an updates history is broken. So just having a single csv file may be not enough and the history of updates will be needed to reproduce the assertion.

@MoKob
Copy link

MoKob commented Feb 2, 2017

The assertion triggering is the same as already reported in #3429.

Given the involvement of negative weights, my guess would be the same problem happening. The algorithm thinks there might be a self-loop, but there isn't. This detection is based on negative weights, which we don't support right now.

@TheMarex
Copy link
Member

TheMarex commented Feb 2, 2017

Wow finally a reproducible edge case. Some pointers on how to debug this:

  1. Acquire the geometry ID of the updated segments here
  2. Dump all computed value for the weight/offset here when the data.packed_geometry_id matches.

If that does not yield anything the problem will be the weight of a turn edge (maybe some sort of overflow?). Tracking the updated edge-based-edge in the contractor is a little bit more nasty, I would recommend approaching it from the other side and logging the weight here and here

@oxidase
Copy link
Contributor

oxidase commented Feb 6, 2017

The problem is still not reproducible, but the origin for the assertion in osrm-routed is in different weights in contractor::QueryEdge::EdgeData and packed weights:

Edge-based node 32530404
    edge-based edge 186788864 -> 32496570 {id: 66613438, weight 373, forward}
        node-based nodes: 85435475 85356757
        OSM ids: 181864155 181758743
        weights: 1103
    edge-based edge 186788865 -> 32496571 {id: 66613439, weight 408, forward}
        node-based nodes: 85435475 85356757
        OSM ids: 181864155 181758743
        weights: 1103

The snapped phantom is

source_phantom = (const osrm::engine::PhantomNode &) { ... reverse_segment_id = {id = 32530404, enabled = 1}, ...,  reverse_weight = 1103, ..},
  input_location = {lon = -86.250855, lat = 41.752166}}, ...}

and at to_weight = 373-1103 = -730 that leads to incorrect routing.

@TheMarex
Copy link
Member

TheMarex commented Feb 6, 2017

@oxidase that would mean the Edge is not getting updated properly. Can you find out if that edge in the query graph is a shortcut? (EdgeData::shortcut should be set)

If it is not a shortcut the update routine in osrm-contract is incorrect. The edge weights are not summed up properly to build the edge based edge weight.

If it is a shortcut there might be something funky in the contractor going on, that would lead to an invalid weight calculation.

@oxidase
Copy link
Contributor

oxidase commented Feb 6, 2017

@TheMarex it is not a shortcut. Without traffic updates the edge weight is 221. With echo -e "181864155,181758743,4,1103\n181758743,181864155,4,1103" > test.csv update weight value becomes 1103, and QueryEdge::EdgeData changed to 1123. So some steps are missing to reproduce.

@oxidase oxidase added this to the 5.6.0 milestone Feb 7, 2017
@oxidase
Copy link
Contributor

oxidase commented Feb 7, 2017

I have reproduced the issue with the following steps:

osmconvert us-midwest-latest.osm.pbf -b=-86.3,41.7,-86.2,41.83 -o=map.osm.pbf
./osrm-extract map.osm.pbf -p ../profiles/car.lua --generate-edge-lookup
echo -e "181758743,181695325,4\n181695325,181758743,4\n181755897,181758743,4\n181758743,181755897,4" > test.csv
./osrm-contract map.osrm --segment-speed-file test.csv
./osrm-contract map.osrm
./osrm-routed map.osrm

For query http 'http://localhost:5000/route/v1/driving/-86.250855,41.752166;-86.2508962,41.7536337' osrm-routed fails with:

[assert][140020832794368] /home/miha/mapbox/osrm-backend/include/engine/routing_algorithms/routing_base.hpp:117
in: void osrm::engine::routing_algorithms::BasicRoutingInterface::UnpackPath(std::shared_ptr<const osrm::engine::datafacade::BaseDataFacade>, RandomIter, RandomIter, const osrm::engine::PhantomNodes&, std::vector<osrm::engine::PathData>&) const [with RandomIter = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >]: *packed_path_begin == phantom_node_pair.source_phantom.forward_segment_id.id || *packed_path_begin == phantom_node_pair.source_phantom.reverse_segment_id.id

The problem is in not in OSRM but in broken weights consistency in .hsgr and .geometry files for not updated segments in the second osrm-contract run. The inconsistency leads to negative weights in snapped phantom weights.

I will add some assertions in osrm-contract to abort during contraction and not at the routing if weights are inconsistent.

@TheMarex
Copy link
Member

This was resolved by not running osrm-contract multiple times on the same .geometries file, which lead to an inconsistent state in the edge weights.

@liyuan989
Copy link

The problem is in not in OSRM but in broken weights consistency in .hsgr and .geometry files for not updated segments in the second osrm-contract run. The inconsistency leads to negative weights in snapped phantom weights.

Why broken weights consistency leads coredump for id assert fail like this ? @oxidase
*packed_path_begin == phantom_node_pair.source_phantom.forward_segment_id.id || *packed_path_begin == phantom_node_pair.source_phantom.reverse_segment_id.id

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants