-
Notifications
You must be signed in to change notification settings - Fork 430
Closed
Description
The VPR test test_odd_even_routing (as shown below) has consistently failed in CI (U: C++ Unit Tests) since 2b6a935 (included) in the master branch.
vtr-verilog-to-routing/vpr/test/test_odd_even_routing.cpp
Lines 228 to 264 in 3e53a93
| SECTION("Test case where multiple traffic flows are router, and routes are checked for turn legality and deadlock freedom.") { | |
| std::random_device device; | |
| std::mt19937 rand_num_gen(device()); | |
| std::uniform_int_distribution<std::mt19937::result_type> dist(0, 99); | |
| NocTrafficFlows traffic_flow_storage; | |
| for (int i = 0; i < 100; i++) { | |
| auto src_blk_id = (ClusterBlockId)dist(rand_num_gen); | |
| ClusterBlockId dst_blk_id; | |
| do { | |
| dst_blk_id = (ClusterBlockId)dist(rand_num_gen); | |
| } while (src_blk_id == dst_blk_id); | |
| traffic_flow_storage.create_noc_traffic_flow("dummy_name_1", "dummy_name_2", src_blk_id, dst_blk_id, 1, 1, 1); | |
| } | |
| traffic_flow_storage.finished_noc_traffic_flows_setup(); | |
| vtr::vector<NocTrafficFlowId, std::vector<NocLinkId>> traffic_flow_routes(traffic_flow_storage.get_number_of_traffic_flows()); | |
| for (const auto& [id, traffic_flow] : traffic_flow_storage.get_all_traffic_flows().pairs()) { | |
| NocRouterId src_router_id = noc_model.get_router_at_grid_location(block_locs[traffic_flow.source_router_cluster_id].loc); | |
| NocRouterId dst_router_id = noc_model.get_router_at_grid_location(block_locs[traffic_flow.sink_router_cluster_id].loc); | |
| REQUIRE_NOTHROW(routing_algorithm.route_flow(src_router_id, dst_router_id, | |
| id, traffic_flow_routes[id], noc_model)); | |
| } | |
| ChannelDependencyGraph cdg(noc_model, traffic_flow_storage, traffic_flow_routes, block_locs); | |
| REQUIRE(cdg.has_cycles() == false); | |
| check_turn_legality(traffic_flow_routes, noc_model, routing_algorithm); | |
| } |
@AlexandreSinger @soheilshahrouz It seems that Alex's commit 2b6a935 has nothing to do with either NoC (or odd even routing). I am not sure why this test started failing since then.
The corresponding logs are here:
-------------------------------------------------------------------------------
test_route_flow
Test case where multiple traffic flows are router, and routes are checked for
turn legality and deadlock freedom.
-------------------------------------------------------------------------------
/home/runner/work/vtr-verilog-to-routing/vtr-verilog-to-routing/vpr/test/test_odd_even_routing.cpp:228
...............................................................................
/home/runner/work/vtr-verilog-to-routing/vtr-verilog-to-routing/vpr/test/test_odd_even_routing.cpp:228: FAILED:
due to a fatal error condition:
SIGSEGV - Segmentation violation signal
-------------------------------------------------------------------------------
test_route_flow
Test case where multiple traffic flows are router, and routes are checked for
turn legality and deadlock freedom.
-------------------------------------------------------------------------------
/home/runner/work/vtr-verilog-to-routing/vtr-verilog-to-routing/vpr/test/test_odd_even_routing.cpp:228
...............................................................................
/home/runner/work/vtr-verilog-to-routing/vtr-verilog-to-routing/vpr/test/test_odd_even_routing.cpp:228: FAILED:
due to unexpected exception with message:
std::bad_alloc
Showed in https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/11072279016/job/30766140332 and same in https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/11070489508/job/30760275852.
Metadata
Metadata
Assignees
Labels
No labels