Second Life: parent/child script communication issues

On Friday, October 4th, 2019 Linden Lab blogged about the recent script related issues that caused widespread disruption (notably with rezzing systems) across Second Life following the SLS (Main) channel deployment made on Tuesday, September 24th, 2019, and which ultimately resulted in a complete rollback from the grid on the 27th/28th September.

As noted in my Simulator User Group Updates, the release that caused the problems  – simulator release 2019-09-06T22:03:53.530715, included a number of updates intended to improve overall script performance, including how scripts are scheduled and events are delivered. However, these changes resulted in an unintended impact which, due to the region sampling, was not revealed by the update initially being deployed to a release candidate (RC) channel on Wednesday, September 11th.

The October 4th blog post from Linden Lab indicates that improvements have been made to the code, and once deployed, these should help prevent a recurrence of the problem. As an aside, it has been hoped that these updates might have been deployed to an RC channel on Wednesday, October 2nd, but a last minute bug prevented this (see: Deploy Plan for the week of 2019-09-30), so the updates will likely be deployed during week #41 (commencing Monday, October 7th).

However, even with the fixes, there blog post goes on to note there are come best practices when using parent / child script communications between a parent object and a child it rezzes:

One common cause of problems is communication between objects immediately after one creates the other. When an object rezzes another object in-world using llRezObject or llRezAtRoot, the two objects frequently want to communicate, such as through calls to llRegionSayTo or llGiveInventory. The parent object receives an object_rez() event when the new object has been created, but it is never safe to assume that scripts in the new object have had a chance to run when the object_rez event is delivered. This means that the new object may not have initialised its listen() event or called llAllowInventoryDrop, so any attempt to send it messages or inventory could fail. The parent object should not begin sending messages or giving inventory from the object_rez() event, or even rely on waiting some time after that event. Instead, the parent(rezzer) and the child(rezzee) should perform a handshake to confirm that both sides are ready for any transfer. 

The blog post goes on to define the sequence of events between a parent and rezzed child object as they should occur, and provides sample code for such parent / child operations.

An important point to note with this is that when the fix from the Lab is re-deployed, any scripts that still exhibit these kinds of communication issues will likely need to be altered by their creator to match the recommendations provided by the blog post.

Those wishing to know more are invited to read the original blog post in full, and address and questions and / or feedback through the associated forum thread.

2019 Simulator User Group week #40: Sept. 27th/28th rollback

Highland Hills, August 2019 – blog post

Simulator Version Rollback September 27th / 28th

A rollback was performed across the grid on September 27th/28th, which apparently moved all regions  back to server release 2019-09-06T22:03:53.530715, first deployed to an RC channel on September 10th. This was due to widespread issues being reported across the grid in relation to the script timing / performance fixes that were deployed – and which revealed a further underpinning issue. See the conversation in this forum thread and this status update for more.

Commenting on the situation, Simon Linden stated:

We had some chaos last week after our main channel roll exposed some “interesting” issues with the server update. That was all reverted early Saturday morning. We’re on track to have another update tomorrow morning [Wednesday, Oct 2nd] which should bring back the script performance work as well as fixing the issues we discovered.

[The Issue] was an ugly timing issue involving rezzing and starting up scripts … and unfortunately would work in some circumstances, not in others, or fail once and then work fine the next time you tried it. So it was tough to catch as well as sort out.

Mazidox Linden added thanks from LL to all those hitting script-related issues who took time to dig into matters, try to identify causes and raise bug reports, allowing the Lab to get a fix in the works.

While the offending code had only been deployed to the SLS (Main) channel on Tuesday, September 24th, it had already seen the light of day on an RC channel in previous weeks (server deployment 2019-09-13T19%3A08%3A35.530941, September 11th); so in order to completely remove it from the grid, a full rollback was performed and place the grid on the same simulator version.

It had been hoped that the fix mentioned above would be ready for an RC deployment on Wednesday, October 3rd. However, a late-breaking issue with the fix meant that the deployment of the update had to be cancelled,

