On 29/11/21 7:38 am, Hao Wang wrote:
Dear devs:
I encountered the following error but didn't know how to fix it.
Please help.
cpyext, the emulation layer, detected that while it is calling
an object's tp_dealloc, the C code calls back a function that
tries to recreate the PyPy version of the object. Usually it
means that tp_dealloc calls some general PyXxx() API. It is
a dangerous and potentially buggy thing to do: even in CPython
the PyXxx() function could, in theory, cause a reference to the
object to be taken and stored somewhere, for an amount of time
exceeding tp_dealloc itself. Afterwards, the object will be
freed, making that reference point to garbage.
>>> PyPy could contain some workaround to still work if
you are lucky, but it is not done so far; better fix the bug in
the CPython extension.
>>> This object is of type 'pandas._libs.parsers.TextReader'
Aborted
Bravo !
Hao Wang
You don't show any code so it is difficult to guess what is going on. In
general, PyPy is more sensitive to closing resources after use rather
than depending on the garbage collector to release them when an object
is collected. You could try closing the parser before it goes out of scope.
Matti
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev