SL project updates 37/2: TPV developer meeting and more

Sommergewitter; Inara Pey, September 2015, on FlickrSommergewitter September 2015 – blog post

The following notes are primarily taken from the TPV Developer (TPVD) meeting held on Friday, September 11th, 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 – Week 37

As always, please refer to the server deployment thread for additional information.

  • The Main (SLS) channel did not have any deployment / restart during the week, largely due to the fact the one deployment in week #36 was to a single channel (BlueSteel), which was rolled-back on Thursday, September 3rd
  • The three RC channels all received a new server maintenance project, comprising internal simulator fixes.

Upcoming LSL: llGetAttachedList()

The Week #38 (week commencing Monday, September 14th should have a new LSL function rolling to at least one RC channel.

llGetAttachedList() is a new function that will return a list of root keys of all visible attachments worn by an agent except for HUDs. Originally a feature request (see BUG-9683), which also lists a number of potential benefits of such a function. The wiki page for the function is still in preparation,but the function itself can be tested on the Aditi (beta grid) region of Tehama. Note that it will only work when invoked for a target within the same region. I’ll have more on this should the function make it into an RC deployment in the coming week.

SL Viewer Updates

Mesh Importer

[01:50] The Mesh importer viewer continues in RC status as the Lab continues to fix problems either found internally or by those making use of the RC viewer, although Oz notes the problems are gradually becoming less severe in nature. However, it’s still not quite ready to be promoted to the de facto viewer.

Notifications Viewer

[02:39] The notifications viewer has been getting a “lot of exercise” as a project viewer, and looks set to move to release candidate status in the near future.

Quick Graphics Viewer

[03:11] The Quick Graphics project viewer, which presents the new Avatar Complexity capability and the ability to save and re-load graphics settings more-or-less on the fly,  updated to version 3.8.4.304916 on Thursday, September 10th. There are still some further adjustments being made to the viewer, but it should progress to RC status some time in the next two weeks or so.

[46:13] One of the changes which may be made to the Avatar complexity aspect of the viewer is a further toning-down of the colour intensity of avatars rendered as “Jelly Babies”. Also, the values on the Complexity slider my be further adjusted to assist those with low-end systems.

[50:20] Some have expressed an opinion that having an “infinite” upper limit to Avatar Complexity is counter-productive, as it does little to discourage people from having complex avatars which can tax other systems. In reply to this, Oz Linden said:

I really want to emphasise this, and I hope people understand it. we’re not trying to create a standard for what is “good”. what we’re trying to do is inform people about what effect they’re having and to control the impact other people have on them,  and then let things sort themselves out.

[54:28] Also with reference to this viewer, the Advanced Graphics floater has been updated to a 2-column format in response to concerns that the earlier, large single-column floater could not be easily displayed on some laptops / lower resolution monitors.

They updated Advanced Graphics floater in the September 10th Quick Graphics project viewer, version 3.8.4.304916
The updated Advanced Graphics floater in the September 10th Quick Graphics project viewer, version 3.8.4.304916

I’ll be taking a further look at Avatar Complexity once the viewer reaches RC status.

Project Azumarill

[06:25] Project Azumarill is the name of the Lab’s new project viewer, version 3.8.4.304871, which offers a complete replacement of the under the hood HTTP infrastructure, and which impacts all aspects of the viewer using simulator capabilities.

This is essentially building on Monty Linden’s HTTP work, which was applied to the most critical paths within simulator / viewer communications, and sees Rider Linden apply the changes through the viewer, and so includes, but is not limited to the following:

  • Asset upload (Images, Meshes, Animations)
  • AISv3 inventory manipulation
  • Viewer Managed Marketplace
  • Simhost event polling
  • LSL script compilation
  • Experience management (blocking, allowing, creating).

Currently, the new code is sitting in the viewer alongside older code, although the latter will be removed prior to the viewer being promoted to the de facto release viewer. While a significant update, it is anticipated that the viewer will progress rapidly through the release process, as functionally, there isn’t that much which can be said to be new for people to play with. As such, it will hopefully go through a total of two project viewer iterations prior to becoming a release candidate, then move fairly quickly from RC to release.

