Oct 18 1999.

Allocation failure for stable frame


The "Fatal error: Allocation failure for stable frame" means that the object engine is attempting to allocate a new stack frame. Since stack space is full, it is trying to create a stable frame as a standard object. It can't, so the lowSpaceAction attempts to run and clean up memory. The object engine does not have enough space reserved to do this so the OE dies before it can bring up a low space notifier to warn the user.

In most cases this particular error seems to arise when there is a very deep (or possibly infinite) recursion in progress.

Adjusting memory so that lowSpace has enough room to work may solve the problem if the recursion is just deep, but not infinite. You can adjust the reservedContiguousFreeSpace and hardLowSpaceLimit settings as follows:

ObjectMemory reservedContiguousfreeBytes:
(ObjectMemory reservedContiguousfreeBytes * 2).
ObjectMemory hardLowSpaceLimit:
(ObjectMemory hardLowSpaceLimit * 1.5) truncated.

This doubles the reserved space for the OE and lowers the trip wire so that the lowSpaceAction is invoked more often and has enough room to complete.

This may solve the problem, or it may just delay the fatal error for few extra minutes.

If the recursion is infinite then no amount of memory policy adjustment will solve this problem. If this is the situation you need some way to detect when the problem is first occuring so that the image can be interrupted and traced.