dm at prolingua.co.uk
Fri Sep 13 14:42:34 CEST 2013
On 13/09/2013 11:08, René Thiemann wrote:
>> I would suggest trying with the --stackspace option e.g.
>> ML_OPTIONS='--stackspace 500'
>> The Fail exception with "Insufficient space" arises in a number of places such as when trying to fork a thread. This requires memory outside the ML heap. The stackspace option keeps some space free from the ML heap for these purposes.
> I tried it, but the setting was not high enough: then even earlier sessions crash with a new
> 'Run out of store - interrupting threads' error message. This also happens if I set stackspace to 1500,
> but it succeeded with 5000. However, then still afterwards I get the usual
> poly(6820,0xb09a5000) malloc: *** mmap(size=16777216) failed (error code=12)
> *** error: can't allocate region
> error as before, if I use minheap=1000, or drop the minheap parameter.
>> I would guess that this is when running the X86/32 version rather than X86/64.
> Yes, I use the 32-bit mode. I will later run some tests when using the 64-bit mode.
> Here is my current setup:
> ML_OPTIONS="--minheap 1000 --stackspace 5000"
You definitely don't want a value as large as 5000.
I think the exception may be occurring with PolyML.shareCommonData.
This needs memory outside the heap to hold some tables. If there is a
lot of live data in the heap these tables can be large and if the heap
is taking up most or all of the available virtual memory, a particular
problem in 32-bit mode, you may get the above message and exception. Is
that possible in this case? It is safe to handle the exception and
continue; it's just that the sharing process will not be complete so
that the heap will be bigger than it might otherwise be.
More information about the isabelle-dev