[pypy-issue] [issue978] metainterp bug

Armin Rigo tracker at bugs.pypy.org
Sat Feb 4 00:39:13 CET 2012


Armin Rigo <armin.rigo at gmail.com> added the comment:

Found it: it can be reproduced easily with PYPY_GC_DEBUG=1.  Then the program
segfaults at the bogus assembler instruction.

The problem is around CALL_ASSEMBLER: it does the call, and then writes 0 into
the virtualizable's vable_token field.  But if the call causes a GC that moves
the virtualizable around, this write may go to the old place...  

PYPY_GC_DEBUG=1 enables using several nurseries; only one is active and all the
other ones are protected against reads and writes.

----------
nosy: +arigo

________________________________________
PyPy bug tracker <tracker at bugs.pypy.org>
<https://bugs.pypy.org/issue978>
________________________________________


More information about the pypy-issue mailing list