This topic – including what might be done to avoid it in future, what was and wasn’t affected, what might or might not have been contributing factors – e.g. heavy region loads (pointed to as a possibly contributing reason), etc.

SL Viewer

A new RC version of the Love Me Render viewer was released on Monday, September 30th, version 6.3.2.531296, containing a handful of reported fixes:

  • SL-12025 (non-public) – “Animated mesh objects are disappeared when avatar rendering parameter is off”.
  • SL-11656 (non-public) – “Alpha textures with Alpha mask cut-off of 255 look glitchy while ALM is off”.
  • SL-11614 (non-public) – “Rotating objects flicker if Render type Avatar is disabled”.
  • BUG-2635 Objects rotating with llTargetOmega now “vibrate” on spin axis when the camera is focused on them.
  • BUG-225300 Disabling avatar rendering removes static objects.

The remainder of the official viewer pipelines remain unchanged, as follows

  • Current Release version 6.3.1.530559, formerly the Umeshu Maintenance RC viewer, dated, September 5th – No Change.
  • Release channel cohorts:
  • Project viewers:
    • Legacy Profiles viewer, version 6.3.2.530836, September 17th. Covers the re-integration of Viewer Profiles.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.530473, September 11th.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16th.
  • Linux Spur viewer, version 5.0.9.329906, dated November 17th, 2017 and promoted to release status 29th November 2017 – offered pending a Linux version of the Alex Ivy viewer code.
  • Obsolete platform viewer, version 3.7.28.300847, May 8th, 2015 – provided for users on Windows XP and OS X versions below 10.7.

 

2019 SL User Groups week #39/1: Simulator User Group

Nevglide Gaard, August 2019 – blog post

Not a lot to report – the meeting was largely a solstice party with live music. Simon Linden did, however, use the larger-than-usual gathering to monitor animation performance, lag and streaming performance.

Server Deployments

Update, September 28th: a rollback was performed across the grid on September 27th/28th, which apparently moved all regions  back to server release 2019-09-06T22:03:53.530715, first deployed on September 10th, this was due to widespread issues being reported across the grid in relation to the script timing / performance fixes that were deployed – and which revealed a further underpinning issue. See this status update for more.

Please refer to the server deployment thread for updates.

  • On Tuesday, September 24th, the SLS (Main) channel was updated with server release 2019-09-13T20:04:44.530946, comprising minor improvements to starting and stopping regions and EEP updates and fixes, and which was originally deployed to the Magnum RC channel.
  • On Wednesday, September 25th, the RC channels are to be updated with two deployments (no channel details provided):

SL Viewer

The Ordered Shutdown viewer updated to version 6.3.2.530972 on Tuesday, September 24th, 2019

  • Current Release version 6.3.1.530559, formerly the Umeshu Maintenance RC viewer, dated, September 5 – No Change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
  • Project viewers:
    • Legacy Profiles viewer, version 6.3.2.530836, September 17. Covers the re-integration of Viewer Profiles.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.530473, September 11.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16.
  • Linux Spur viewer, version 5.0.9.329906, dated November 17, 2017 and promoted to release status 29 November 2017 – offered pending a Linux version of the Alex Ivy viewer code.
  • Obsolete platform viewer, version 3.7.28.300847, May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

 

2019 SL User Groups week #38/1: Simulator User Group

Isla de Sol, July 2019 – blog post

Server Deployments

Please refer to the server deployment thread for updates.

  • On Tuesday, September 17th, the SLS (Main) channel was updated with server release 2019-09-06T22:03:53.530715. Originally deployed to the Magnum RC on September 11th, it contains the fix  to address most cases of experience-enabled scripts losing association with their experience – see this blog post.
  • On Wednesday, September 18th, the RC channels are to be updated as follows:
    • BlueSteel and LeTigre should be updated with server release 2019-09-13T19:08:35.530941, comprising:
      • Internal Script Improvements – these should see further improvements in script processing, with the selected regions representing around 15% of the total grid.
      • Fixed “Avatar Sounds” feature fails to disable all scripted sounds.
      • [EEP] Smoothen transition time of llReplaceAgentEnvironment.
      • Updated to include current Second Life Server changes.
    • Magnum should be updated with server release 2019-09-13T20:04:44.530946, comprising minor improvements to starting and stopping regions and EEP updates and fixes.

