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