Second Life project updates 37: Server, viewer

Tranquility Dreams; Inara Pey, September 2015, on FlickrTranquility Dreams September 2015 (Flickr)

Note: Due to a lack of concentration on my part, I managed to originally publish this article in Private mode, and only realised when looking to obtain the details of BUG-9504 for the Week 38 update! I’ve now flicked it to public for completeness of reports.

Server Deploys – Update

As always, please refer to the server deployment thread for the latest information / updates.

  • On Tuesday, September, 1st, the Main (SLS) channel received the server maintenance package deployed to all three RC channels in week #35, comprising:
    • A fix for BUG-9504 “Clicking on any object that affects the navmesh while in Mouselook dirties the navmesh”
    • Internal simulator fixes
  •  On Wednesday, September 3rd, the BlueSteel RC received an updated version of the server maintenance package first deployed (and subsequently rolled back) in week #34, which comprises internal fixes aimed at improving inventory performance.

BlueSteel Issues

The BlueSteel deployment was followed by issues with note cards and scripts, including issues trying to create / save scripts and note cards created on BlueSteel regions and when trying to open scripts / note cards created on other channel regions while in a BlueSteel region (see BUG-10183).

As a result of these problems, and following investigation by the Lab, the BlueSteel deployment was rolled back on Thursday, September 3rd.

SL Viewer

The Quick Graphics project viewer, comprising the new graphics presets capabilities and Avatar Complexity options updated on Thursday, September 3rd to version 3.8.4.304761. An overview of the capabilities can be found in this blog, and official information on Avatar Complexity can be found in the SL wiki.

Second Life project updates 36/1: server, viewer

Le Avaline Village; Inara Pey, August 2015, on FlickrLe Avaline Village August 2015 (Flickr) – blog post

Server Deployments Week 36

As always, please refer to the server deployment thread for the latest information / updates.

  • On Tuesday, September, 1st, the Main (SLS) channel received the server maintenance package deployed to all three RC channels in week #35, comprising:
    • A fix for BUG-9504 “Clicking on any object that affects the navmesh while in Mouselook dirties the navmesh”
    • Internal simulator fixes
  •  On Wednesday, September 3rd, the BlueSteel RC received an updated version of the server maintenance package first deployed (and subsequently rolled back) in week #34, which comprises internal fixes aimed at improving inventory performance.

Due to the issues experienced when this latter package was deployed to all three RC channels (such as the “zombie eyes” situation), the package is only being deployed to the one RC; Magnum and LeTigre will remain unchanged from week #34, keeping them on the same release as the Main channel.

SL Viewer

On Tuesday, September 1st, the Mesh Importer RC viewer updated to version 3.8.4.304605, making its promotion to the de facto release viewer in week #36 unlikely, but not impossible.

Region Restarts and Caps Failures

A problem often encountered following region restarts is that some regions come back with a caps failure (so a lot of things that should work, don’t). While less frequent an occurrence than has previously been the case, the problem does still occur. The problem is thought to be at the server level, as regions hitting the problem tend to all be located on the same server.

Commenting on the matter at the simulator User Group meeting on Tuesday, September 1st, Simon Linden said:

I have a good theory about caps failure on the rolls but the last time I tried to fix it, the update went badly and we rolled back :). My theory is good, the side effect was bad.   When we restart regions, we do them all at once.   My fix was to pace that slightly, and not overwhelm the caps system.   However, the delays confused the system starting the grid, and it started the same regions multiple times, which didn’t go well. And of course it didn’t do that on the beta grid.

Since his initial attempt at correcting things, Simon has been engaged on other work (such as getting group chat fixed), but he is hoping to get back to working on this problem at some point in the future.

Second Life projects update: 34/2: TPV Developer meeting

Strings
Strings, Cica Ghost – blog post

The following notes are primarily taken from the TPV Developer (TPVD) meeting held on Friday, August 21st, 2015. A video of the meeting is included at the end of this report, with any time stamps in the following text referring to it. My thanks as always to North for the recording and providing it for embedding.

Server Deployments – Recap

There was a single server maintenance package deployed during the week, which was delivered to the BlueSteel RC on Wednesday, August 19th. This was intended to provide fixes for  items and folders getting mixed up. however, this was subsequently rolled back on Thursday, August 20th.

Viewer Updates

Project Quick Graphics

