conda-cpp-tests / 13.0.3, 3.12, amd64, rockylinux8, rtxpro6000, latest-driver, latest-deps
conda-cpp-tests / 13.0.3, 3.12, arm64, rockylinux8, a100, latest-driver, latest-deps
conda-cpp-tests / 13.3.0, 3.13, amd64, ubuntu26.04, h100, latest-driver, latest-deps
conda-cpp-tests / 13.3.0, 3.13, arm64, rockylinux8, a100, latest-driver, latest-deps
conda-cpp-tests / 13.3.0, 3.14, amd64, ubuntu26.04, rtxpro6000, latest-driver, latest-deps
conda-cpp-tests / 13.3.0, 3.14, arm64, ubuntu26.04, gb300, latest-driver, latest-deps
conda-notebook-tests / build
conda-python-tests / 13.0.3, 3.12, amd64, rockylinux8, rtxpro6000, latest-driver, latest-deps
conda-python-tests / 13.0.3, 3.12, arm64, rockylinux8, a100, latest-driver, latest-deps
conda-python-tests / 13.3.0, 3.13, amd64, ubuntu26.04, h100, latest-driver, latest-deps
conda-python-tests / 13.3.0, 3.14, amd64, ubuntu26.04, rtxpro6000, latest-driver, latest-deps
conda-python-tests / 13.3.0, 3.14, arm64, rockylinux8, a100, latest-driver, latest-deps
conda-python-tests / 13.3.0, 3.14, arm64, ubuntu26.04, gb300, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.0.3, 3.12, amd64, ubuntu24.04, h100, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.0.3, 3.12, arm64, ubuntu24.04, l4, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.3.0, 3.13, amd64, ubuntu26.04, h100, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.3.0, 3.14, amd64, ubuntu26.04, rtxpro6000, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.3.0, 3.14, arm64, ubuntu26.04, gb300, latest-driver, latest-deps
wheel-tests-cuopt-server / 13.3.0, 3.14, arm64, ubuntu26.04, l4, latest-driver, latest-deps
Summary
As of the 2026-08-19 nightly, every CUDA 13.x test job fails and every CUDA 12.x test job passes, across C++, Python, and server suites. All failures share one signature: an RMM device allocation is issued while a CUDA stream is capturing a graph, which is illegal for a non-stream-ordered memory resource.
19 jobs that passed in the previous nightly now fail. The split by CUDA major version is exact — there are no CUDA 13 passes and no CUDA 12 failures.
Observed in
Nightly run 32220613929 —
testworkflow, main @1dbab9cf, 2026-08-19. 31 of 51 jobs failed; 19 of those are new relative to the previous nightly 32104333527 (main @dc7113bc, 2026-08-18).The remaining 12 failures are pre-existing third-party ones and are unrelated — see #1746, #1747, #1485.
conda-cpp-testsconda-python-testswheel-tests-cuopt-serverconda-notebook-tests / buildThe 19 newly-failing jobs
It reproduces on both CUDA 13.0.3 and 13.3.0, on amd64 and arm64, on A100 / H100 / RTX PRO 6000 / GB300 / L4, and on Python 3.12–3.14. All affected jobs are
latest-driver, but so are the passing CUDA 12 jobs, so the driver is not the discriminator.Error signatures
C++ (
conda-cpp-tests, CUDA 13.3.0):Then, in later tests, the capture is already poisoned:
Python (
conda-python-tests):Server (
wheel-tests-cuopt-server) — the solver process is killed and the server marks itself unhealthy:Notebook (
conda-notebook-tests / build):Scope
ROUTING_INTERNAL_TEST—vehicle_types_float_test_t,level0_ges/*(GES_PDP, GES_VRP),level0_base/l0_float_test_t(TSP, VRP, CVRP, VRPTW, CVRPTW), all 19level0_retail/retail_float_test_t.CVRPTW_Retail/*,level0_vehicle_order_match/*,level0_objective_function/*,top_k/top_cand_test.test_top_k/*.tests/routing/*(distance engine, host arrays, initial solutions, re-routing, gRPC serialization, solver, solver settings, vehicle properties, warnings/exceptions) plustests/socp/test_socp.py(3 tests).last_mile_delivery/cvrp_daily_deliveries.ipynb.Note on where it starts
This is not a capture leaked by an earlier test. In
ROUTING_INTERNAL_TESTthe very first test executed —vehicle_types_float_test_t.VEHICLE_TYPES— fails immediately withcudaErrorStreamCaptureUnsupported. The routing graph-capture path is allocating inside an active capture from the start; the latercudaErrorStreamCaptureInvalidatedfailures are downstream cascade.Hypotheses — not yet confirmed
cudaMalloc(whatrmm::mr::cuda_memory_resourcecalls) is always illegal during stream capture; a stream-ordered/async or pool resource is not. So the behaviour is consistent with the effective RMM memory resource differing between the CUDA 12 and CUDA 13 test environments, rather than with a change in cuOpt's capture logic. That would explain why the split is exactly along the CUDA major version while the cuOpt source is identical.Two candidate directions, in rough order of likelihood:
rmm/librmmbuild between run 32104333527 and run 32220613929.Note that #1741 and #1731 are wheel-only changes while
conda-*jobs also fail, which argues against both.Why this is P0
It is new, it is a hard break rather than a flake, and it is plausibly user-facing rather than a CI artifact — if the effective memory resource on CUDA 13 really cannot serve allocations during graph capture, then routing solves are broken for CUDA 13 users, not just for CI. That should be established or ruled out before anything else.
Follow-up
Possibly related
#1729 — "cuOpt 26.8.0 CU13 build aborts on MIP solves while CU12 solves the same instance" (open, 2026-08-14). Also a CUDA 13-only failure that CUDA 12 does not reproduce. Worth checking whether the two share a root cause before treating them separately.