NVIDIA / NVIDIA/cuopt

[BUG] Mid-solve job cancel of a job on the gRPC server can leave GPU in a sticky error state; full server restart required

Open
#1,662 2 comments 0 reactions 1 assignee View on GitHub

@rg20 is already working on this.

Since Aug 4, 2026.

awaiting response bug
Dominant language
Cuda
Stars
1k
Forks
233
Avg merge
4d 4h
Merged PRs (30d)
95

Description

The gRPC API supports canceling a running job by terminating the worker process that owns it. That cancel usually succeeds from the client’s point of view (CANCELLED / NO
T_FOUND), and a replacement worker is respawned automatically.

However, killing a worker mid-CUDA can intermittently leave the GPU in a sticky error state (cudaErrorIllegalAddress, RMM / memory allocation failures). Respawning only t
hat worker often does not clear it; later jobs on the same device may keep failing.

Workaround: If jobs fail with CUDA / allocation errors after a cancel (or delete of a running job), shut down and restart the entire cuopt_grpc_server process. A clean re
start clears the bad device state in our testing. Send SIGINT to the server (Ctrl-C from the console), or otherwise stop and start the process/pod.

Queued-job cancel (job not yet claimed by a worker) is not affected by this issue.

Notes:

Preferring SIGTERM before SIGKILL, and delaying worker respawn, did not reliably prevent the poison in stress testing.
A durable fix likely needs either cooperative cancel inside the solver (between CUDA work) and/or a CUDA health check that treats this as fatal and exits so an orchestrat
or can recycle the server (similar to the Python cuOpt server).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.