[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>

More information about the pypy-issue mailing list