[Opensim-dev] I want to switch default XEngine ScriptStopStrategy to co-op from abort soon

Melanie melanie at t-data.com
Tue Jul 15 00:24:11 UTC 2014


No complaints from me and thank you for the work done and the testing.

- Melanie

On 15/07/2014 02:17, Justin Clark-Casey wrote:
> Hi folks.  The current method of terminating script threads that do not exit an event in a timely manner is to abort 
> their threads in the VM.
> 
> However, in some cases this can leave the VM unstable, with symptoms such as simulator crash with native stack trace or 
> a leap up to 100% CPU use for no apparent reason.  I experienced these problems myself.
> 
> In response, almost a year and a half ago [1], I implemented an alternative method of script stop ("co-op") that relies 
> on checks inserted at script compile time.  No changes at the LSL level are required.  With this method, the compiled 
> script will always realize that it needs to stop and so no aborts are needed.
> 
> I have used co-op extensively over the last year and a half as have others (e.g. it's used on at least some OSGrid 
> Plazas) without incident and with apparent increased stability.
> 
> It hasn't been default before now because changing to co-op required the user to manually clear their compiled DLL cache 
> or set DeleteScriptsOnStartup = true for one simulator session.  This seems trivial but I felt it would be too 
> disruptive to people who upgrade at release time.
> 
> However, as of git master d7b92604 (11th July 2014), I've implemented a mechanism that will automatically recompile the 
> scripts as necessary and use the new ones on the next simulator restart.  Switching the ScriptStopStrategy should now 
> require no further user intervention.
> 
> I've written the details of this up at [2].  Note that switching the stop strategy does not have any impact on saved 
> script variables or other state - scripts will behave as they did before.
> 
> Hence, I now want to switch the default script stop strategy to co-op.  If anybody does want to continue using "abort" 
> for any reason, then this can be done by setting ScriptStopStrategy = abort in the [XEngine] section of OpenSim.ini.
> 
> Please let me know if there are any questions or concerns about this.
> 
> [1] http://opensimulator.org/pipermail/opensim-dev/2013-January/023985.html
> [2] http://opensimulator.org/wiki/XEngine#ScriptStopStrategy
> 


More information about the Opensim-dev mailing list