Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008947opensim[REGION] Scripting Enginepublic2021-12-05 02:032021-12-05 04:30
ReporterAaack 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusnewResolutionopen 
PlatformLinuxOperating SystemUbuntuOperating System Version18.04.6 LTS
Product Version0.9.2.0 
Target VersionFixed in Version 
Summary0008947: Y Engine: Runaway script times reported in the "Top Scripts" window of the viewer.
DescriptionScripts that contains timers or listeners will take more and more CPU time as the day goes by to reach ludicrous numbers.

A compilation or sim restart will reset the behaviour but it won't stop the escalation.

It seems to be pretty random as if you create several instances of the same script some will runaway more than others for no apparent reason.

This only happens on Y-Engine, X-Engine behaviour is more predictable.
Steps To ReproduceCreate two prims, a "talker" and a "listener" with this scripts:

Talker:

default
{
    state_entry()
    {
        llSay(0, "Script running");
        llSetTimerEvent(60.0);
    }
    timer()
    {
        llSay(-2323, "ping");
    }
}

Listener:

integer nya;
default
{
    state_entry()
    {
        llSay(0, "Script running");
        nya = llListen(-2323, "bla", NULL_KEY, "ping");
    }
    listen(integer r, string a, key t, string y)
    {
        llSetColor(<1, 0, 0>, ALL_SIDES);
        llSetTimerEvent(0.9999f);
    }
    timer()
    {
        llSetTimerEvent(0.0);
        llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES);
    }
}

Let them run (you can change the timer event to 1.0 it's the same).

Observe the "Get Top Scripts" window of the "Debug" tab on the "Region / Estate" window.
Get spooked.
Additional InformationWhile this time creep is most notable on scripts that contains timers and listeners you will find that almost any script with a timer active or not will show this behaviour. This is especially notable in the Paramour dance machine that has a script that's basically inactive until someone uses it, and yet it's one of the worse offenders of the runaway scripts.

I'm including a zip file with 4 screenshots of this problem represented by the scripts I mentioned above from a freshly restarted sim, then 11 hours and then 20 hours later. Also I'm including one running on X-Engine as comparison.
TagsNo tags attached.
Git Revision or version numberosgrid-opensim-11232021.v0.9.2.52cd923
Run Mode Grid (1 Region per Sim)
Physics EngineubODE
Script EngineYEngine
EnvironmentMono / Linux64
Mono Version6.x
ViewerFirestorm
Attached Fileszip file icon Runaway Scripts.zip [^] (211,266 bytes) 2021-12-05 02:03

- Relationships

-  Notes
(0038276)
UbitUmarov (administrator)
2021-12-05 04:28

Yes, current top scripts with YEngine will show script Total cpu time since region start or script start/reset
Something to change on future versions
(0038277)
tampa (reporter)
2021-12-05 04:30

Top Scripts is an indicator of cpu time consumed since region start, it isn't an "in time" indication of what the script currently consumes.

- Issue History
Date Modified Username Field Change
2021-12-05 02:03 Aaack New Issue
2021-12-05 02:03 Aaack File Added: Runaway Scripts.zip
2021-12-05 03:40 UbitUmarov Product Version 0.9.1.0 => 0.9.2.0
2021-12-05 04:28 UbitUmarov Note Added: 0038276
2021-12-05 04:30 tampa Note Added: 0038277


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker