MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

Re: Big strings => panic



Matthew Sanderson writes:
> Your average MOO runs only a few utility tasks in my experience... nothing
> fatal if killed. Of course, someone'll prove me wrong here...

LambdaMOO has literally hundreds of background tasks at any given time, many of
which are carefully updating important data structures implementing LambdaMOO's
governmental systems.  Randomly killing tasks would cause *more* damage than
crashing, since it would leave the DB in an effectively inconsistent state.

> Anyway, what's the difference between killing the task, and the MOO
> panicking, thus killing the MOO and all its tasks?

It's not killing the tasks at all; it's saving them all on disk.  If you
restart the server, they'll come with it (all except the one that caused the
panic).

> I think killing the task that's causing the panic, thus freeing the memory
> it was using, would solve the problem... no need to panic any more if
> you're no longer running out of memory.

You're making a bit of a leap, claiming that killing the task will free the
memory.  That's true if the infinite string is in a local variable, but not if
it's in a property, for example.

Face it: you're not going to gracefully, incrementally grow the LambdaMOO
server into a truly secure execution environment for potentially hostile code.
It's a hard problem that has to be considered at a pretty early stage in the
system's development.  LambdaMOO is literally years past the deadline for that.

	Pavel


Follow-Ups: References:

Home | Subject Index | Thread Index