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…

Second Life project updates 31/2: TPV Developer meeting

Up to U; Inara Pey, July 2015, on FlickrUp to U, July 2015 (Flickr) – blog post

The following notes are primarily taken from the TPV Developer (TPVD) meeting held on Friday, July 31st. 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 Week #31 – Recap

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

  • Tuesday, July 28th, saw the Main (SLS) channel receive the server maintenance package previously deployed to the three RC channels, comprising internal server fixes related to Experience Keys, comprising null pointer checkers and a configuration option for the number of Experiences a Premium member can have.
  • On Wednesday, July 29th, the three RC channels will be updated with a new server maintenance package aimed at fixing recent group-related issues (BUG-9725 ,BUG-9735 and BUG-9695). Reports following the deployment seem to indicate the issues appear to have been addressed.

Viewer-Managed Marketplace

As I’ve reported elsewhere, the Lab has now announced the retirement of Magic Boxes and the final shut-down of XStreet. Merchants have until August 17th to manually migrate their Magic Box items to VMM if they wish to have sales continue uninterrupted. After that date, the Marketplace will cease delivering goods from Magic Boxes. However, XStreet will remain available through until August 27th.

Wednesday, July 29th saw an updated version of the VMM viewer released. Version 3.8.2.303891 does not contain any functional changes to the VMM code, but does include a number of fixes which will hopefully reverse the elevated crash rates the previous RC version had been suffering when compared to the release viewer.

Providing the stats confirm this after the weekend, and no other emergencies occur, the VMM RC viewer will be promoted to the de facto release viewer in week #32 (week commencing 3rd August).

[00:35] The automated migration of all Direct Delivery items has now completed, and appears to have gone smoothly. The Lab is working through what Brooke Linden describes as “minor problems” directly with the Merchants who have encountered them. In addition, feedback from Merchants is currently being used to update the VMM Knowledge Base documents.

There was also an apology for the sudden change in plans regarding the start of the migration process, and the lack of forewarning to TPVs (and Merchants) on the matter.

 Grid Status Page RSS Feed

[08:06] Back towards the start of the year, the Lab attempted to make changes to the Grid Status page; however, the attempt caused issues, and things were subsequently reverted.

During the Third-Party Developer meeting on Friday, July 31st, Oz and Steven Linden indicated that the Lab is going to make a further attempt to update things. The aim is to update the RSS feed from RSS version 1 to RSS version 2.

As existing web pages, etc., using the feed may need to be adjusted to use the new feed format, a, proxy URL is available (http://beta.status.secondlifegrid.net/feed) using the new feed format is available for testing purposes. This is already using live data, and the Lab’s plan is to allow it to run for a few months in order to ensure there are no issues, and then around November of December 2015, re-direct the existing Grid Status URL to point to the new feed, thus hopefully avoiding the upsets that came with February’s attempt to make changes.

Linden Parcel and Region Damage

[11:16] The Lab has put forward a proposal to improve how Damage can be managed at the region / parcel level. For detail, please refer to my separate report.

Unified Snapshot Floater

[19:16] As indicated in week #23 Niran V Dean has contributed his recent updates to the unified snapshot floater to the Lab, where they’ve been under review. The majority of these have now been approved, and are expected to appear in a Snowstorm contributions viewer in the near future.

Improvements to Prevent No Copy Item Losses

[20:14] As part of ongoing efforts to improve inventory handling, the Lab has been working on some simulator-side updates designed to fixes some issues related to content loss of No Copy objects – notably related to race conditions which can occur and result in rezzing failures and the subsequent loss of No Copy items.

These updates are again a result of the Lab’s continued investigation into inventory issues that started back in February, when they requested users complete an inventory loss survey. It is not anticipated that these changes will in any way affect the Return To Last Position capability, as used by some TPVs, nor do they involve any viewer updates. However, prior to their  deployment, a pile-on test will be held on Aditi, most likely on Friday, August 7th, which will involve TPVs and users putting the changes through a series of tests.

Assorted Notes

  • The Windows 10 detection fix, contributed to the Lab by Ansariel Hiller and referenced in part 1 of this report, will be incorporated in to a Snowstorm contributions viewer
  • There have been no recent code updates from Vivox for voice; Oz is hoping to have news  from them by the next TPV Developer meeting on Friday, August 21st
  • The inventory transform for fixed large “flat” inventories which are causing log-in issues (see my week 15 report) has been under testing, and is currently going through final QA internally at the Lab in preparation for deployment.