inducer / inducer/pyopencl

Nanobind leak warnings

Open
#758 9 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
1.2k
Forks
247
Avg merge
7h 2m
Merged PRs (30d)
6

Description

**Describe the bug**
At the end of execution, what appears to be SVM-related pyopencl code causes nanobind leak warnings to appear:

```
nanobind: leaked 3 instances!
- leaked instance 0x1010fdf88 of type "SVMAllocator"
- leaked instance 0x1076bd3c8 of type "SVMPool"
- leaked instance 0x101459258 of type "Context"
nanobind: leaked 3 types!
- leaked type "pyopencl._cl.SVMAllocator"
- leaked type "pyopencl._cl.Context"
- leaked type "pyopencl._cl.SVMPool"
nanobind: leaked 20 functions!
- leaked function ""
- leaked function ""
- leaked function ""
- leaked function "__eq__"
- leaked function ""
- leaked function "alloc_size"
- leaked function "free_held"
- leaked function "__init__"
- leaked function ""
- leaked function "__call__"
- leaked function "__init__"
- ... skipped remainder
nanobind: this is likely caused by a reference counting issue in the binding code.
```

**To Reproduce**
1. `$ cd pyopencl`
2. `$ python examples/demo_array_svm.py` (causes leak warnings)
3. `$ python examples/demo_array.py` (does not cause leak warnings)

**Edit:**
Easiest way to reproduce:
```console
$ python -c 'import pyopencl as cl; ctx = cl.create_some_context(); f=cl.SVMAllocation(ctx, 10, 0, 0)'
nanobind: leaked 1 instances!
- leaked instance 0x106203858 of type "Context"
nanobind: leaked 1 types!
- leaked type "pyopencl._cl.Context"
nanobind: leaked 7 functions!
- leaked function "__eq__"
- leaked function "from_int_ptr"
- leaked function "set_default_device_command_queue"
- leaked function "__hash__"
- leaked function ""
- leaked function "get_info"
- leaked function "__init__"
nanobind: this is likely caused by a reference counting issue in the binding code.
```
(when not assigning to `f`, the warnings do not appear)

**Expected behavior**
Don't show the warnings.

**Environment (please complete the following information):**
- OS: MacOS
- Python version: 3.11.9
- PyOpenCL version: 2024.2.2

**Additional context**
Note that #755 does not address this issue.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.