SL projects Update week 51 (1): Group bans, viewer, misc news

As a reminder, there are no scheduled server-side deployments or restarts due to take place prior to Tuesday, January 7th, 2014.

Upcoming Server Deployments

Andrew Linden - departing LL
Andrew Linden – departing LL

Andrew Linden, in his last appearance at a User Group meeting – indeed, in possibly his last public appearance prior to his departure from Linden Lab – gave further information on the uniform scaling functions for objects and linksets he’s been working on.

In particular, he described a third function  – llScaleByFactor(float) – which sits alongside the two previously reported upon in part 3 of my week 50 report. So taken together, all three functions are:

  • integer llScaleByFactor(float factor):  uniformly scale a linkset by the specified factor (e.g. 2.0 to double the scale).  Returns TRUE if successful, FALSE otherwise
  • float llGetMaxScaleFactor(),   float llGetMinScaleFactor(): return the maximum / minimum scale factors that will work in llScaleByFactor due to limits in place by prim scale and linkability distance restrictions
  • llScaleByFactor(float) returns TRUE if the scale change succeeded.

The new functions do not require any viewer-side update, and have already been added to the server-side LSL syntax file, although they will not actually be deployed to the main grid in an RC release until 2014. In the meantime, those wishing to test the functions can do so on Aditi in the following regions: Balance, Boardman, Borrowdale, Hawkshead and Mayfair.

SL Viewer Updates

The Google Breakpad release candidate viewer won an exception to the code freeze which came into force on Monday December 16th, reappearing in the release candidate viewer channel as version 3.6.13.284710.

The build, dated December 13th, 2013, was allowed a free pass and added to the Alternate Viewer wiki page on Monday 16th December as it contains no actual functional changes to the viewer. Rather, it contains an update to Google Breakpad and restructures the crash reporting mechanism to support out of process crash reporting. The  changes are intended to give LL’s development team more call stacks from crashes more frequently in order to improve the triaging and debugging of crash-related issues.

Group Bans List

Obligatory Baker Linden shot :)
Obligatory Baker Linden shot 🙂

Baker Linden provided an update on his group ban list work. As per my week 46 report, he is going with the approach whereby granting a role within a group the ability to ban people from the group will automatically give that role both the “Eject Ban Members” AND “Remove Roles from Members” abilities as well.  However, it will not be possible to remove either the “eject” and “remove” capabilities from a role using the “ban” ability without first disabling the “ban” ability.

He’s also added server code  that will automatically eject a member, as long as the ejector has both the “eject” and “remove roles” abilities.

This means someone with both abilities no longer has to manually remove all the roles assigned to a group member prior to ejecting them, making the ejection process a lot more streamlined.Or at least, that’s the idea once implemented; right now the code has a small “oopsie” in it, as Baker explained, “Of course, in its current state, it will eject regardless of the two roles… which I’m working on fixing now 🙂  Somewhere down the line I did something wrong…”

There’s no timescale as to when the group ban work will appear. From Baker’s comments, it would seem as though the initial QA testing has now finished, allowing him to focus more on the viewer-side updates. Expect to see the results in a project or release candidate viewer before we’re too far into 2014.

Other Items

Disappearing Dwarfins and More

Judy Chestnut and Dante Spectre of Dwarfins fame attended the Simulator User Group meeting on Tuesday December 17th to report a worrying issue which has been affecting Dwarfins, as well as other breedable creations, which sees them suddenly vanishing from regions. Of those that vanish, some of which turn-out in the user’s Lost and Found folder, others reappear elsewhere in the region and others vanish completely.

Reporting the issue, Spectre indicated that his observed tests revealed that of those breedables which vanish, around 10% turn up in his Lost and Found folder, around 10% turn up somewhere else on the region, and the rest simply disappear, never to be seen again. Interestingly, those that are returned to Lost and Found do not appear to generate the notification normally seen following an object return.

