Grey Goo Fence
As an attempt to combat mass-replicating grid crashers, starting in
SL 1.10 a "grey goo fence" was put up that attempts to detect and put a stop to objects that rez objects or give inventory "excessively" and place a quick stop to them. Pragmatically speaking, this may stop any object that calls
llRezObject,
llGiveInventory, or
llGiveInventoryList more than 240
(100 as of 12/01/09) times within 6 seconds will have all subsequent calls to these functions blocked until no further attempts are made for at least 12 seconds.
The rules that trigger the "grey goo fence" are subject to change without notice. Andrew Linden intends this limit to become a fairly complex heuristic that supposedly limits "excessive" scripts while affecting "normal" scripts as little as possible. Practically speaking these rules are liable to affect auto-rezzers that rez fairly complex objects fairly quickly and those that rez a large number of scripted objects.
The Rules
The calls to
llRezObject,
llGiveInventory,
llGiveInventoryList and
llRezAtRoot for each "group of objects" is counted. Rezzing a physical object counts as two calls.
If more than 240
(100 as of 12/01/09) calls are counted among the group of objects within 6 seconds then:
- All temp-on-rez objects are immediately deleted
- Some scripted unlink operations may fail (this is not intended)
- Any further rez or give attempts will result in a script error
- All objects in the group will have their energy set to zero, reducing their ability to physically affect themselves and the world.
The group that an object belongs to is based on how it was rezzed:
- Attachments are not part of any group, they are not affected by these rules
- Objects rezzed by an agent are grouped by their owner and the asset id of the object that is being rezzed.
- Objects rezzed by another object (including attachments) are grouped based on the object that rezzed them. This means that if a rezzer is responsible for rezzing a large number of scripted objects, if those objects at any point rez/give more than 240 (100 as of 12/01/09) objects at a time then the group will be throttled
Sources and Quotes
The information in this article comes from two forum threads:
"* 12/01/2009 - The magic numbers appear to have changed, to 100/6. I am able to rez 100 objects in 6 seconds, but rezzing any faster triggers the fence. This is a rate of 0.060 seconds per object. - Felixe Thorne"
"If necessary I'll add a per-owner throttle, perhaps it will have different magic numbers instead of 240/6. I hope to eventually increase the rate limits when the fence gets smarter, and maybe reduce or remove the implicit sleep built into the llGiveInventory() call which was really just an anti-grief hobble feature that may be made obsolete by the new fence."
"The XyObject is a known example where a build-seed runs into the fence. Not because it is rezzing > 40 objects a second, but because it uses a few levels of self-replication and delegation to construct a giant surface."
Miscellaneous
The term
"Grey Goo" comes from science fiction and nanotechnology and refers to how an out of control self-replicating nanobot "army" might look like to an outside observer before it consumes the entire world.
Attachments |
Object |
Rez