The will be one more week of releases (week 50), prior to the Christmas / New Year code freeze / no change window commencing, which is due to start on Monday December 16th, 2013.
SL Viewer
Two new release candidate viewers arrived in the release channel on Tuesday December 3rd:
Maintenance RC version 3.6.12.284430 comprises a number of fixes, including a fix for the issue of FPS dropping when the Expanded Chat option is enabled in CHUI (MAINT-3375) – download and release notes
Namefix RC version 3.6.12.284383 changes installer naming without modifying channel or application names, but contains no functional changes to the viewer code – download and release notes.
The following notes are taken from the TPV Developer meeting held on Friday November 22nd. A video, courtesy of Northspring, can be found at the end of this report. The numbers in braces after each heading (where given) denote the time stamp at which the topic can be listened-to in the video.
TPV Developer meeting (stock)
No Change Windows
[00:31-02:26]
Thanksgiving
As has been previously noted in this blog, week 48 (commencing Monday November 25th) is code freeze / no change window due to it being Thanksgiving in the United States. This means there was be not server deployments during the week and there will be no viewer release channel updates for the week.
Christmas
The Christmas code freeze / no change window is scheduled to run from Monday December 16th through until Wednesday January 1st. This most likely means that once the code freeze comes into effect, there will be no major server updates until the 2nd week of 2014 (commencing Monday January 6th, 2014), and viewer updates may be likewise.
Both the Thanksgiving and Christmas no change windows effectively mean there are only two full weeks left in 2013 in which server deployments and major viewer updates are liable to be made. However, it is possible both periods could see project viewer updates appearing. This is because any project viewer which may be available will have limited use (only those particularly interested in using / testing it are liable to run it), and so minor updates, etc., to such viewers are not seen as being potentially problematic in terms of support issues.
Viewer Updates
[00:18-00:31]
As note in part 2 of this week’s report, the release viewer was updated using the GPU table updates release candidate, leaving just the Project Interesting RC in that channel.
There are upcoming RCs in the pipe awaiting release, including an updated version of the Google Breakpad viewer and another maintenance viewer RC, while the Project Interesting viewer is to update an update as well. However, as week 48 (commencing Monday 25th November) is a code freeze week for Thanksgiving, it is unlikely there will be any releases in the viewer release channel during the week.
Fitted Mesh Viewer
[03:36-08:44]
A number of JIRA have been filed in relation to the Fitted Mesh project viewer, and are receiving attention within Linden Lab. “We’re getting the repairs together,” Oz Linden reported to those attending the TPV Developer meeting, “And when we’ve got enough of them together to do a release with, that have been tested, then we’ll do an update to that one.”
Avatar Skeleton Files
The Fitted Mesh viewer actually contains a small number of actual code changes; the majority of the changes lay within the avatar skeleton and its associated filed (e.g. Avatar_skeleton.XML / avatar_lad.XML). This has led to speculation that other viewers can update relatively simply by using the revised avatar skeleton files. Responding to this, Oz said:
Ideally that’s true, but it turns out not to be quite completely true. It turned out that there were some code bugs that the new skeleton and weighting exposed. So there are actually some changes that will be beyond that. That is some code [to be changed].
“Adding bones exposed some limitations,” Nyx added.
One of the code fixes which is in progress appears to deal with the issue of how garments weighted to use the new skeleton appear in viewers which do not have the updates, as demonstrated in my preview article on the Fitted Mesh viewer, and shown below.
Time Frame for Formal Release
While the Fitted Mesh project viewer may well see one or more updates before the end of the year, there are no plans to progress it to a release candidate status before the start of the New Year (again, the no change windows would preclude that, at least in part).
Even with the changes now being made, the number of code changes within the viewer is “very, very small”, so when the code is in a position where the Lab is comfortable with TPVs taking it and merging it into their repositories, it should not create major issues. One thing that is not clear at this time is whether merging and incorporating the Fitted Mesh changes will be dependent upon merging other code releases coming out of the Lab, such as the Sunshine / AIS v3 code and the Project Interesting code.
Project Sunshine / AIS v23 Updates
[09:44-14:41]
Nyx Linden
Nyx Linden reports that the Sunshine / AIS v3 updates are going “really well”, and the Lab is focused on cleaning up the last few bugs of which they are aware, and it is hoped that the code will be ready for QA and then a project viewer soon, possibly prior to the December no change window coming into force. If the viewer does make it to a project release prior to that happening, Nyx will likely hold it over until early January.
In the meantime, the Lab is still keen to get started on more extensive load testing for the new inventory service, AIS v3, using the Sunshinetest regions (1-4) on Aditi. They’d preferably like the assistance of TPVs with this, the latter having been given access to the code a couple of weeks ago so that they could start work merging it into test versions of their viewers for this purpose.
Firestorm released a version of their viewer with the new Sunshine / AIS v3 code updates to their Beta testers in week 47, although this has yet to have the legacy baking code added back into it for the OpenSim version of Firestorm. The team is approaching this cautiously, as there is a need to try to isolate the code used in the legacy avatar baking process (which is still used on OpenSim) so that it does not interfere with / get altered by future merges with code from Linden Lab. Once this has been done, Firestorm plan to make the code available to other TPVs so that they do not have the same headache when faced with trying to reintegrate the legacy baking code into their viewers.
Both Firestorm and Kokua (the latter having integrated the Sunshine / AIS v3 changes into a test viewer at the start of November) have indicated they are now in a position to assist with any load tests. The hope is that this will take place during December.
One of the reasons the Lab is keen to get the load testing underway is so that any remaining issues with the server-side code can be identified, investigated and fixed prior to the code being deployed on any RCs on the main grid. Any initial deployment of the server code on the main grid would likely be handled “pretty quietly”, simply because it wouldn’t be exposed to any viewers that did not have the necessary updates.
HTTP Updates
[14:41-22:12]
Monty Linden
“It is currently still in QA,” Monty Linden reported in reference to his current work with HTTP 1.1 changes within the viewer. while no bugs have so far been found with the new code itself, he did reveal that the work has uncovered “quite a few bugs in mesh in general”, which are being filed internally. Currently, it is predicated that the QA round is unlikely to finish before Tuesday December 3rd, so and project viewer will not be appearing until after that date.
In addition to QA testing not finding any bugs within Monty’s code, all the numbers coming out of the performance aspects of the testing are described as “equal or better than past history”.
In the interim, Monty is continuing to lay the foundations for HTTP pipelining. As indicated in my last update on his work, he’s been going through the third-party libraries and their repositories which are used in the viewer builds and updating them. This has led him into a number of “interesting” discoveries as a result of tracking through all of the repository dependencies, etc., and identifying the various package mismatches and unnecessary libraries which are being packaged with the viewer (noticeably in the Linux version of the viewer), as well as one or two libraries which are not being packaged when they should be, as well as the use of multiple versions of the same library (e.g. 3 different version of Boost, 3 or 4 different versions of zlib, etc.).
As always, please refer to the week’s forum deployment thread for the latest news and updates.
Main channel: Tuesday November 19th
The Main channel received the maintenance package deployed to BlueSteel and LeTigre in week 46. This package comprises further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project
Release Candidate Channels, Wednesday November 20th
BlueSteel and LeTigre should receive a new maintenance package comprising the update deployed to Magnum in week 46, with additional bug fixes. However, at the time of writing, testing was still ongoing, and Simon Linden noted at the Simulator User Group meeting on Tuesday November 19th that things were “down to the wire” in terms of getting the release out. If it does go ahead, the package will include:
Bug Fixes
Fixed “Sim crossing on vehicle fails when parcel at opposite sim border is full.” (BUG-4152)
Fixed a case in which a viewer with a high draw distance would not connect to distant regions which are within the draw distance area
Fixed some crash modes
Fixed “Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full”
Fixed “Temp Attachments are sometimes not removed on the viewer when detached from a region change event.”
Fixed “Avatars inside a private parcel can see other avatars 2 regions away” (BUG-4356)
Fixed an issue with object return to inventory on test grids
New Features
Objects which are rezzed by sat-upon or attached scripts no longer inherit the temp-on-rez or auto-return timer of the parent object
Estate managers and region owners are now prevented from being teleported by llTeleportAgentHome()
Parcel owners are now prevented from being teleported by llTeleportAgentHome()
Magnum should remain on the same maintenance project as deployed to it in week 47, but which features a further update to the grey goo fence change made in week 46, but which now only applies to objects which are both large andphysical. This alteration is in response to BUG-4448.
Thanksgiving Code Freeze
Week 48 (commencing Monday November 25th) is Thanksgiving week in the United States, so there will be no server-side releases during the week. Sever updates will resume in week 49.
SL Viewer
No updates as yet in week 47 to the SL viewer.
Default Object Permissions
A number of TPVs include the ability to specify the default permissions applied to a new prim object (cube, cylinder, torus, etc.) on creation. A similar capability is being developed for the LL viewer (STORM-68) by Jonathan Yap, a long-time contributor to the viewer. Currently, the work is awaiting some server-side capabilities tweaking which will likely be done by Andrew Linden. This work is unlikely to be completed ahead of Thanksgiving, so there is no date as to when the new capability might appear.
Default Region Restart Sound and Notification
Jonathan is also working on STORM-1980 (“Improve awareness of region restarting message”) to add a default region restart sound added to Second Life. This would be played automatically by the viewer on receipt of a region restart message, adding an additional warning of an approaching restart for those who may miss the pop-up notices, giving them time to take the appropriate action prior to logging-out. The work on this is also progressing, with a modified notification which includes new colours and a countdown. again, further work is required on this, so there is currently no timescale as to when it will be showing up in an RC viewer.
As always, please refer to the week’s forum deployment thread for the latest news and updates.
Main channel: Tuesday November 12th: no deployment
BlueSteel and LeTigre: received a maintenance package comprising further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project
Magnum received a server maintenance project comprising a number of fixes and changes to script behaviours to prevent Estate managers and region owners from being teleported by llTeleportAgentHome() and so they are no longer affected by scripts which use ESTATE_ACCESS_BANNED_AGENT_ADD
Two further notable bug fixes with the Magnum release were “Sim crossing on vehicle fails when parcel at opposite sim border is full.” (BUG-4152) and a bug where a high draw distance set in the viewer would see the viewer to sometimes fail to connect to the requisite number of regions around it. According to Maestro Linden, this bug affects viewer using the current release viewer code (or earlier), but not the newer “Project Interesting” viewer code.
Speaking at the Server Beta meeting on Thursday November 14th, Maestro commented on the Magnum release, saying, “There were also under-the-hood changes to object inventory management, and llTakeControls() behaviour in LSL. Those shouldn’t cause any behavioural differences, but I added them to the release notes in case they did cause problems.” These are the “clean-up of ‘control grabbing’ in LSL scripts” referred to in the release notes.
Grey Goo Issues
The Magnum update also included updates to the grey goo fence, which is intended to combat griefing. The specific changes were to combat the use of large object rezzing, which can be used to crash a region. However, the tightening of the fence led to unforeseen problems, as Maestro reported:
There are reports in JIRA about building rezzer systems hitting the grey goo fence. The one case I saw was where one rezzed about a dozen large linksets rapidly, and when it hit the grey goo fence, it would ‘fail’ halfway through the rez. Anyway, Simon and I talked about how to address this; for now, I think he’s going to go with a fix where only large and physical linksets are penalised.
Another option under consideration is rather than denying the rezzing, to slow it down. It’s not clear which option will be taken forward by the Lab at this point, for now their intention is to deploy a fix to Magnum in week 47 which “unbreaks”, as Maestro put it, any affected rezzing systems on Magnum regions.
Maestro mixes and Baker be-bops at the Server Beta meeting, November 14th
Upcoming Updates
Maestro Linden gave an overview of some of the updates which will be making their way into a server maintenance package, which include:
A fix for ‘ Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full’, which is similar to BUG-4152, fixed in the Magnum RC deployment in week 46, but only affects meshes and involved the actual entry parcel being full
A fix for “Temp Attachments are sometimes not removed on the viewer when detached from a region change event.”
A follow-up fix to “llTeleportHome() should not teleport estate managers”, mentioned above, which extends the protection to parcel owners (or a group owner if the parcel is group owned)
These may well form a small update package on their own and get deployed to one or more RC channels in week 47.
SL Viewer
The “Project Interesting” RC viewer, version 3.6.11283895,which has the viewer-side updates for the recently interest list updates was released on Thursday November 14th.
The long-awaiting “Project Interesting” viewer has finally made it to release candidate status with the arrival of version 3.6.11.283895 of the viewer on Thursday November 14th.
This viewer represents the last stage in the current work on improving interest list functionality, the code 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).
The vast majority of the interest list work has already been delivered, and everyone should already be enjoying the broader benefits. However, the final phase of the current batch of work has been focused on both server and viewer changes, and the latter have been somewhat delayed due to a number of bugs, some of which were the result of the need to further tweak things server-side which in turn adversely affected the viewer’s behaviour, while others were bugs which appeared to have been dealt with, only to return in a later build.
The “project interesting” viewer updates should further improve scene loading for users through improved caching of region and object data, better use of memory, etc.
The core changes within this viewer relate to what can be cached locally. This should allow the viewer to store more information on objects and regions than is currently the case, enabling it to re-use object / region data without having to rely on the server to re-send the information, improving rendering times when you are exploring a region / teleporting back to a region previously visited.
One of the bugs which delayed the arrival of the “project interesting” viewermeant that some objects would not render (as is the case with the house in this image). Unlike the recent “missing prims” issue, no bounding box, etc., was loaded by the viewer, so right-clicking where the house should be would not resolve the issue – a relog was required (image courtesy of Whirly Fizzle)
There are other improvements to further assist with scene loading as well. For example, when teleporting into a region never before visited, the viewer can now tell the simulator that it has no data for the region cached, and the simulator can in turn simply get on with prioritising the data and downloading to the viewer, rather than it having to repeatedly ask the viewer if it needs the data, as is currently the case. The result of this is that “several seconds” can be shaved from scene loading times for uncached regions. Also, the viewer will no longer load objects from cache into memory if they are completely by scene geometry, thus reducing unnecessary memory use.
The viewer is currently a release candidate, which means it will be downloaded and installed for some users who have indicated a willingness to participate in the release candidate programme through their viewer Preferences (Set-up > Willing to update to release candidates). Those who wish to manually install the viewer can read the release notes and download it from the link below.
The Lab issued a blog post to accompany the viewer release (which I initially missed), which includes a video demonstrating the changes, narrated by Torley Linden.
As always, please refer to the week’s forum deployment thread for the latest news and updates.
Main channel: Tuesday November 12th
No deployment.
Release Candidate Channels, Wednesday November 13th
BlueSteel and LeTigre should receive the maintenance package originally scheduled for deployment to all three RC channels in week 45, but which was cancelled as a result of a last-minute issue being found. This package comprises further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project
Magnum should receive a new server maintenance project this week. This project fixes some bugs, including BUG-4152 related to vehicles crossing region boundaries, as described in this thread; and which also includes some changes around script behaviour, comprising:
The fix to allow objects rezzed by sat-upon objects should have a fresh auto-return and temp-on-rez timer, This will allow them to last the full ~60 seconds (for temporary) or parcel auto return time. This should help is situations where combat vehicles in regions with short auto-return times can have their ordnance immediately returned when a weapon is fired, and any temp vehicles are unable to rez attachments, even when sat upon
Fixes to prevent estate managers / owners being teleported home through a misuse of llTeleportAgentHome(), and to prevent estate managers / owner being affected by “Trojan” objects manipulating ESTATE_ACCESS_BANNED_AGENT_ADD
Updates to the grey goo fence do that it is stricter for large object rezzes in a further attempt to limit the ability of griefers to bring down a region through multiple rezzing of large objects
More robust handling of inventory management within objects
Cleanup of controls-grabbing in LSL scripts (no functional changes).
A simulator UG meeting (stock)
SL Viewer
The SL release viewer updated on Tuesday November 12th to version 3.6.10.283403, formerly the Maintenance RC comprising finer access control for estate/parcel owners; CHUI: toggle expanding Conversations by clicking on icon; GPU table update + more.
It is thought the project viewer containing the last of the current viewer-side updates for interest lists should be appearing very soon now. After recent setbacks in getting the viewer publicly visible, the time frame for its arrival had been noted to be unlikely before November 12th. However, speaking at the Simulator User Group meeting on the 12th, Andrew Linden indicated he believed the viewer may well be out in the next few days.
Other Items
Andrew Linden’s Bug Fixing
Andrew Linden
Andrew Linden has been taking time to fix a some unusual bugs. The first, which is not generally visible, he describes as, “In some cases our servers will upload an asset multiple times before it successfully creates an inventory item (on take to inventory for example). Which creates garbage assets in the asset system.” This issue could also result in multiple notifications being sent to the avatar uploading the item, if they remained in the same region.
The second issue he’s fixed is that of “ghost objects” appearing in the viewer but which are not present on the region server. This issue appears to have been caused by a race condition which could occur under certain situations such as deleting the objects too fast on a region crossing, so they’d be removed server-side, but not from the viewer. Both of these fixes should be appearing in an RC soon.
Group Management and Culling
Request have been made to have the limit of banned avatar lists raised from 500, particularly for regions that are popular with users. Whether there is a widespread need for this is entirely open to debate, but during the discussion of the problem being faced by a particular estate, suggestions were put forward by which such lists might be made easier to manage, including:
Auto-culling from all ban lists of any account name banned from the grid
Such auto-culling to take place only as a ban list approaches its upper limit
Add a feature by which would allow the removal from a list any avatars that have not logged-in to SL for a given period of weeks / months / years. If implemented, this could either take the form of a selectable set of options (e.g. something like 6 months, 1 year, 2 years), or possibly be a free-format field the owner can use to specify as the time period.
Whether any of these options eventually get implemented, remains to be seen (and doubtless on whether feature requests are filed).
This conversation was also bound-up with matters of group chat and group chat lag. Various suggestions were put forward for trying to address this as well, ranging from replacing the current group chat mechanism with something like IRC and whether it would actually work / scale any better, through to implementing a server-side change so that when someone leaves a group chat, the channel is actually closed, rather than messages still being sent to the viewer, which just disregards them, as is currently the case. Commenting on the status of group chat in general, Simon Linden stated, “Just FYI, practically speaking we’re not going to be re-writing the chat system any time soon.”