SL Viewer

On Tuesday, September 17th, 2019 the following viewer updates were made:

  • The Vinsanto Maintenance RC viewer, version 6.3.2.530962.
  • The Legacy Profile project viewer was updated to version 6.3.2.530836.

On Monday, September 16th, the Ordered Shutdown RC viewer, version 6.3.2.530901, was released. This viewer has changes intended to make crashes on shut-down less likely, but does not have any changes to existing features.

At the time of writing, the rest of the current official viewer pipelines remain as follows:

  • Release channel cohorts:
  • Project viewers:
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.530100, August 19th.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16th.
  • Linux Spur viewer, version 5.0.9.329906, dated November 17, 2017 and promoted to release status 29 November 2017 – offered pending a Linux version of the Alex Ivy viewer code.
  • Obsolete platform viewer, version 3.7.28.300847, May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

In Brief

  • The Lab is “very focused” on the problem of avatars teleporting into or out of a region overpowering local performance (scripts, etc.).
    • It’s been widely assumed that the performance is due to things like overall complexity and / or script load, etc.
    • However, while both script load and avatar complexity do have a general impact on performance, LL does not believe they are responsible for the issues seen when avatars enter / leave a region.
    • Data has been gathered on the problem, and Rider Linden indicated that LL feel they have a reasonable handle on the problem and are in a position to start experimenting to verify their findings in the near future.
  • There is period of voice maintenance due on Thursday, September 19th. This involves back-end updates to the voice system.
    • It is not clear if these updates will assist those users who, when activating voice, appear to be in their own channel with just one or two other users and must relog to join the main channel with all the others on voice.
      • This is a problem LL has noted, but Vivox have been unable to determine the cause.
      • There is a voice viewer update in the works that includes additional debugging capabilities that might help with determining the problem.

 

2019 SL User Groups week #37/1: Simulator User Group

Natural Falls, July 2019 – blog post

Updated with the full details of the Magnum and LeTigre RC deployments

Server Deployments

Please refer to the server deployment thread for updates.

  • On Tuesday, September 10th, the SLS (Main) channel was updated with server release 2019-08-29T20:20:39.530516 – comprising “simulator component of deploy tooling and process improvements”, and previously deployed to the main RC channels in week #36.
    • This is the update that doesn’t report channel names to the viewer, so Help > About will always report the channel to be “Second Life Server” (SLS) regardless of the channel the region you are on is assigned to.
    • There is a race condition that can cause double rolls of a deployment some 2 or so hours apart. The Lab is aware of the issue and investigating the cause.
  • One Wednesday, September 11th, the main RC channels will be updated as follows:
    • BlueSteel was updated with server release 2019-09-06T18:49:52.530700, containing the simulator-side script usage improvements.
    • Magnum and LeTigre were updated with server release 2019-09-06T22:03:53.530715, containing the fix  to address most cases of experience-enabled scripts losing association with their experience.

SL Viewer

The Umeshu Maintenance RC viewer, version 6.3.1.530559 and dated September 5th, has been promoted to de facto release status. At the time of writing, the rest of the current official viewer pipelines remain as follows:

  • Release channel cohorts:
  • Project viewers:
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.530100, August 19.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16.
    • Legacy Profiles viewer, version 6.2.3.527749, June 5. Covers the re-integration of Viewer Profiles.
  • Linux Spur viewer, version 5.0.9.329906, dated November 17, 2017 and promoted to release status 29 November 2017 – offered pending a Linux version of the Alex Ivy viewer code.
  • Obsolete platform viewer, version 3.7.28.300847, May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

In Brief

  • Group Chat: there are some reports that group chat has been improved over the last couple of weeks with less drop-outs and issues, although conversations arrived with the original post missing still appears to be an issue.
    • Oz Linden acknowledged the Lab is still tweaking on things to try and brig about improvements.
    • Simon Linden indicated that it is one of those problems where running the service on more capable hardware doesn’t always improve things – as the Lab found out in tests earlier in the year.
  • Sound file duration: a good while ago, the viewer had a change to allow 30-second sound files. However, it has been awaiting a server-side update to support it. When asked about the status of the update, Oz Linden replied:

