MOO-cows Mailing List Archive

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

Re: DB crasher



On Tue, 23 Apr 1996, Judy Anderson wrote:

> Another solution to the queued task problem is to only limit those who
> are causing a problem.  On LambdaMOO prior to 1.7.9, we had a task
> similar to the clock, except that it didn't kill tasks.  It notified
> all connected wizards whenever any person had more than 100 tasks.
> This permitted us to take action before a forkbomb had many iterations
> to build up tasks.  (Again taking advantage of LambdaMOO lag---the
> 
Just keep in mind that, unless you've hacked your $no_one:eval to do
something special, programmers can usually also forkbomb with $no_one's
perms.  So if you're going to only set a task limit on people who have
forkbombed before, remember to also set a limit on $no_one.  Also, if you
know that your MOO normally has 20 tasks running, and your system crashes at
500 (just made that number up, I'm not sure of the average #), don't set
everyone's task quota to 450 and assume that'll save it, because most people
can create another 450 with $no_one's perms.

And yes, it is usually possible to create a forked task owned by $no_one
even if your $no_one:eval checks for suspend() and fork()s.  Unless you've
also disabled add_verb(), people can @chmod an object writable and create a
verb owned by $no_one that can suspend or fork.  Not to mention things like:
  ;$no_one:eval(";return call_function(player.foo, 0);");
When player.foo is set to "suspend".
                                                         --Dark_Owl


References:

Home | Subject Index | Thread Index