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.
Two new release candidate viewers arrived in the release channel on Tuesday December 3rd:
Maintenance RC version 22.214.171.1244430 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 126.96.36.1994383 changes installer naming without modifying channel or application names, but contains no functional changes to the viewer code – download and release notes.
As this is Thanksgiving week in the USA, it is a code freeze week with no scheduled deployments for the grid. Deployments will resume in 49.
There are no planned RC releases or updates for week 48, again because of the Thanksgiving code freeze.
Oz Linden is, however, working on getting another maintenance RC together in the near future, although it’s not clear exactly what this will contain at this point in time.
There have also been reports of issues with test versions of viewers built using the latest Sunshine External repository (the SSA “polish” code and AIS v3). The exact cause of the problems is not known, but it is leading to a high number of Current Outfit Folder mismatch issues on Windows. A request has been passed to the Lab to check the automated build process in order to help ascertain if there is a problem in the code, or whether an issue in merging the code is causing problems. These issues don’t affect any released versions of viewers, only those using the latest SAA / AIS v3 code for testing purposes.
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. However, this work also requires updates to server-side capabilities, and Andrew Linden is now looking into this, and at the moment is specifically trying to figure out how to propagate the default perms through teleports and region crossings.
Region Crossing Issues
The three RC channels are all running the same simulator version, which includes a fix for “Sim crossing on vehicle fails when parcel at opposite sim border is full.” (BUG-4152). Describing the issue at the Simulator User Group meeting on Tuesday November 26th, Simon Linden said, “The server was doing a parcel check at the wrong location … you’d cross, and at one point it would check a parcel based on the new region coordinates in the first region. If that happened to be a full parcel, it failed.” This issue has been reported as occurring on Main channel regions as well, under a variety of reports including SVC-8007. As such, it is hoped that when the package currently on the RCs is promoted to the Main channel in week 49, these issues may also be rectified.
In the meantime, and to test whether the fix may work for SVC-8007, the mainland region of Epirrhoe has been moved to the Magnum RC to allow vehicle crossings to be tested between it and the neighbouring region of Jodis, which has been a crossing which has experienced repeated issues with SVC-8007 for the SLRR.
Many vehicles of all types in SL use llSetCameraParams to establish a “follow camera” which allows the vehicle to be effectively guided by the driver / pilot. However, there has been a long-standing issue the CAMERA_DISTANCE rule, which is clamped to distances far shorter than draw distance. This can make it next to impossible to create a scripted follow camera for very large vehicles such as realistically sized spacecraft, airships and ships.
The original JIRA (SVC-3499) was closed as “Won’t finish”. However, commenting on the matter at the Simulator User Group meeting, Andrew Linden said:
If we were to expand the clamp limits then some poorly written scripts will change behaviour. How much do we care about breaking such poorly written scripts? And… I wonder why it was clamped so tight? It would be nice to ask around to see if anyone remembers why some limits were set … Well, it would be possible to expand the distance limit and test to see how it works with different limits. If nothing breaks too bad, then perhaps we could ship it.
A new BUG report has been filed as a feature request for this to be looked at (BUG-4594), which is likely to be looked-at the next time feature requests are sorted, and quite possibly passed to Maestro Linden.
Region Restart and Visibility Issues
An unusual issues has been reported which appears to be related to region restarts and visibility, but it only noticeable on regions which have multiple neighbours, all of which are restarted at more-or-less the same time (within about a minute of one another). The problem can be broken down into a number of related points:
Observers are standing in region A, which is surrounded by regions B, C, and D – all of which are restarted at pretty much the same time
Following the restart, there is a high probability that some or all of regions B, C, and D will not be visible to those observers on region A (which was not restarted), and they show-up as red on the mini-map – something which has been confirmed on both the SL viewer and Firestorm
However, anyone entering region A after the restart will see all of regions B, C, and D as expected. Similarly, anyone on region A at the time the other regions restarted can resolve problems by relogging
Those observers who were in region A at the time the surrounding regions were restarted are able to fly into any of them which are showing as red on the mini-map, and although nothing physically renders for them, they will experience object collisions. Furthermore, it is possible to exit the “red” regions on the mini-map and fly into the void where no regions actually exist.
In tests with a specific set of regions, the above issues occurred in 8 out of 12 tries. That there is a unique problem with the regions on which the tests were carried out has been pretty much discounted. Whirly Fizzle, who has been poking at the issue with a number of people, provided a screen capture show how her alt managed to fly through a “red” zone and into the void where no region exists.
Commenting on the matter, Simon Linden said, “It sounds like it’s getting confused and not realizing the old connection went away … I’d bet on the timing.”
Agreeing with this point of view, Andrew added: “If Region A thinks your viewer can already see into Region B, it wouldn’t initiate the connection,” hence why relogging would appear to fix the issue for those experiencing the problem and those arriving in the region after those around it have been restarted: as you arrive in the region, it (re-)initiates the connection between the viewer and the surrounding regions. This is also why people encountering the situation can enter void areas where no regions exist, as Andrew also explained: “The region you’re on expects the other region to inherit your avatar, o it lets you walk beyond the region boundaries until the other region picks you up. But if the exchange never completes, you get to walk around outside of the region boundaries for a while.”
This can be seen in the image Whirly supplied: while she is clearly in a void space where no regions exist, the title bar of her viewer still reports her as being in Mote (her “region A” during the test), because the “hand-off” between Mote and Droom (shown in red on her mini-map) never completed.
Andrew recently fixed another issue related to connections to neighbouring regions, and has offered to look into the matter himself to find out what is going on and how it can be rectified.
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.
No Change Windows
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.
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.
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
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
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.
“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.
Tuesday November 19th: the Main channel received the maintenance package previously 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
Wednesday November 20th:
Magnum remained on the same maintenance project as deployed to it in week 47, but which features a further update to the grey goo fence, now only applies to objects which are both large andphysical. This alteration is in response to BUG-4448, wherein it was reported that building rezzers were running up against the fence when attempting to rez complex builds
BlueSteel and leTigre received a new maintenance package comprising those changes deployed to Magnum in week 46, with additional bug fixes.
Notes on the Deployments
Commenting on the BlueSteel / LeTigre updates during the Server Beta meeting on Thursday November 21st, Maestro Linden underlined the last four bug fixes listed in the release notes, together with the final “new feature” item, as being newly introduced with the deployment.
With regards to the BlueSteel / LeTigre fix for “Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full”, he added, “I believe the issues with region crossing on vehicles due to ‘parcel full’ should be fixed, though there’s still that bug about certain vehicles sometimes going crazy upon region crossing.”
A question was asked if the change to the grey goo fence (BUG-4448) might impact llGiveInventory object-to-object transfers. Apparently there were reports n the Advanced Scripters of Second Life that people were encountering a “give inventory failure: grey goo fence: rapid or recursive inventory transfer” warning on Magnum regions following the update.
Commenting on this, Maestro Linden said, “I checked with Simon about this one; the GGF change should only affect rezzing of objects; when you simply pass items around with llGiveInvenotry(), the object geometry data hasn’t been loaded, so it wouldn’t have the opportunity to apply a penalty. However, he thinks that if you hit the GGF for rezzing objects , the GGF may also prevent llGiveInventory() from operating.”
Maestro also indicated that new restart scripts were using during the RC deployment which displayed the restart messages in “big, bold letters”. Whether these changes are in addition to the restart message changes made by Simon Linden and deployed in September is unclear; Maestro also referenced the fact that restarts will now occur as soon as the last avatar departs a region, rather than waiting for the countdown to complete, and this was a change initially deployed in September.
Week 48 (Week Commencing Monday November 25th)
A reminder that there are no deployments / rolling restarts planned for week 48 due to it being Thanksgiving week in the United States (which also means the Server Beta meeting will not be taking place.
The SL release viewer was updated on Thursday November 21st to version 188.8.131.523787 (dated November 15) – formerly the GPU table updates RC. This release contained no functional changes to the viewer, but saw support added for the following GPU families: newer nVidia GTX 700 series; AMD R7/R9; Intel Iris Pro (download page, release notes).
Fitted Mesh Project Viewer
Thursday November 21st also saw the release of the Fitted Mesh project viewer 184.108.40.2063899. This viewer includes a new avatar skeleton with additional collision bones which allow mesh garments rigged to the collision bone structure to adjust with changes to an avatar’s shape using the Edit Shape sliders.
The system is modelled at the approach first mooted during the Closed Mesh Beta and later prototyped by RedPoly Inventor, and which has been subsequently employed in approaches such as Redgrave’s “Liquid Mesh” range of garments.
The official blog post on the release can be read here, and I was fortunate enough to be given preview access to the viewer a little ahead of the launch, and my own overview is also available.
This approach to fitting mesh garments is still at a project status, and those trying it are requested to file any issues they have via a JIRA to the Fitted Mesh project.
Copying Large Numbers of Items to the Inventory of an Object
Many people are likely to be familiar with this issue: select a large number of items from inventory and attempt to drop them into the contents of a prim in a single go, and part / all of the process may fail. This is a long-standing problem, and there had been something of a limit of around 42 items which could be successfully transferred into an object’s contents in a single go. However, there have apparently been renewed reports of problems, and a suggestion that the threshold for moving a large number of objects in a single go may now be around the 30 mark. Maestro Linden has updated a bug report from Dan Linden on the issue with this information in the hope it will assist in narrowing-down the possible cause.
Aircraft Region Crossing Issues
Yuzuru Jewell reported further issues with some aircraft encountering problems on attempting to cross regions. It takes the form of aircraft using mono scripts with collision detection are failing to cross region boundaries. A similar bug has been reported for mesh vehicles – BUG-4084 is “Mesh car starts to bounce like pinball after sim crossing”, but the Lab has been having problems reproducing that issue. One workaround that seems to prevent the problem is for the collision event to be moved to a separate script compiled as LSL2 rather than mono.
In the discussion Maestro noted this approach had also been put forward in dealing with BUG-4084, except that in that case, all scripts were being compiled as LSL2, possibly because the issue hadn’t been identified as perhaps being with collision event handlers. Maestro believes the pointer towards collision events may well be an interesting lead and has requested that anyone able to reproduce the issue and show that specific events / functions are responsible, it will obviously make it easier to determine a resolution.
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:
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
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()
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.
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.
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 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.
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.