Dwarfins (and apparently other breedables) have recently been inexplicably vanishing from regions
Dwarfins (and apparently other breedables) have recently been inexplicably vanishing from regions

The problems seem to have started around two weeks ago, immediately following the server deployments, although whether the issue is linked to a specific update is unclear, and neither Simon nor Andrew could see anything within the deployments which could explain the issue.

In terms of Dwarfins, the problem has been witnessed on regions running on both the Main (SLS) channel and on the Magnum RC. Regions affected include Dwarfins Rock, Rossavik, Hidden Sanctuary, Hawthorn Estate, and Bull Island, among others.

Andrew Linden has suggested that Dwarfins Rock is cloned on Aditi, where the behaviour of the region can be monitored closely. Should Dwarfins vanish from it, the Lab will then be in a better position to dig-in to data gathered from the region and hopefully determine what may be going on.

In the meantime, if you have noticed similar behaviour with any breedables of your own, consider raising a bug report.

LSL Materials Functions

There have recently been renewed calls for materials processing to gain additional scripted support so, as an example, normal and specular maps could be animated independently to one another / the diffuse (texture) map on an object. In fact, requests for such capabilities have been raised periodically since materials was first announced.

While the capability has not been officially ruled out, it is not at all clear when it might appear – if indeed it will. Commenting on the subject at the Content Creation User Group meeting on Monday December 15th, Nyx Linden said, “Scripted materials would be more difficult than you would think.” To which Oz Linden added, “There are some non-obvious complexities with scripted materials properties. We don’t have that in a plan yet, but we know that people would like it.”

So, for those hoping for scripted control of materials, it would appear to be some way off at the very least.

SL projects update week 46 (2): Server news, viewer update, group ban list

Server Deployments week 46 recap

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, Novermber 14th
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.

Continue reading “SL projects update week 46 (2): Server news, viewer update, group ban list”

SL projects update week 45 (2): Server, viewer and group bans

Server Deployments week 44 – Recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • The Main channel was updated on Tuesday November 5th with the same maintenance package previously deployed to the three release candidate channels, and which comprised bug fixes and crash mode fixes
  • On Wednesday November 6th, all three release candidate channels were all due to receive a new maintenance package, comprising further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project. However, an undisclosed test failure meant the deployment was cancelled.

Upcoming Releases

Week 46 should see a new maintenance package in RC, which will include:

  • A fix for BUG-4152 Sim crossing on vehicle fails when parcel at opposite sim border is full
  • A number of crash fixes, including some which combat a physics griefer object
  • 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.
  • An interest list fix for issues where you don’t connect to regions far enough away when draw distance is set to 512m
Maestro Linden's disco-themed Server Beta meeting venue (stock)
Maestro Linden’s disco-themed Server Beta meeting venue (stock)

Trojan Objects

A further update is a change to try to deal with a griefing situation wherein estate managers/owners can be added to a region’s the ban list or teleported them home with llTeleportAgentHome(). This is apparently achieved through the use of what Maestro Linden refers to as “Trojan” objects, in that the object appears perfectly innocuous until passed to the an estate manager / owner but which, when rezzed, will  the manipulate the ban list via llManageEstateAccess().

Maestro described these scenarios thus:”I could give you ‘cute kitty’ which you then rez on your parcel.  But the script with the ‘purr’ function also has a ‘manipulate ban list’ function. Since you (the parcel owner) own the kitty, the script there can do the operation.”

It has also been noted that the use of such “Trojan” objects isn’t restricted to manipulating llManageEstateAccess(); they are also used to clear-down ban lists using llResetBandList(). In the case of llManageEstateAccess(), the function is being changed so that the owner is notified, and is given the option to allow the function to run in “stealth” mode.