Can’t predict now when the 30 second sound limit will happen, but it’s part of a high priority bundle of stuff, so Pretty Soon™

 

2019 SL User Groups week #36/1: Simulator User Group

Carolina, July 2019 – blog post

Server Deployments

Please refer to the server deployment thread for updates.

Apparently, as a result of Labor Day in the USA and the threat of hurricane Dorrian, there was no SLS (Main) channel deployment on Tuesday, September 2nd.

As a result, on Wednesday, September 4th, there will be deployments across the entire grid – the SLS (Main) and the primary RC channels. The order of deployments will be the SLS (Main) channel, starting 30 minutes ahead of the usual time. Once completed, and providing there are no issues, it will be followed by the RC deployments.

  • The SLS (Main) channel is to be updated with server maintenance package 19#19.08.23.530380, comprising maintenance fixes and Log improvements, and previously deployed to the Magnum and LeTigre RC channels.
  • The three main RC channels (Magnum, LeTigre and BlueSteel) will all be updated with the same server maintenance package – 2019-08-29T20:20:39.530516 – comprising “simulator component of deploy tooling and process improvements”. This update sees the introduction of the new Simulator release notes pages (see below).

There will also be a small move of more regions (around 100) to the Cake RC channel on Thursday, September 5th. This will be a further expansion for the script usage improvements. People wishing to test these updates can put in a ticket to have their region moved to Cake – but should note that updates to that channel do not necessarily follow the same weekly schedule as the main RCs.

Release Notes

In May 2019, the viewer release notes moved to a new series of web pages (see: New SL viewer release notes pages: an overview). The RC deployments scheduled for Wednesday, September 4th will see the all release notes for the RC channels move to these pages as well. This means:

  • The there is a new link for simulator release notes on the main About Release Notes page.
  • This link leads to a list of recent simulator releases notes.
  • The release notes themselves have a new “more specific” version number system – as witnessed with the simulator release for the RC channels noted above.

It has been promised that these pages will be “more informative” with release information. This appears to take the form of Jira report reference numbers.

The link to the simulator release notes is now live on the About Release Notes page – click for full size, if required

SL Viewer

At the time of writing, there have been no updates to the current list of existing official viewers, leaving the pipelines as follows:

  • Current Release version 6.3.0.530115, formerly the Bakes on Mesh RC viewer, promoted August 26th – NEW.
  • Release channel cohorts:
  • Project viewers:
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.530100, August 19.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16.
    • Legacy Profiles viewer, version 6.2.3.527749, June 5. Covers the re-integration of Viewer Profiles.
  • Linux Spur viewer, version 5.0.9.329906, dated November 17, 2017 and promoted to release status 29 November 2017 – offered pending a Linux version of the Alex Ivy viewer code.
  • Obsolete platform viewer, version 3.7.28.300847, May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

In Brief

  • “[Second Life: Failed to grant capabilities”] – this is an error people have been seeing recently. It generally occurs as a result of a general failure to set up communication between your viewer and a region when moving into that region.
    • When first connecting to a region, the viewer asks for – and  should receive – a set of “capabilities” – URLs where the viewer can connect and get or send info.
    • If this fails, it’s unlikely the viewer will be able to work with the region. The most effective way to deal with this is have the region restarted – so if you’re not the region holder, please drop them a line to let them know the region needs restarting or file a support ticket. If you are the region holder and you cannot restart the region or the issue is not resolved following a restart, please file a support ticket.
  • LL continues to investigate the issue whereby any scripts compiled to an experience prior to simulator version 19.08.06.529800 will not recompile on 19.08.06.529800 or later. In fact, Simon Linden was working on the issue while attending the meeting). The root cause does not appear to be within the updated server code, and for now, the only solution appears to be recompiling everything in the experience – which is acknowledged as being less than optimal.