Skip to content

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

Description

@ramakrishnap-nv

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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions