New issue 2287: __del__ on subclasses of some built-in types can crash
https://bitbucket.org/pypy/pypy/issues/2287/__del__-on-subclasses-of-some-built-in
Armin Rigo:
This crashes PyPy:
```
#!python
import array, gc
class X(array.array):
def __del__(self):
global saved
saved = self
while True:
X('i', [2,3,4])
gc.collect()
saved[0] += 1
```
The issue is that when we have both an app-level and an interp-level
``__del__``, and the interp-level one is supposed to be a lightweight
finalizer, we call the interp-level one always after calling the app-level one.
But the lightweight finalizer of classes like W_Array is written with this
basic property in mind: after it is called, there should be no more references
to the object.
A proper fix is involved; I suppose we should give a try again to the
``gc-del`` branch.
_______________________________________________
pypy-issue mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-issue