The problem here is that by the time the notification is received, the Trojan script has done its job, so the solution is not ideal; the same would be true in the case of altering llResetBandList(). However, as Maestro put it, “But you’ll know exactly what it did in case you need to undo it.” A further concern in the case of llResetBandList() is that some estate owners use the function remotely to legitimately manage their ban lists, so if anything is done to alter its functionality, it might break existing content.  This led to extensive debate within the Server Beta meeting as to how such matters could best be addressed – or even if they needed to be addressed beyond people taking the proper precautions when receiving scripted objects from untrusted sources.

SL Viewer

Default Region Restart Sound

In part 1 of this report, I noted that a  JIRA has been put forward (STORM-1980) to have 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 is progressing on this idea, although a suitable sound has yet to be found, and precisely how the region restart messages will be redefined has yet to be entirely settled. Sound-wise, something is required that would universally recognised and which is preferably not language-dependent. One of the more popular ideas at the moment is to have a submarine dive / air-horn like sound (the “A-wooo-GAH!” beloved of films), although there have been some muted concerns about people possibly being offended by the use of “military” sounds. Torley Linden also joined the discussion and, in fun, offered up his own idea  – just make sure you don’t have the volume up too loud before playing the clip!

Torley’s region restart warning

Sadly, it doesn’t meet that criteria of being language-independent, but it’s still fun to listen to.

Script Syntax Updates and Increasing Source Text Allowance

In week 39, I reported that Ima Mechanic and Oz Linden are working to improve syntax highlighting in the viewer’s LSL editor by allowing the viewer to obtain the information required for syntax highlighting directly from the simulator the viewer is connected to. This should eliminate issues of the current, manually updated, files used to manage syntax highlighting falling out-of-synch with new LSL syntax as new functions and parameters, etc., are added.

This work is progressing well, and may now additionally see the source code text allowance in the viewer’s LSL editor increased. Currently, the source code limit in the editor is some 65,000 characters, however a number of scripters having been finding that they frequently are coming up against that limit when writing the source code for their scripts, so it has been suggested the limit be raised to 256,000 characters.

Continue reading “SL projects update week 45 (2): Server, viewer and group bans”

SL project updates week 44 (2): Group bans and sundry news

Server Deployments week 44 – Recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • Main channel: no update
  • Release Candidates: all three received the same new server maintenance package on Tuesday October 29th, which fixed some crash modes.

The RC release will likely be promoted to the Main channel during week 45.

Upcoming Work

At the Server Beta meeting on Thursday October 31st, Maestro Linden indicated that Simon Linden is working on a new package, but that it might not see the light of day for another week or so. “[It] has a bunch of miscellaneous fixes, including a potential fix for BUG-4152 (that ‘parcel full’ bug with vehicle region crossing which is rather common),” he told attendees.

There are apparently more “shinies” being worked on, but they are unlikely to be in this maintenance project, which Maestro describes as “solely bug fixes.”

SL Viewer Updates

The Maintenance RC viewer updated to release 3.6.10.283139 on Wednesday October 30th, otherwise no other changes to the viewer release channel.

There appears to be a closed viewer repository called “343-fittedmesh” with Oz Linden’s name attached to it. Quite what it might be is open to speculation, but the name might carry a possible hint. It has certainly prompted suggestions that the Lab might want to rethink their approach to code repository naming!

Baker Linden: Group Ban List

Baker and Caleb Linden (no, it's probably best not to ask...!)
Baker and Caleb Linden (no, it’s probably best not to ask…!)

“So group ban stuff is progressing more,” Baker Linden informed the Server Beta meeting. He went on:

However with Caleb and Maestro’s magnificence in finding out things I did wrong, we’re still in internal QA.  There are a couple issues that I’m currently working on, and one issue that came up today that I’m going to need some time to think about over the weekend. I’ve already fixed a few bugs however, so it’s still progressing, just much slower than I would have liked. I’m sorry that it’s taking a long time to get out. I’m touching a lot of systems and I want to make sure it’s done properly. I really do appreciate all the patience y’all have with me too :).

 Other Items

Scripted Sound Improvements?

