apache / arrow-nanoarrow

Helpers for Arrow C Data & Arrow C Stream interfaces
https://arrow.apache.org/nanoarrow
Apache License 2.0
169 stars 35 forks source link

fix(python): Ensure reference-counting tests are skipped on PyPy #453

Closed paleolimbot closed 5 months ago

paleolimbot commented 5 months ago

PyPy's garbage collector/object deletion is not as predictable as CPython's, so you can't be sure that when you run gc.collect() that all unreferenced objects will be removed, and when you del an object, basically nothing happens (except that future garbage collections might destroy it). I did check to make sure the deleters are actually running on pypy (using brew install pypy3.10) manually and added a wrapper around cibuildwheel such that one can check pypy locally when debugging one of these issues.