[BUG]: `register()` accepts a mismatched UUID under `python -O`

Abierto
#2,697 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Comienza con DeviceMemoryResource.register(), PinnedMemoryResource.register() y la ruta MP_register descrita en el issue. Reproduce la discrepancia tanto con python como con python -O y, después, inspecciona la comprobación de UUID. El trabajo estará terminado cuando ambos puntos de entrada rechacen de forma coherente una UUID que no coincida y conserven la UUID del recurso.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

triage
Is this a duplicate?
Type of Bug

Silent Failure

Component

cuda.core

Describe the bug

DeviceMemoryResource.register() and PinnedMemoryResource.register() check that the UUID they are given matches the resource's own with a bare assert in MP_register, so the check is absent whenever CPython runs with -O. The call then registers the resource under the other key and rewrites the resource's UUID, and mr.uuid reports the new value from then on.

How to Reproduce
import uuid
from cuda.core import Device, DeviceMemoryResource, DeviceMemoryResourceOptions
dev = Device(); dev.set_current()
mr = DeviceMemoryResource(dev, DeviceMemoryResourceOptions(ipc_enabled=True))
try:
    mr.register(uuid.UUID("00000000-0000-0000-0000-000000000001"))
except AssertionError:
    print("rejected")
else:
    print("accepted, uuid is now", mr.uuid)
$ python  repro.py
rejected
$ python -O repro.py
accepted, uuid is now 00000000-0000-0000-0000-000000000001
Expected behavior

register() should reject a UUID that is not the resource's own whether or not CPython was started with -O. Assertions are removed under -O, so the check as written does not exist in an optimized interpreter and the resource silently takes on the other key instead of raising.

Operating System

Ubuntu 26.04 LTS

nvidia-smi output
Tue Aug 25 15:01:31 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.84                 Driver Version: 595.84         CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3050 ...    Off |   00000000:01:00.0 Off |                  N/A |
| N/A   59C    P3            749W /   30W |      11MiB /   4096MiB |      8%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
Lenguaje dominante
Cython
Estrellas
3.4k
Forks
329
Merge medio
1 d 22 h
PR fusionados (30 d)
113

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA/cuda-python

Todos los issues de NVIDIA/cuda-python

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.