Continue reading “SL project updates 37/2: TPV developer meeting and more”

SL Project updates: 37/1: inventory reliability improvements

Mysts of Eyr; Inara Pey, September 2015, on FlickrMysts of Eyr September 2015 – blog post

At the TPV Developer meeting on Friday, September 11th, the Lab provided further information about the ongoing work to improve inventory handling and management in Second Life.

As has been reported through these pages, the Lab has been tackling a wide range of issues related to inventory, inventory management, inventory losses, etc., over the last several months. The updates given at the TPV Developer meeting were to provide information and news on both the work to help fix issues around large “flat” inventories, and on new and upcoming work in rationalising inventory related code within the viewer, with Izzy and Aura Linden providing the updates.

The video of the meeting can be seen here, and time stamps are given below to the relevant points in the video where the items are discussed.

“Flat ” Inventories

[10:15] This is something that has been mentioned through a number of project updates in these pages. However, in summary: if you have a large “flat” inventory structure with tens of thousands of items contained in single folders at a time, rather than being split between multiple sub-folders, you can experience significant issues in logging-in to Second Life, up to and including being completely unable to log-in at all.

Earlier in the year, the Lab developed an inventory transform tool which, when run, can take the contents of such large folders and split them into smaller, easier-to-load sub-folders. This tool has been undergoing testing for some time, but has now been issued to the Lab’s support teams. So, those encountering log-in issues and know they have large, relatively “flat” inventory structures can raise a support request (Premium or Basic) and have the tool run against their inventory, thus hopefully fixing  matters for them.

Inventory Code Improvements

Task Paths

[12:50] Currently, the viewer has multiple paths and mechanisms by which inventory tasks can be undertaken / completed. Aura is therefore working through the viewer code to try to rationalise how inventory is handled, ensure that older paths / mechanisms are properly deprecated / removed and replaced by newer and more robust mechanisms.

[14:20] The first set of changes Aura is working on is to remove from the viewer all of the old UDP inventory messaging paths which have already been replaced by more robust mechanisms (and in some cases already had the server-side support for them removed), but which have until now remained a part of the viewer’s code.

These changes should be appearing in a project viewer for testing by TPVs in the next month or so. This is to allow them to identify possible impacts on any dedicated inventory handling mechanisms they may use (e.g. RLV / RLV/a) which may also use the older UDP messaging paths, and address any updates they may need to made as a result.

Once this viewer reaches release status, the Lab will seek to remove any server-side support for legacy UDP for inventory operations from the simulator code. Again, this will be done in consultation with TPVs, with testing regions available on Aditi beforehand, so the Lab can again be warned if they are triggering potential problems which may need to be thought about / addressed.

Code Refactoring

[19:35] The second element in the work is a refactoring of the viewer inventory files. This work will initially rationalise inventory functions within the viewer so that they are more closely coupled with their actual purpose, rather than being more widely scattered through the viewer code, and will not involve any actual code changes.

However, a further part of the work will involve code changes, with the overall aim being to make the code a lot more readable, easier to test and maintain and understand.

Server-side Inventory Rules Enforcement

[23:32] Additionally, once the above work has been carried out, new checks will be added server-side to prevent actions which are known to cause inventory problems from happening.

For example, there have been issues where people have found themselves with more than one Current Outfit folder or with multiple Trash folders, both of which can result in complications when using the viewer. The simulator-side rules, when put into place, will be designed to prevent these kinds of instances occurring.

Time Frames

As noted, the first phase of Aura’s work – the initial code deprecation work – will be appearing in a project viewer in the next month or so, and the work will progress from there in the stages, thus:

  • Remove the deprecated inventory message paths from the viewer
  • Remove any remaining simulator support for deprecated inventory messaging support
  • Rationalise the inventory functions in the viewer
  • Refactor the viewer’s inventory code in the interests of stability, maintenance, testing and update
  • Add simulator checks to prevent folder duplications, etc

How long it will take to implement each phase isn’t currently clear, and will to a degree depend on feedback about issues discovered by TPVs, as well as the results of continued testing by the Lab.

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.