During the Simulator User Group meeting on Tuesday October 29th, a question was raised about improving scripted sound capabilities with additional functions and parameters (e.g.  “llLinkPlaySound”, “llLinkStopSound” and “llLinkLoopSound”) which would allow for things like a single looped sound for a vehicle’s engine, with the ability to change the pitch of the sound to emulate the changing engine pitch when accelerating or slowing down without the need for multiple sound clips. This has been coupled with a request to make the prim collision sound being a property of the prim instead of the script.

Commenting on the request as the Server Beta meeting, Maestro indicated that Kelly Linden may be looking into things, although details of exactly what with be implemented, and what calls / parameters, etc., will be used is unclear. For the purposes of frequency modulation, viewer side changes will be required for making any adjustments to sound frequency.

Region Relocations

The subject of making it easier to move entire / large region builds from one region to another (so someone who owns two regions can move the contents of one to the other). currently there is no easy way to accomplish this. Apparently, the capability to ” restore to last position” (now only usable if you have rezzing rights at 0,0,0 within a region) was introduced for precisely this reason when the Linden were moving Adult regions to Zindra in 2010. Whether or not a capability to move region builds in this way would be re-introduced is open to debate; it is quite possible it is something that would not see that much use. Those wanting it, however, might want to file a Bug report (and label it “Feature Request”).

SL projects update week 42 (2): server, group ban list

Server Deployments – Week 42

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Tuesday October 15th saw the Main channel updated with the server maintenance project previously on all three RC channels in week 41.

The planned deployment of a new server maintenance project to all three RC channels was threatened at the 11th hour by the discovery of a bug  which took time to resolved, and left the package teetering on the edge of whether it would pass QA testing in time to make the deployment cut-off.

Maestro Linden's disco-themed Server Beta meeting venue (stock)
Maestro Linden’s disco-themed Server Beta meeting venue (stock)

Speaking at the Server Beta meeting on Thursday October 17th, Maestro Linden expanded on this last-minute bug. He explained that it took the form of objects failing to vanish from a user’s field of view after being de-rezzed, and would instead remain as a ghosted object until touched, because the user’s viewer wouldn’t get the update message that the object had been de-rezzed. The problem for the Lab was that the issue would occur in some places but not in others, and seemed to be dependent on things like camera position and draw distance, making it hard to reproduce consistently.

Andrew Linden finally worked out that the problem would only occur in regions with a neighbour to the east and if the user’s viewer was connected to that region. So depending on the region, the object’s position, your camera position and draw distance, the bug might or might not trigger.

While the issue was successfully addressed and the update package successfully deployed on schedule, the Lab are still uncertain as to why the bug should only occur when there is a neighbouring region to the east; however, it’s fair to say that this is not the first “east related” bug to have been found.

Group Ban List

Baker Linden is continuing with internal testing with the new code, using Maestro and Caleb Linden as his guinea pigs. Apparently, the server-side code is hung-up in LL’s internal QA, possibly awaiting resources there. As such, it has yet to become visible and there are currently no regions available on Aditi which include the server-side updates.

Other Items

A problem has been noted following-on from the recent updates to prevent people from using recursive rezzing to grief regions (see my week 35 and week 37 reports). As a consequence of this, some engaging in combat in Second Life have encountered issues wherein 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.

Commenting on the situation, Maestro agreed the use-case is legitimate and that some exemption should be made for sat-upon vehicles / objects in these circumstances. He’s agreed to put the matter to Simon and Andrew Linden for further discussion on the best way to approach and resolve the issue.

SL projects update week 42 (1): Server, viewer updates, misc news

Server Deployments – Week 42

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Second Life Server (Main Channel) – Tuesday October 15th

The main channel received the server maintenance project previously on all three RC channels in week 41. This project includes a fix for a group notice delivery issue, introduces a missing JSON operation to LSL, and includes preparatory work for an upcoming viewer with scene loading (interest list) improvements.

