|Anonymous | Login | Signup for a new account||2021-10-21 01:58 PDT|
|Main | My View | View Issues | Change Log | Roadmap | Summary | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0008004||opensim||[REGION] Scripting Engine||public||2016-08-21 15:35||2019-02-05 12:27|
|Platform||Operating System||Operating System Version|
|Product Version||master (dev code)|
|Target Version||Fixed in Version||master (dev code)|
|Summary||0008004: Scripts sometimes take a long time to load on region cross/teleport|
|Description||On region crossing or teleports attachment scripts can take a measurably long time to load (On order of anywhere from 30 seconds to a minute) for the crossing avatar once the cross/teleport has completed. |
This is a bit more than just a simple initial slow script load issue though; It gives a good possibility for someone to teleport or region cross again before the scripts have loaded for which I have observed problems in the way of lost script states (attachment scripts get reset), script load errors (Won't work at all until OS restart), and on occasion completely and permanently destroyed items (Observed as objects in inventory with no name and refuses to attach).
This appears to happen on a just started instance of OpenSim; the behavior observed is:
1. Start OpenSim
2. Log in and cross over or directly teleport to another region
3. Attachment scripts will not work for a short while and is also observed in the console as not loading (using debug xengine log 1 to see loaded scripts output to verify). After about 30 seconds to 1 minute scripts will finally start working and loaded scripts will be logged in console.
3a. If attempting to teleport or region cross in this time frame before the attachment scripts have loaded then the aforementioned scripts state reset, scripts load errors, or destroyed attachments happen.
4. Once the scripts are loaded for that region the issue doesn't appear anymore moving between the two regions that have already "seen" those scripts. But if moving to another region that hasn't "seen" those scripts yet the issue appears again.
A simple indicator of this issue being triggered is to make a few new boxes and put a few new scripts in them that trigger an llOwnerSay() in state_entry(), i.e. the default new script, and then wear them for the test. When the issue is triggered the scripts will be reset and this will cause llOwnerSay() to fire.
|Steps To Reproduce||These steps were done on a fresh install of OpenSim master with a clean new database.|
1. Have at least 2 regions setup (I used 3; 2 connected to each other and 1 disconnected as an "island")
2. Start OpenSim, log in, wear attachments with scripts (I was wearing around 15 scripts in total for tests) and cross/teleport to another region.
3. Before the attachment scripts load, cross back to the previous region or go to another region that you haven't already previously been to for this OpenSim session.
3a. It's easiest to have two adjacent regions and cross over, and then cross back right away before the scripts load up but as mentioned previously there is a good 30 second to minute window to do this so it's not very hard to trigger
4. Issue in description should have appeared by this step
|Additional Information||I have noticed that the issue appears to be per-avatar. The issue also reappears if OpenSim is shutdown and then restarted; The regions that had previously loaded attachment scripts done in testing had "forgotten" about them and the scripts will take a long time to load again moving between regions until those regions have loaded them; repeating the cycle.|
|Tags||No tags attached.|
|Git Revision or version number||Master|
|Run Mode||Standalone (Multiple Regions)|
|Environment||.NET / Windows64|
Yes this is a known issue
for example, Due to security reasons scripts need a full recompile, etc.
if you run a closed grid, with regions running on machines controlled by you, you can try the option
TrustBinaries = true
Never if regions run on unknown machines!
|Ahhh, I see. Is it projected or planned to be fixed before 0.9.0 release? Thank you!|
edited on: 2016-08-21 15:51
Whoops, posted a bit too fast, Yes I have tried TrustBinaries = true, but true or false doesn't seem to make a difference for me
I have also tried multiple combinations of ScriptStopStrategy, AppDomainLoading, and AllowScriptCrossing
|no, no plans on that for now :(|
|Alright, if there is anything I can do to help though please let me know.|
edited on: 2016-09-01 15:06
I believe I may have stumbled across the culprit... Or at least a contributor to it. I had a 'login enable' command left in my startup_commands.txt file that I had forgotten about; I had put that command in that file a while back because of some issues in the past where regions that didn't have scripted objects in them would not have their logins enabled on OpenSim load up (Making sure to never log in until region scripts have completely loaded of course). However, I had never seen this particular issue described in this mantis come up as a result of that command until the most recent version of OS (up to and including master).
For some reason when I removed that command from startup_commands.txt all is well and attachment scripts restart just fine when crossing/teleporting to another region. It's really strange.
|possible the region was still compiling the loaded scripts when you crossed?|
edited on: 2016-09-01 15:19
I am unsure of that to be honest. I would venture to say no since there's no log output of the scripts at all for about 30 seconds; as if OpenSim was waiting for something before beginning to either load the already compiled binaries or compile for the first time (I'm using 'debug xengine log 1' to monitor the console to see when scripts are being loaded) It almost acts as if the region just simply doesn't realize there's scripts to be loaded for a short while and then it finally loads. As I remove the login enable command from startup_commands.txt all is well on region crosses consistently and it doesn't wait. To test this theory I put that command back in and the issue reappears, took the command back out, and the issue goes away again.
If it may help my script related settings are as follows:
AllowScriptCrossing = true
TrustBinaries = true
ThreadStackSize = 642144
AppDomainLoading = false
ScriptStopStrategy = co-op
|Haven't seen this issue for a while; Seems fixed by master.|
|Old Issues, closed, can be reopened if they still exist|
|2016-08-21 15:35||mewtwo0641||New Issue|
|2016-08-21 15:43||UbitUmarov||Note Added: 0031043|
|2016-08-21 15:46||UbitUmarov||Note Added: 0031045|
|2016-08-21 15:48||mewtwo0641||Note Added: 0031047|
|2016-08-21 15:49||mewtwo0641||Note Added: 0031048|
|2016-08-21 15:51||mewtwo0641||Note Edited: 0031048||View Revisions|
|2016-08-21 15:54||UbitUmarov||Note Added: 0031049|
|2016-08-21 15:57||mewtwo0641||Note Added: 0031050|
|2016-09-01 15:05||mewtwo0641||Note Added: 0031090|
|2016-09-01 15:06||mewtwo0641||Note Edited: 0031090||View Revisions|
|2016-09-01 15:11||UbitUmarov||Note Added: 0031091|
|2016-09-01 15:17||mewtwo0641||Note Added: 0031092|
|2016-09-01 15:19||mewtwo0641||Note Edited: 0031092||View Revisions|
|2019-01-19 04:34||mewtwo0641||Note Added: 0033845|
|2019-01-19 04:34||mewtwo0641||Status||new => resolved|
|2019-01-19 04:34||mewtwo0641||Fixed in Version||=> master (dev code)|
|2019-01-19 04:34||mewtwo0641||Resolution||open => fixed|
|2019-01-19 04:34||mewtwo0641||Assigned To||=> mewtwo0641|
|2019-02-05 12:27||BillBlight||Note Added: 0034314|
|2019-02-05 12:27||BillBlight||Status||resolved => closed|
|Copyright © 2000 - 2012 MantisBT Group|