MOO-cows Mailing List Archive


Re: Big strings => panic

On Fri, 19 Apr 1996, Matthew Sanderson wrote:

> It seems MOO server 1.7.8p4 panics when a string gets extremely long (I'm
> not sure exactly how long, but I would guess LONG long).

> foo = " ";
> while(1)
>   foo = foo + foo;
>   $command_utils:suspend_if_needed(0);
> endwhile

It's not a "bug" per se, nor is it something easily fixed.

What happens is simply that when a variable (list or string) gets very 
large, the server runs out of memory.  (The process hits a process-memory 
limit, the memory manager is unable to allocate a contiguous block of 
memory large enough, in extreme cases the swap space is exhausted.)  When 
the server runs out of memory, it panics -- and in this case probably 
produces one *very large* panic dump.

The MOO execution unit does not impose any limits on how much memory a 
task can use: how big variables can get or how many there can be.  
Therefore, there's no way for the server to tell when this is about to 
happen.  (And, Pavel's said previously that there's no easy way to make 
the server impose limits on task size.)

    ResComp Network Support Technician, Bursley Hall
    "Invisibility is in the eye of the beholder."
    Home Page:

Follow-Ups: References:

Home | Subject Index | Thread Index