Second Life RC BlueSteel, RC Magnum, and RC LeTigre – Wednesday October 16th

All three RC channels should receive a new server maintenance project.  However, at the time of writing, it is unclear whether the RC deployment will occur due to a last-minute bug being identified. Speaking at the Simulator User Group meeting, Andrew Linden indicated that while it had been fixed, it has yet to pass internal QA.

Assuming it does go ahead, the deployment includes fixes for the following issues:

  • “Group member access to parcels fails when ‘Sell passes to’ is enabled” (BUG-3992)
  • “‘Ghost’ avatars and vehicles sometimes appear to an observer at the sim border” (BUG-3872)
  • “Vehicles which exit a region with a passenger are incorrectly auto returned and become ‘ghost shapes’ in the physics engine” (BUG-4024)
  • A performance issue with avatar loading speed in the experimental ‘viewer-interesting’ viewer.
Simulator User Group meeting, Tuesday October 15th 2013
Simulator User Group meeting, Tuesday October 15th 2013

In addition, extremely high Avatar Render Weights reported to the server are now capped at 500,000 (BUG-4010)  – so the server will take any report over 500k and treat it as 500k.  Simon explained that this cap had been arrived through a process of observation and data-gathering he undertook himself or resident supplied to him, all of which suggested the average for ARW among users is around 100K. In describing the cap in general, he went on:

You should consider anything close to 500k as just “way too high”. The system is a compromise that’s needed because some people will try to game it You should not trust the values too much. They are from viewers, which (don’t take this personally, anyone) cannot be trusted to be accurate 500k is at the very high-end of usage.

Really, anyone near that in a public place is hogging your viewer display power if you’re up by 500k – you’re using roughly 5x the viewer render resources as everyone else Also remember that SL is not doing anything with this data. It’s up to scripters and land owners to react.  So I can imagine a popular club maybe sending a warning IM to someone who’s really complex.

 I hope some people can find it useful within its limitations.   As it currently works, it should give scripts a good idea if some people are extra-costly.   It’s up to the scripter to handle that well or not.

SL Viewer Updates

Two new release candidate viewers were deployed to the release channel on October 14th and 15th. These are the Catalyst Viewer and a further Maintenance Viewer.

Maintenance Viewer

Release on October 14th, Maintenance RC 3.6.8.282335 includes:

  • finer access control for estate/parcel owners
  • CHUI: toggle expanding Conversations by clicking on icon
  • clean up messaging & notifications
  • fix crashes & hangs
  • GPU table update

Catalyst Viewer

Release on October 15th, the Catalyst RC, release 3.6.8.282367, is intended to address a start-up crash on latest AMD Catalyst drivers: 13.9, 13.10, 13.11.

Interest List

Not much to report here, the viewer-side code has yet to emerge as an RC, but Andrew Linden has been working on comparisons with scene loading in the hopes of producing a film to demonstrate the improvements. He’d recorded the “before” footage a while ago, and has been focusing on the “after” footage.

“I brought the regions up on some old simulator code from before any of the latest interest list work… from Dec 2012. Andrew Linden: and I was reminded as to how poorly the scene used to load;  everything arrived in mostly random order,” he said during the simulator User Group meeting, “I found a very small room in one of my test regions. So I logged out while standing in this closet, cleared my cache, and logged back in… On the old simulator code you could see the world streaming in and then BAM! the walls of the room would obscure everything. On the new code… the walls are there as soon as the login curtain raises. Not that the scene loading is perfect now, but some of you may remember… it used to be much worse.”

Hopefully we’ll be able to see the video soon, and Andrew will be able to avoid further plays on him coming out of the closet…

Group Ban List

Again, not a lot to report at the moment. Appearing at the Simulator User Group meeting, Baker Linden said:

I wanted to give an update on group bans:  I’m currently working through the bugs found by internal QA testing, trying to fix them as quickly as I can. Later today I’ll be doing another round of code reviews, and hopefully everything there will go smoothly.