On Friday, August 21st, the long-awaited Avatar Complexity / graphics presets viewer arrived in project viewer form. Version 3.8.4.304433 is being referred to as “Project Quick Graphics”. I provided an initial look at this viewer in pre-release, but I now have an updated overview available.

The viewer includes the means to create and save sets of graphics presets which can be quickly loaded according to need / circumstance to help maintain a viewer's performance
The Quick Graphics project viewer offers the means to create your own sets of graphics presets you can quickly swap between according to needs / circumstance. It also include the new Avatar Complexity capabilities – see my overview for more information

As noted in that report, the Avatar Complexity default you get is based on the rendering performance of your system. however, this might be adjusted by the Lab during the time the viewer is available at a project status.

Other Viewers

[02:00] An update to the Oculus Rift viewer is still anticipated, although this has tended to be pre-empted by other things, and may be again.

There have been no other viewer updates since the promotion of the Maintenance viewer on Tuesday, August 18th, as reported in part 1 of this update.

[23:35] The will, at some point be an experimental viewer build, which should lead to a project viewer in the future, using the FMod Studio for audio.

HTTP Work

[08;00] Rider Linden has been engaged in further HTTP work, specifically aimed at the viewer with the intent of reducing the paradigms for how HTTP should be used within the viewer from 4 to a single, consistent approach. He has most recently been engaged in aligning recent HTTP updates made to the viewer with his own work.

[19:36] The Lab is still looking for move more asset types from delivery using UDP via the simulator to delivery using HTTP via the CDN, but this is pending the completion of Rider’s HTTP work. Overall, the view is that there is no reason why any asset that goes to the viewer should be cached and delivered via the CDN.

Inventory Improvements

[10:48] The lab is continuing to investigate causes of inventory issues with the intention of reducing them. In particular, they are considering server-side enforcement  on how inventory should be organised.

The idea is not to prevent how people organise their inventories, but rather to ensure things that simply should not happen under normal use, but which have been shown to lead to inventory losses when they do occur, are no longer possible. Examples of this include a user’s inventory gaining more than one Trash folder, or the system allowing folders to be created without an associated system ID, and so on. The most effective way of achieving this is through server-side rules enforcement.

While the Lab is not ready to start implementing such changes as yet – they are still investigating, as noted – these changes are part of an overall goal to migrate all inventory operations over to AIS (Advanced Inventory System) and then to deprecate older inventory code – all of which will involve changes to the viewer. This means that as this work progresses, viewers not supporting the AIS v3 code will no longer be able to perform inventory operations.

Server-side Validation

[16:40] Commenting on issue of validation of uploads in general, Oz Linden said:

I would like to add validation for more things that get uploaded [but] of course there’s always the backward compatibility problem, people complaining that once upon a time I could upload this, and now I can’t…

However, he went on to say that there is a case for not limiting validation of uploads purely to the viewer, as is currently the case:

There’s nothing wrong with also checking in the viewer, but if it’s not the model we expect to be true of the world, there should be validation on the server because we have a lot of third-party viewers … So we really can’t count on the viewer to get it right, there are too many of them. And if nothing else, some things that can cause crashes that might be deliberately put into viewers … that might cause crashes in other people’s’ viewers, and that’s not good. So we have to try to protect against that.

The best place to put that protection, if we can do it, is to put it one the server-side, if we can do it. So there are lots of things that, over time, we may add checking of things, as they are uploaded, on the server, and we may reject uploaded things, and we may reject uploaded things that are inappropriate.

How quickly we will be able to do that will probably vary with what the upload type is and what time we have between doing dazzling new features; but if we find something related to some dazzling new feature we can add some checks to, we might do that.

Continue reading “Second Life projects update: 34/2: TPV Developer meeting”

Second Life project updates 34/1: server and viewer updates

Baby's Ear; Inara Pey, July 2015, on FlickrBaby’s Ear, July 2015 (Flickr) – blog post

Server Deployments

As usual, updates and feedback may be available through the forum deployment thread.

There was no main channel roll on Tuesday, August 18th. The LeTigre and Magnum release candidate channel will also remain as they are for week #34.

The BlueSteel release channel received a new server maintenance package on Wednesday, August 19th, which includes internal improvements for inventory performance.

Commenting on the changes rolling to BlueSteel, at the simulator User Group meeting on Tuesday, August 18th, Simon Linden said:

