[pypy-dev] Fatal RPython error: MemoryError

Ronny Pfannschmidt Ronny.Pfannschmidt at gmx.de
Tue Aug 7 13:56:45 CEST 2012

Hi Armin, Harald,

On 08/07/2012 11:28 AM, Armin Rigo wrote:
> Hi Harald,
> On Tue, Aug 7, 2012 at 10:23 AM, Massa, Harald Armin<chef at ghum.de>  wrote:
>> outside of programming there is the concept of having a secret backup
>> ("nest egg"). Would'nt it be a solution to preallocate some bytes on
>> startup for really, really bad times?
> It might help in general, but not in this case: this example causes
> and catches multiple MemoryErrors.  If you unveil your secret backup
> at the first MemoryError, you gained nothing, because the crash occurs
> only at the ~25th MemoryError.

I'm under the Impression that that Kind of Error could be evaded by 
reserving a special part of the memory pool for strings and internal 
objects *after* the general Pool is used up.

My assumption is that most of the time the Memory errors are caused 
semi-large allocations/reallocation (like allocate or re-size a 
in which case there will still be some memory left to at least print a 
stack-trace at interpreter level and quit.

However in some cases (like the example) the memory error is caused by 
accumulating more and more smaller objects,
in which case the memory one would use for a Stack-trace is used up and 
the extra pool would be used.

In that case i presume any allocation not needed for a trace would cause 
just another memory error in the exception handler.

That should be able to handle most of the normal cases of people trying 
to handle something and print out some extra information before failing

Its of course not safe from malicious code or
people just deliberately refusing to fail if there is a memory-error.
but really "evil" code is fine to receive a rpython traceback.

-- Ronny

> A bientôt,
> Armin.
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> http://mail.python.org/mailman/listinfo/pypy-dev

More information about the pypy-dev mailing list