SL project updates 41/2: TPVD meeting, attachments & Interest List issues

Ironwood Hills; Inara Pey, October 2015, on Flickr Ironwood Hills (Flickr) – blog post

The following notes are primarily taken from the TPV Developer (TPVD) meeting held on Friday, October 9th, 2015. A video of the meeting is included at the end of this report, although the opening few minutes of the meeting are missing. Because of this, I’ve included an audio file as well to cover the opening of the meeting.  Time stamps to both the audio and the video are provided, and my thanks as always to North for the video recording and providing it for embedding.

Please note that any extraneous noises on either the audio or the video are the result of an open mic in the meeting itself, and not from myself or North

Server Deployments: Week 41 – Recap

As per the server deployment thread, there were no scheduled deployments / restarts for the three RC channels during the week, while the Main (SLS) channel received the same server maintenance package deployed to the RCs in week #40.

SL Viewer Updates

 

[00:00 – 02:10 on audio]

CEF Project Viewer

On Wednesday, October 7th, the Lab issued the long-awaited project viewer utilises the Chromium Embedded Framework (CEF) for media handling – and more – in Second Life. Version 4.0.0.305703 sees CEF replace the ageing llqtwebkit functionality for media management in Second Life (also see my separate update).

[13:25 video] The emphasis from the Lab is that if you use web media in-world test your products / projects / uses thoroughly with the CEF project viewer, and make sure you continue to test as the project viewer is updated, in order that specific issues encountered can be reported and looked at while the lab is still developing the viewer.

It also appears that QuickTime media may still work on this viewer, rather than being disabled, as had been indicated in my last TPVD update. However, this should not be taken to mean either QuickTime or Flash will be supported by the Lab going forward, or that media using them will be viewable by all users. CEF, HTML 5, etc., are the future of media in SL.

Other Viewer Updates

On Friday, October 9th the HTTP updates viewer (project Azumarill) was promoted to release Candidate status with the release of version 3.8.5.305771. This viewer provides improved performance and stability. Impacts include: asset uploads, AISv3 inventory manipulation, VMM, Experience management, LSL compilation, Simhost event polling, etc.

Currently, it appears as though the Maintenance RC viewer, version 3.8.5.305531, is in line to be promoted to the de facto release viewer in week #42 (week commencing Monday, October 12th).

An update for the Oculus Rift project viewer (currently version 3.7.18.295296, and now almost a year old), is still expected, but it is subject to other work being undertaken at this point in time.

Attachment Loss on Region Crossings

[03:44 audio;  00:00 video]

The Lab recently carried out extensive work to reduce the number of attachment loss issues occurring as a result of issues caused directly within the viewer itself (project Big Bird). However, while this work fixed a lot of issues, some still remain, particularly during region crossings, whether physical or via teleport (see BUG-7761 as an example).

Essentially, what happens when moving from one region to another is that all of the attachments on your avatar must get new IDs from the simulator to which you are moving. The viewer then has to associate these new IDs with the attachments you are wearing, and the locations where those item as actually attached. In doing so, it attempts to preserve continuity  by keeping things where they were according to the region you’re leaving, and then updating them with the information it receives from the new region.

A problem I sometimes encounter when flying / boating is returning home and finding one of my scripted mesh shoes has been detached at some point during the trip
A problem I sometimes encounter when flying / boating is returning home and finding one of my scripted mesh shoes has been detached at some point during the trip

This obviously involves a lot of messages being passed back and forth between server and viewer – and the more attachments you have, the greater the number of messages being passed back and forth.

Additionally, if the attachments are scripted, further messages relating to script states, etc., also need to be passed relating to their state, etc., which adds to the load. Finally, all of these messages may use different transport mechanisms to pass between server and viewer.

This means there are many opportunities for messages to arrive out-of order due to race conditions, etc., or to be dropped and lost because of possible network issues and some messaging mechanisms not having a retry option, etc. It is these problems which tend to result in issues with attachments being removed, etc.

The Lab is interested in trying to eliminate as many of these problems as they can (allowing for the fact some might be related to your network connection, and possibly outside of their ability to control). However, in order to do so, they first need to identify exactly what is going on, and this requires examples of attachment losses, etc., that are consistently reproducible (e.g. attachment type X will always detach when crossing between regions Y and Z, for example). It is these kinds of consistent examples which are proving hard to find – so if you do know of one, please raise a JIRA outlining it step-by-step.

Prim Properties Reversions

[08:30 video] An irritating issue since the Interest List updates is objects that change state via script often appear visually in the wrong state – a door that is open appears visually to be closed (but you can still walk through it), lights which are off appear on, etc., – see BUG 7084.

The Interest List is the mechanism which controls how the data relating to your in-world view is handled by both the server and the viewer. This includes what is sent to the viewer, what is retained by the viewer for reuse and things like the order in which objects are rendered when you log-in to SL or teleport (so that the “interesting” objects which are closer to you or which are particularly large should render first, for example).

In order to provide a general improvement to SL performance, considerable effort was put into revising and trying to improve the ways in which the Interest List is data is used / reused / updated. However, a downside of this, is that updates on objects that change their state may cease if they are not directly in your field of view.

So, if you remotely open a door that is not in your line-of-sight in-world (as per the example given in BUG-7084), the update on the door’s new status isn’t necessarily sent to the viewer, because it is something the viewer can’t “see” and so isn’t interested in. This means that when you come to the door, the simulator regards it is “open”, allowing you to walk through it, while the viewer “sees” it as closed.

Again, one of difficulties with these types of issues are not all of them are hard to consistently reproducible – even the rezzing from a box suggested in the text chat in the meeting is necessarily reliable, as I’ve found myself whilst recently working on a large in-world project at LEA 6. So, if you do come across a means by which these problems can be consistently  reproduced, please JIRA them with the Lab with step-by-step instructions, so that further investigations can take place.

Other Items

Holiday Season

[02:45 – 03:40 on audio] The year is now reaching the winter holiday season – Thanksgiving in the USA towards the end of November, and then the Christmas / New Year period. As a result, there will be a further slowdown in releases, etc., as these periods are marked by code freeze / no change windows designed to minimise the chances of unexpected issues arising which may adverse impact Second Life during the holiday season.

The precise dates of the code freeze / no change windows have yet to be finalised, but will be reported when announced.

Firestorm Release

[02:15 – 02:29 on audio] Allowing for the next LL viewer promotion, it is likely that Firestorm will enter feature freeze in mid-October, preparing the way for a new release around mid-November.