If you notice anything on the Bluesteel RC channel after the roll, please file a jira on it with all the info you can about time and place and what happened … these changes aren’t about per[mission]s, I believe, but items and folders getting mixed up … Someone dug deep into the inventory system and identified some problems and tried to fix them.

The mention of permissions in his description of the update was the result of a question on whether the update would correct “perms bypassing”,  which he addressed directly:

I know there’s been some talk about permission issues but from what we can tell, there are no _new_ permission problems. The best advice I can give is that you have to be extra careful about changing permissions in inventory (or in an object inventory) and then transferring it before it gets rezzed. And what I mean by “be extra careful” is, “don’t do that.” 

There is a possible conflict if you change permissions while in inventory, and then pass it (without rezzing) to someone else.  In that case, the “next owner” permissions can conflict with what you tried to set, so the result may not be what you expect. That’s been around forever and is often the reason people end up making copyable objects that they want “no-copy”.

 SL Viewer Updates

On Tuesday, August 18th, the Lab promoted the summer Maintenance RC viewer, version 3.8.3.304115 as the de facto release viewer. This viewer includes over 50 maintenance fixes and update – please refer to the release notes for details.

The anticipated arrival of the Avatar Complexity / Graphics Presets project viewer in week #33 failed to occur, so perhaps it will arrive later in week #34.

SL project updates 33/1: server, viewer, Experiences

Eclectica; Inara Pey, August 2015, on FlickrEclectica August 2015 (Flickr) – blog post

Server Deployments

There was no deployment to the Main (SLS) channel on Tuesday, August 11th, following the lack of an RC deployment in week #32.

The three RC channels *should* get a new server maintenance package on Wednesday, August 12th. Details were still TBD at the time of writing, however, it is thought to be a series of updates aimed at reducing the rick of No Copy inventory item losses due to race conditions occurring between the viewer and server.

SL Viewer

There is not expected to be any viewer promotion this week given the Viewer-Managed Marketplace viewer was promoted in week #32, and both of the active RC viewers were updated to match its code base.

Avatar Complexity (aka Jelly Babies) will hopefully appear in week #33 as a project viewer, as per the Lab's timetable for the project
Avatar Complexity (aka Jelly Babies) will hopefully appear in week #33 as a project viewer, as per the Lab’s timetable for the project

However, it is anticipated that the Avatar Complexity / graphics preset viewer will appear in project viewer during week #33.

This is the viewer which enabled yo to set a rendering cost above which other avatars and their attachments will be rendered at a solid colour (aka “Jelly Babes”) in order to reduce the load on your GPU. It also provide a means by which users can save and restore different sets of graphics settings within the viewer. The idea being that users can then switch between different presets according to circumstance to help with viewer performance.

I provided a high-level overview of this viewer in June 2015, and I’ll be taking a closer look at it once the project viewer is available for people to download and try.  Currently, the main thing apparently preventing the viewer reaching a project release status is that the Lab is making some final adjustments to get the frequency of the Avatar Complexity notifications it sends to users. the viewer is designed to inform those who have avatars with a high rendering cost how many people around them are rendering them as a Jelly Baby, for example, and the balance of these messages need to be reasonable.

The viewer includes the means to create and save sets of graphics presets which can be quickly loaded according to need / circumstance to help maintain a viewer's performance
The viewer includes the means to create and save sets of graphics presets which can be quickly loaded according to need / circumstance to help maintain a viewer’s performance

Experience Keys / Tools

An issue with Experiences is that access to the KVP data store (used to store data and values for an Experience) is currently handled on the same thread in the region and object rezzing. This means that reading / writing from / to the KVP store can be impacted when a region is busy with people rezzing items, etc. Requests have been put to the Lab to move the KVP access to a separate thread, and now he has completely a number of other tasks, Simon Linden is hoping to look into this and get things separated.

In addition, the Lab is mulling options for further Experience Keys / Tools enhancements. Nothing specific has been decided, and the emphasis is that any changes made will be small, rather than anything “massive”. Without the Lab committing itself to any of them, some of the following were suggested for consideration during the Simulator user group meeting on Tuesday, August 11th:

  • Limiting draw distance within an Experience
  • Providing a means to force sit avatars on items, when required
  • Providing a means to force a user into Mouselook at certain points in an Experience and then back out of Mouselook
  • Providing a means to control set the windlight environment and prevent viewer-side overrides.

