Skip to content

[BUG] ROUTING_TEST CVRPTW_Retail/4 SIGABRT — "Cost should improve" assertion in execute_vrp_moves #1276

@rgsl888prabhu

Description

@rgsl888prabhu

Describe the bug

ROUTING_TEST crashed with SIGABRT on the level0_retail/retail_float_test_t.CVRPTW_Retail/4 case. The cuopt_assert invariant on the aggregate cost change after a batch of VRP local-search moves did not hold:

ROUTING_TEST: cpp/src/routing/local_search/vrp/vrp_execute.cu:466:
bool cuopt::routing::detail::execute_vrp_moves(
    solution_t<i_t, f_t, REQUEST>&, move_candidates_t<i_t, f_t>&, i_t)
    [with i_t = int; f_t = float;
     cuopt::routing::request_t REQUEST = cuopt::routing::request_t::VRP]:
Assertion `cost_before - cost_after > EPSILON && "Cost should improve!"' failed.

./ci/run_ctests.sh: line 86: 4820 Aborted (core dumped) "${gt}" --gtest_output="xml:${xml_file}" "$@"
CRASH: ROUTING_TEST died from SIGABRT (exit code 134)

The assertion fires after a batch of accepted VRP moves is executed: the planner predicted a cost decrease, but the post-execution measured cost decrease was not greater than EPSILON. This indicates either stale move-candidate data, conflicting moves applied together, or a predicted/actual delta mismatch.

Where

  • File: cpp/src/routing/local_search/vrp/vrp_execute.cu:466
  • Function: cuopt::routing::detail::execute_vrp_moves<int, float, VRP>
  • Test: level0_retail/retail_float_test_t.CVRPTW_Retail/4
  • Binary: ROUTING_TEST (debug build — assertion is inside cuopt_func_call / cuopt_assert)

Reproducer / observed run

  • PR: #1269 (CI-only change — does not touch routing code)
  • Run: actions/runs/26237894930
  • Job: conda-cpp-tests / 13.2.0, 3.13, amd64, ubuntu24.04, rtxpro6000, latest-driver, latest-deps (job 77225276444)
  • Head SHA: 371edafa (branch pull-request/1269, base release/26.06)
  • Surrounding tests CVRPTW_Retail/0..3 passed; only /4 aborted.

Expected behavior

execute_vrp_moves should only accept and execute moves whose net post-execution cost change matches the predicted delta within EPSILON. The assertion should hold for every batch on every accepted test instance.

Environment

  • CI runner: rtxpro6000 (NVIDIA RTX PRO 6000 Blackwell Server Edition, 94.97 GiB VRAM)
  • CPU: INTEL(R) XEON(R) GOLD 5512U, 16 threads
  • CUDA: 13.2
  • Driver: latest-driver
  • Deps: latest-deps
  • Build: conda, ubuntu24.04, amd64, Python 3.13
  • Branch under test: release/26.06

Related issues

Additional context

Metadata

Metadata

Assignees

Labels

awaiting responseThis expects a response from maintainer or contributor depending on who requested in last comment.bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions