[pypy-issue] [issue907] Stacklets running out of memory on higher optimisation levels

Armin Rigo tracker at bugs.pypy.org
Wed Nov 30 03:28:00 CET 2011

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


1) as per irc discussion, it is leaking with --opt=1 because it now (correctly)
uses reference counting instead of boehm if you enable --continuation.  This
means that the references held by a stacklet_destroy()ed piece of stack get
lost.  It's a leak that we cannot really do anything about; I added a warning in

2) the --opt=2 case was a leak in the shadowstack implementation of
stacklet_destroy().  Fixed in ca55b862ead9.

3) the --opt=jit segfaulted because of code that I wrote some time ago but whose
test was not complete enough.  It was *still* not setting the effectinfo of
stacklet_switch() to EF_RANDOM_EFFECTS.  This caused random bugs across switches
because the JIT assumed the calls to stacklet_switch() could only have some
predicted effects --- notably it could not depend on the content of the global
'stack' list, so it's fine to delay a setarrayitem into the list, right?  Test
added in 36e3174f324f, fixed in the subsequent checkins.

The Converge VM now seems to work, so I'm closing this issue.  Feel free to
reopen if needed.

status: chatting -> resolved

PyPy bug tracker <tracker at bugs.pypy.org>

More information about the pypy-issue mailing list