Talk:YEngine

From OpenSimulator

Jump to: navigation, search

Suspending scripts on only one region?

Hi all,

My grid runs half a dozen instances, each with up to another half-dozen regions (it's an attempt at some crude load balancing...). One thing that annoys me is that there is no obvious console command (or .INI entry) to suspend/enable scripts on only one region. Instead, it seems as if it's an all-or-nothing approach: either all scripts in the instance are automatically suspended, or none are. Is that right? I've been looking at OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs, where some console commands are listed (under the RunTest() private function). As far as I can see, the suspend command uses SuspendThreads() to suspend all threads for the whole instance, and not just for one region in particular.

Using change region to tell the console to do commands just for that region has no effect on any YEngine commands; they will apply to the whole instance, irrespectively of what the console thinks the current region is.

So, how is it possible to suspend YEngine scripts on one single region just from the console?

I suppose it's possible to write a script with some os*() functions that will force all other scripts to suspend themselves, but that's really the kind of trick I'd prefer to avoid...

The main reason for suspending every script on a region is, of course, immediately being able to stop every rogue, runaway, or griefing script in the region, without requiring the grid manager to log in (which they might not be able to do). Granted, this is not the only use-case scenario; personally, I have an issue with certain thresholds having been reached on my own scripts — when they're left running unattended for several days or sometimes even just hours — which require some debugging before I activate them again; and, naturally enough, I wish to keep scripts running on the other regions on that instance. And there is also the obvious solution of launching another instance, move that region to this instance all by itself, and suspend scripts there. Again, this consumes operating system resources, and there are tradeoffs about how many instances are expected to run 'reasonably' on my specific server...

I beieve that it would make a lot of sense in fully documenting the YEngine console commands on this wiki page, explaining their current capabilities and limitations (and, if known, which of those limitations are expected to be tackled by the core developers in a foreseeable future...).

Gwyneth Llewelyn (talk) 08:56, 17 February 2022 (PST)

Personal tools
General
About This Wiki