[MUD-Dev] Re: Missing the point: OpenMUD, Gamora, Casbah, etc.

Bruce Bruce
Tue Oct 27 20:25:55 New Zealand Daylight Time 1998


On Tuesday, October 27, 1998, Chris Gray wrote:
>[Bruce Mitchener, Jr.:]
>
> >for x in [1 .. 100000000000000] {
> >        /* don't run out of ticks */
> >        refresh();
> >        y += "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
> >}
>
>Just me being contentious again, but why not just impose an arbitrary
>time limit on *any* total execution event (not overideable by anyone
>except the top administrator), and/or put a hard limit on the total
>length of a string?
>
>Why have 'refresh()' (which appears to renew the execution time limit)?
>If the core system needs it, make it only usable inside code that has
>core system authority.


Someone else responded with something similar in private email.  I now
suspect that I was unclear in what I meant. :(

The problem isn't execution time.  The problem is that 'y' will soon be very
large and handling out-of-memory situations is difficult.  Right now, if
Genesis runs out of memory, it shuts down.  This is obviously non-optimal.
This isn't an issue of imposing a maximum size on a data stored by a
variable, since someone could just create lots of variables.  That continues
on up to task-groups.  I'm trying to find a nice way to handle
resource-accounting where as little of it is in the driver as possible, but
is still extensible by the DB code.  Even with this, there are problems.  If
quota-tracking (how many bytes of objects a user may have), then one could
bloat up some objects and bring them into memory to trigger an out-of-memory
condition.

This greatly affects the security of a system that allows for free-user
programming.  As far as I know, MOO has this problem as well.  I don't know
about Muq, DGD, or MudOS.

Am I just missing something obvious?

 - Bruce






More information about the MUD-Dev mailing list