CI: nightly Cython build with bounds checking enabled
Los mantenedores suelen responder en 1 día
@ramakrishnap-nv ya está trabajando en esto.
Desde el 3/11/2026.
- #2262 de @ramakrishnap-nv — abierto
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 22/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- build-system, ci-cd
Línea de trabajo
Start with the file-level # cython: boundscheck=False and wraparound=False header in python/cuopt/cuopt/linear_programming/solver/solver_wrapper.pyx, and with how CYTHON_FLAGS reaches the build through rapids-cmake. Confirm whether a header directive overrides the flag, then measure the cost of checks in the nogil loops. Done means a nightly CI job builds with checks and runs the Python tests, with the design decision recorded. The issue has no chosen approach, so agree on one with maintainers first.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
python/cuopt/cuopt/linear_programming/solver/solver_wrapper.pyx sets # cython: boundscheck=False and # cython: wraparound=False at file level. Out-of-bounds indexing in its nogil loops is therefore silent: CI passes and the result is garbage rather than an error. That is how #2249 (introduced with _compute_slack_csr in #1615) went unnoticed in 26.10.
Proposal
Add a nightly (not per-PR) CI job that builds the Python extension with bounds checking enabled and runs the Python test suite. A checked build would have raised IndexError as soon as the DataModel tests hit the bounds-only path.
Caveat to resolve first
A # cython: header comment in a file overrides command-line directives, so passing --directive boundscheck=True through rapids-cmake's CYTHON_FLAGS would not affect this file. Options:
- Remove the file-level header and use
@cython.boundscheck(False)/@cython.wraparound(False)only on the specific hot functions that need it, then enable checks globally in the checked build. - Make the header conditional in the checked configuration.
Neither has been tried. The overhead of checks in the hot loops should be measured, which is why release builds should stay unchecked.
Related: #2249, #2253, #1615.
- Lenguaje dominante
- Cuda
- Estrellas
- 1.1k
- Forks
- 249
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 123
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/cuopt
-
[BUG] Constraint validation reports CSR offset count as the number of rowsPosiblemente ocupada @0z5a la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errorsPosiblemente ocupada @0z5a la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
[BUG] Dataset downloader reports success and replaces data after a failed downloadPosiblemente ocupada @0z5a la tomó hoy. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA/cuopt
Issues similares
-
[compiler-rt] Rtsan-aarch64-NoInstTest: error: no such file or directory: 'NOTFOUND' (libatomic)Abiertobuild-problem compiler-rt:rtsan platform:linux
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
llvm/llvm-project#239039 ·
Los mantenedores suelen responder en 1 día
-
Gradle liquibaseDiffChangelog drops jhi_date_time_wrapperPosiblemente ocupada @mraible la tomó hoy. Abiertoarea: triage theme: undefined
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
jhipster/generator-jhipster#35998 ·
Los mantenedores suelen responder en 1 día
-
bug dependencies known-issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
aaif-goose/goose#13327 ·
Los mantenedores suelen responder en 1 día
-
dist/esm/package.json lacks "sideEffects": false, so bundlers keep schema code in browser bundlesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
get-convex/convex-js#216 ·