A problem with ideas like these is that the options are controlled by the viewer, and could theoretically be over-written by the user unless an RLV-like capability was implemented to prevent cheating by a user simply overriding a setting. However, the Lab are poking at ideas, and we might see further updates of some sort appearing in the future to further enhance Experiences.

Second Life project updates 32: Server, viewer, misc

PaleoQuest; Inara Pey, July 2015, on FlickrPaleoQuest, July 2015 (Flickr) – blog post

Server Deployments Week 32 – Summary

On Tuesday, August 4th, the Main (SLS) channel received the server maintenance package delivered to the RC channels in week #31. The focus of this release with to fix a number of Group management bugs:

  • BUG-9725 – Activating a group fails on first selection on Second Life Server 15.07.09.303393 & RC
  • BUG-9735 – Unable to Edit Group Parameters after being made OWNER of newly created group
  • BUG-9695 – [Project Notice] First attempt at joining a group fails (also happens with current release viewer)

Following the deployment of the update to both the RCs last week and the Main channel this week, indications are this these bugs have been fixed.

There were no deployments to the RC channels.

Viewer Updates

Monday, August 3rd saw the Viewer-Managed Marketplace RC viewer, version 3.8.2.303891, promoted to the de facto release viewer.

As a result of this, the two remaining active RC viewers were also updated to parity with the release viewer, with the Mesh Importer viewer updating to version 3.8.3.304090 on Thursday, August 6th, and the Maintenance RC updating to version 3.8.3.304115, also on August 6th.

Other Items

Rezzing Objects On Top of Mesh

There have, over the past few months, been increasing reports of issues in attempting to rez objects on top of mesh objects (landscaping element, mesh floors, etc). These take the form of trying to rez an object from inventory, only to get one of two error messages:

  • “Failed to place object at specified location. Please try again” or
  • Can’t rez object at  [coordinates] because the owner of this land does not allow it. Use the land tool to see land ownership”

In addition, rezzed objects can appear to “vanish” when rezzing on some mesh surfaces because they have actually rezzed under the surface in question, etc.

The problem appears related to a combination of viewer raycasting issues and uploaded mesh objects having incomplete physics hull as a result of a fault in the mesh uploading process. As ChinRey observes, The latter issue has been known for some time, and experienced mesh designers work around it. However, it is possible that newer content creators unwittingly get caught by the problem or that there are older mesh items still in circulation that can cause problems (also see Whirly Fizzle’s observations on BUG-2019).

There are some workaround to the problem, which has been accepted by the Lab. They are not ideal or always workable:

  • Try pointing your camera angle straight down at 90 degrees to the mesh surface or move your camera view further away from the mesh (Whirly Fizzle)
  • If the surface is used frequently for rezzing, try placing a full transparent bank prim over it and then rez on that (Innula Zenovka)
  • If you can, try editing the item in linked mode and check the physic model for the specific surface on which you are trying to rez upon.  If it is prim, try converting it – and just it – to convex hull.  Be aware this could alter the LI for the object; if you get any unexpected consequences, convert it back once more.

As an example, I used the latter for the Trompe Loeil Rustic Pavilion at my home, which was constantly giving me problems. The floor section was set to prim, and converting it to convex hull removed the issue entirely with no side effects for me. YMMV.

Slow-down in News from the Lab

There has been a slow down in activity and news from the Lab. In some quarters, this has been aligned with the idea that there is “not much going on” with Second Life and theat focus has perhaps further shifted to Sansar. In fact, work is progressing with Second Life; however, this is the summer period, when vacations are in progress, and we have recently come out of a period where the Lab has been very focused on specific work – such as ensuring the scalability of Experiences, working on simulator stability and internal fixes, which has come at the expense of “new shiny”, and thus giving the impression “not much” is going on.

This week saw the Second Life development team (and, I assume other directly involved in Second Life) get together in Boston for their regular meeting to discuss the plans for the immediate future. A consequence of this in particular is that there were no meetings on Monday (open-source developers) or Tuesday (simulator user group).

There should have been a TPVD meeting on Friday, but confused communications meant that Grumpity, Oz and I spent the time on our own alternately plotting world domination – if anyone known of any really good mesh Super Villian Sekrit Volcano Lairs, we’d like to know (joking) – and the fact that my hair is enough for me to be Jelly Babied in Grumpity’s viewer.  Guess it’s time to go find some really good, low-complexity mesh hair…