SL project updates Week 37 (1): server releases

Server and RC Deployments

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

In a change to the usual server-side deployments, the Main channel and all three RC channels have had their deployments and restarts made on Tuesday September 10th. As a result, there will be no RC restarts on Wednesday September 11th.

The reason for the single pass – Main channel first, followed by the RCs – is to apply updates server-side relating to recent Vivox service maintenance.

  • Main channel: received an update related to the recent voice service maintenance and no other changes – release notes
  • BlueSteel and LeTigre: received a new maintenance package, comprising:
      • A fix for an issue where an avatar sitting at high altitude may appear to be located at 0,0 on both the world map and mini map (BUG-3332)
      • A fix for “llReturnObjectsByID breaks on string uuids”
      • Fixes for a number of JSON function issues:
    • Nerfing of recursive rezzing. Again, this was outlined in my week 35 (1) report. Under the new code, the copy of the original object will inherit the temp-on-rez and parcel time of the originating object and so be returned at the same time
    • Crash mode fixes
    • The update related to recent voice maintenance
    • These channels also no longer have Monty Linden’s HTTP updates on them).
  • Magnum remained on the HTTP update package deployed in week 36, and also received the update related to the recent voice maintenance.

Region Crossing Update

In addition to the updates listed in the release notes, Bluesteel and LeTigre also received a threaded region crossing update. This is not expected to have a major visible improvement on vehicle crossings, or as Andrew Linden put it at the Simulator User Group meeting on Tuesday September 10th, “It doesn’t mean the death of region crossing problems, but the data streaming on the way OUT of the region is now threaded, which doesn’t make the crossing any faster, but may reduce lag spikes as witnessed by everyone else.”

Kelly Linden added, “The threading change Simon mentioned moves vehicle serialization only into the same thread as agent serialization to fix a rare server crash mode due to a race condition serializing scripts in some very specific cases.”

SL Viewer Updates

On Monday September 9th, the Cocoa release candidate viewer was promoted to the de facto release viewer – version 3.6.5.280370 (release notes). This currently leaves just the materials updates as a release candidate viewer, although further viewer releases (either RCs or project viewers) are expected soon.

Group Ban Lists

Baker Linden is finishing-up the work prior to it going to RC (server and viewer), which is still a “few weeks” away. However, he’s planning / hoping on having the server code on Aditi by the end of the month, for which a “test viewer will be provided”.

Anti-griefing

Commenting on the update to the Auto-return capability to nerf recursive rezzing, Andrew indicated he took the discussion which followed his initial raising of the subject in the week 35 Simulator UG meeting back to the Lab, where there was discussion about limiting the functionality to “unattended” self-rezzing objects (i.e. those for who an owner is not present in the same parcel). He went on:

However after an internal discussion we decided to not open up that exception since it causes inconsistent behavior: different autoreturn times depending on whether the owner is present or not can lead to confusion, and also it would bypass the spirit of the autoreturn feature which parcel owners are expecting — that objects get autoreturned.

He went on to say that there is no single project at the top of his list,  and that the anti-griefing work is one of a number of projects he’s juggling with at present.

SL projects update week 36 (2): Server releases, viewer, HTTP

Server Deployments – Week 36

As always, please refer to the week’s forum deployment thread for news, updates and feedback. Deployments are a day behind the usual schedule due to the US Labor Day long weekend.

  • On Wednesday September 4th, the Main channel received the maintenance package deployed to all three RC channels in week 35, which includes Preparatory work to support new estate and parcel access controls and the new manual region restart capability which sees a region restart as soon as the last avatar leaves (release notes)
  • On Thursday September 5th, the three RC channels received the same maintenance package, which comprises  server-side HTTP updates which require a future viewer-side update. In the meantime, these changes should not be apparent in any current viewer release (release notes – BlueSteel)

Upcoming Server Deployments – Week 37

It looks likely that the HTTP updates deployed to all three RCs in week 36 (of which, more details below), will go back to just one RC in order to make way for additional packages “to get the server flow going again”.

Speaking at the Server Beta meeting on Thursday September 5th, Maestro Linden provided some information on some of the updates expected to go to at least one RC in week 37 (week commencing Monday September 9th):

  • The llXorbase64 issue reported on in my week 35 (2) report for details
  • A fix for an issue where an avatar sitting at high altitude may appear to be located at 0,0 on both the world map and mini map
  • Nerfing of recursive rezzing. Again, this was outlined in my week 35 (1) report. Under the new code, the copy of the original object will inherit the temp-on-rez and parcel time of the originating object and so be returned at the same time.
  • Fixes for a number of JSON function issues, including:
    • JSON implementation treats blank string and JSON_NULL interchangeably
    • Issue with llJsonSetValue with strings that end in ‘]’
    • RFC 4627 Non-Compliance by llJsonSetValue() with out-of-range Indices

SL Viewer News

There were no changes to the SL release viewer this week, again most likely due to the long weekend in the US.

Snowstorm Project Viewer

As reviewed earlier in the week, there has been a new Snowstorm contributions project viewer released, which includes various fixes and Jonathan Yap’s request teleport feature and a port of Cinder Roxley’s “eject from group confirmation” pop-up.

New request teleport capability - Snowstorm project viewer
New request teleport capability – Snowstorm project viewer

Interest List Viewer

Delays continue with this viewer, largely as a result of bug stomping requirements. Commenting on the situation at the TPV Developer meeting, Oz Linden said:

As you might imagine, monkeying with the interest list is full of opportunities for errors; and I think the team is really sensitive to that and trying hard not to have a bad launch. I keep hearing status updates from them, but none of them have been, “We’re going to launch the viewer right away”.

Hoz Linden then added, “They honestly are really close on the interest list, but there continue to be a string of bad bugs that need to be fixed.”

Animation Override Interface

Viewer-side hooks for LSL AO capabilities in the future?
Viewer-side hooks for LSL AO capabilities in the future?

As reported in week 34, Oz Linden is looking-in to the possibility of developing a viewer-side API / hook into the LSL AO capabilities introduced server-side earlier in 2013. Initial discussions with the Lab’s own developers seemed to go well (or as Oz put it at the time, they didn’t run screaming from the room…

As Oz will shortly be in San Francisco in the near future, he’s going to poke some more at the idea with the people at Battery Street and “see if there is something we ought to be doing.” Again, this is still a nascent idea, even with the offer of import from Kitty Barnett, and Oz went on to say:

If this is going to happen, and it is still a major league “if”, I think we would want to do it as part of a project in which a substantial improvement was made to how the viewer interacts with animation in general, and that means I would want a set of open-source devs involved in doing the viewer-side work. So be thinking about whether or not you can commit to that.

Continue reading “SL projects update week 36 (2): Server releases, viewer, HTTP”

SL projects updates week 36 (1): server releases, HTTP notes, anti-griefing

Server Deployments

As always, please refer to the week’s forum deployment thread for news, updates and feedback. Deployments are a day behind the usual schedule due to the US Labor Day long weekend.

Second Life Server (SLS Main) Channel – Wednesday September 4th

The Main channel should receive the maintenance package deployed to all three RC channels in week 35, comprising:

  • An update to region restarts initiated by region owners or estate managers which will see the region restart after the last avatar leaves, rather than waiting for the full countdown period to complete
  • Preparatory work to support new estate and parcel access controls – these will require an upcoming viewer-side update in order to be visible to users
  • A fix for a physics-related griefing mode (see below)
  • A crash mode fix.

Release Candidate Channels – Thursday September 5th

All three RC channel should receive the same maintenance package, which comprises  server-side HTTP updates which require a future viewer-side update. In the meantime, these changes should not be apparent in any current viewer release. The updates specifically comprise:

  • When connections between viewer and web services were closed by the server, the last response was sent without a ‘Content-Length’ or ‘Transfer-Encoding: chunked’ header. Last response will now be sent with ‘chunked’ encoding.
  • Throttling actions on Capabilities URL result in 503 status codes back to clients. These responses may include a ‘Retry-After’ header with a delta time giving a hint as to when the client may retry the request. In the absence of such a header, client is expected to make ‘reasonable, best-practices’ delayed retry attempts.
  • Adds support for a new capability, ‘GetMesh2’ for fetching mesh assets with keepalives enabled.

HTTP Notes

The RC deployments look to be the first part of Monty’s continuing work on HTTP connectivity between the viewer and the SL servers. As noted in recent reports, the core focus of this work is on improving mesh fetching capabilities between the two, although Monty is also working on a number of other updates, all of which are aimed at improving the HTTP services between the viewer and the SL servers and making them more robust, as well as paving the way for HTTP pipelining in the future.

Group Ban Lists

Baker Linden continues to work on the new group ban list functionality. The focus is currently on the UI hook-ups and back-end validation checks. It will still be a while before a project / RC viewer is likely to appear, but hopefully not too long.

Anti-griefing Work

Andrew Linden continues to work on “anti-griefing” measures, reporting that the “physics-related griefing mode” which forms a part of the Main channel deployment and which is already on the three RC channels, is to prevent the use of “faux rotating megaprims”.

These are megaprims which used a physics collision exploit to knock avatars out of that region using the ‘resolve interpenetrating objects’ collision logic. “We had  some collision-bypass code there specifically for avatars, but it had been broken some time ago,” Andrew explained, the break apparently allowing the exploit. He’s now fixed the code breakage, and reports from a number of RC sandboxes is that it appears to have worked.

Other Items

There was a report made during the Simulator User Group that some LSL events are failing to execute or aren’t being queued / cued when a script is caught in a loop. details were sketchy, but a BUG report was due to be raised.

SL project updates week 35 (2): parcel access controls & particle system

Server Deployments Week 35

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

  • On Tuesday August 27th, the Main channel received the update package which includes the “grey box” attachment fix (issue details here), together with an update to for “llListen in linked objects is listening at root instead of linked object local position”; the new code to stop avatars entering a region / objects being rezzed in a region during the last 60 seconds before a restart, and additional fixes for simulator crash modes  (release notes)
  • On Wednesday August 28th, all three RCs received the same update package, which has a fix for a simulator crash mode, a fix for a physics-related griefing mode, and which has a new capability so that region restarts initiated by region owners occur as soon as the last avatar has left the region. This package also includes server-side support for new parcel access controls (see below) – release notes: Magnum, LeTigre, BlueSteel.

Region Shutdown / Restart

In reference to the new capability rolled to the RC channels whereby region restarts initiated by a region owner occur as soon as the last avatar leaves the region (rather than waiting for the time delay to expire), Maestro Linden indicated that the capability will eventually be extended to automated rolling restarts as well.

New Parcel Access Controls

Maestro Linden likes to work-out during meetings
Maestro Linden likes to work-out during meetings

The original post for the RC server package made reference to “estate and parcel access controls”. However, this was an error on Maestro’s part, and he sought to clarify things in a couple of follow-up posts, in which he first made it clear the new controls only apply to parcels, not regions (hence the emphasis above), and then went on to say:

The new feature is to allow a parcel to be configured to allow users to enter a parcel if they are members of the parcel’s group *or* have payment info on file.  This is meant to be a big help toward keeping griefers out, as they often will not add Payment information to their account and group limitations are often managed by the land manager.

This access configuration, which is already available at the estate level, involves enabling 3 options in ‘About Land’->’Access’:

  • Allow public access
  • Allow access only to Residents who: Have payment information on file
  • Allow Group Access: <group>

With the current release viewer (3.6.4 (280048)), this combination of settings is not possible to set in ‘About Land’; enabling ‘Allow public access’ causes ‘Allow group access’ to become disabled.  The upcoming viewer change will make these two settings independent in the UI.

He further explained:

The change is to allow group-based white listing which can parcel restriction based on payment info.  Here’s how the logic plays out:

  1. “Allow public access” means that avatars/groups do not need to be explicitly white listed to visit your parcel.
  2. The “Allow access only to Residents who: Have payment info on file” option is only available when (1) is set (this is also the classic behaviour). 
  3. The “Allow group access: <group name>” setting additionally allows group members to access your parcel, except for those on the ban list.

With only (1) and (2) set, only those with payment info on file can visit your parcel; there is no way to allow your friend/alt who doesn’t have payment info on file to access the parcel.

With (1), (2), and (3) set, you allow two sets of people in:

  • ‘trusted’ accounts, who belong to the parcel’s group
  • any account with ‘payment info on file’ (these users probably aren’t zero-day griefer accounts)

The viewer-side updates required to use these options are currently a work-in-progress. There is an internal viewer available within the Lab which is being used for testing purposes, and it is hoped that the necessary updates will be appearing in a beta or release candidate viewer in the near future.

Continue reading “SL project updates week 35 (2): parcel access controls & particle system”

SL project updates: week 35 (1): server releases, group ban list, anti-griefing

Server Deployments Week 35

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

Second Life Server (SLS Main) Channel – Tuesday August 27th

The Main channel received the update package which includes the “grey box” attachment fix, and which had seen previous deployment to some of the RCs. In all, the package comprises:

  • A fix for the “grey box attachment  issue” (non-public BUG-3547, see the details here)
  • An update to for “llListen in linked objects is listening at root instead of linked object local position *after re-rezzing the linkset*”,  (non-public JIRA BUG-3291)
  • Code to block avatars entering a region / objects being rezzed in a region during the last 60 seconds before a restart. In addition, restart warning pop-ups will include the region name
  • Fixes for further simulator crash modes.

Release Candidate Channels – Wednesday August 28th

All three RC channel should receive the same maintenance package comprising:

  • An update to region restarts initiated by region owners or estate managers which will see the region restart after the last avatar leaves, rather than waiting for the full countdown period to complete
  • Preparatory work to support new estate and parcel access controls – these will require a upcoming viewer-side update in order to be visible to users
  • A fix for a physics-related griefing mode
  • A crash mode fix.

The release notes are here: Magnum, LeTigre, BlueSteel.

Commenting on the upcoming estate and parcel access controls at the Simulator User Group meeting on Tuesday 27th August, Simon Linden said, “I can’t get into details on the access change but it’s not a huge one, so don’t get too excited about it. We hope to have a project viewer out in a few weeks or so that will have the new code and we can discuss it then.”

SL Viewer Updates

Release Viewer Updated

Following the Monday review meeting, CHUIStorm Release Candidate viewer was promoted to the de facto release viewer 3.6.4.280048, dated August 20th) on the 26/27th August. This viewer includes the latest CHUI updates from the Lab and a number of Snowstorm code contributions from third-party developers, including:

  • STORM-1892 – Add Apply button to the edit content permission floater
  • STORM-1910 – Count of the number of groups a person has joined, and number of remaining group slots
  • STORM-1911 – Go-to line function for the internal LSL script editor
  • STORM-1918 – Part of the group notice attachment box does not allow dropping of assets
  • STORM-1952 – Clicking “Eject” needs a confirmation before execution when ejecting members from a group

The full list of updates are available in the release notes.

The move currently leaves two RC viewers in the release channel: the Cocoa updates for Mac builds, and the next round of updates for Materials Processing, which include goodies such as correct ALM rendering underwater.

Commenting on the removal of the Google Breakpad RC viewer from the list, Oz Linden confirmed that it had been removed as it had done its job, allowing the new reporting mechanism to be tested. As the viewer contains no user-facing changes or anything outside of the Breakpad updates, it has been withdrawn, and the new stats reporting code will be integrated into the viewer code base without requiring a dedicated release.

The mesh deformer project viewer has also been removed from the viewer test builds wiki page. There is not anything untoward about this; prior to the SSA deployment the viewer was already significantly behind the times in terms of merges. As SSA has now been deployed, and the view lacks SSA support, it is currently pointless having it as a publicly available download option.

Group Ban List

Baker Linden supplied a brief update to his work on creating a function to allow group owners to ban people (e.g. known troublemakers) from joining their open-enrollment groups. Speaking at the Simulator User Group meeting, he said:

I’ve still been hooking up the viewer to the server, and can now add people to the ban list. I’m currently working on getting the ban list, which will allow me to get deleting from the ban list working. After that, it’s code cleanup, reviews, and adding server-side verification checks!

To which Andrew Linden added, possibly wryly, “Baker banned me from some groups on the beta grid. I can attest that there is progress there”!

The question was again asked if the capability will allow for banning someone for a set period of time – such as for a week. Baker confirmed that while the ability to do so won’t be in the first release, there is a code stub included which will allow him to add the ability in the future. This is likely to be the case with the ability for a group moderator to add a reason for banning someone from the group if they so wish.

Anti-griefing

As he has now moved away from Interest List work for the time being, Andrew Linden is looking into griefing vectors and ways and means of circumventing them, particularly on mainland. Some of the areas he’s looking at and mulling over in terms of possible actions are:

Andrew Linden - now looking into anti-griefing options
Andrew Linden – now looking into anti-griefing options
  • Allowing estate owners to admin parcel properties (ban lists, object options, etc), without having to take ownership of the parcel
  • Altering the “allow public to build on this land” flag to default to FALSE rather than TRUE when a parcel transitions to a new owner – this is seen as a means of preventing griefers from buildings and hiding hide malicious objects in unattended parcels which can then be used to grief the region / people in the region.
  • Nerf the use of recursive rezzing to prevent griefers getting around autoreturn by creating an object which rezzes a copy of itself, then gives a copy to the rezzed object. The original is then autoreturned, but the copy carries on before creating a copy of itself, and so on.

Andrew is particularly concerned that the third proposal might be damaging to content which may legitimately self-replicate itself (such as items placed by the parcel owner or members of the group the land has been deeded to). In order to prevent this, he plans to apply the nerfing only to objects to which the auto return would otherwise apply.

At the moment these ideas are still musings – although Andrew admitted the code for nerfing recursive rezzing has already been written – and he’ll be having further discussions at the Lab as well as looking at various alternatives / additions (one he mentioned himself was to perhaps have two auto return functions – one for objects whose owners in the region, and one for those lacking owners).

One of the problems here is that in planning to create any additional restrictions on land use, etc., is that people can always raise apparently legitimate reasons why things shouldn’t be done, or offer up ways and means of how changes can be circumvented. However, the fact remains that griefing – particularly on mainland – is once again a growing issue (as those of us have experienced only too well at recent in-world LL meetings). Therefore, change is needed. The skill in the work will be how that change is managed.

SL projects update week 34 (3): SSA update and z-offset update

Update August 27th: In reference to the “z-offset” notes at the end of this report. Marine Kelley has issued an important fix for her implementation of the capability for the Restrained Love Viewer (2.8.5.5). If you’re already using 2.8.5.3 as originally referenced in this article, you’ll need to update. I’ve revised the piece to point to 2.8.5.5’s release notes (download will also go to 2.8.5.5).

Week 34 saw Server-side Appearance go grid-wide in Second Life. Overall, the deployment went smoothly for the majority of people, although some have encountered issues, of which more below.

Commenting on the deployment in general terms, Nyx Linden said:

The roll-out this week went really well and seems to be performing well. We definitely have enough ovens to do the baking with, and there have only been a handful of users with issues, as far as I’m aware currently.

Issues

Where problems have occurred, there appear to be a mix of known issues and issues which appear to be related to the user’s connectivity between their viewer and the SL servers.

SUN-99

In the case of known issues, there have been further reports of issues arising with people having multiple versions of the Current Outfit Folder in their inventory (SUN-99).

Multiple instances of the COF (images courtesy of Cinder Roxley)
Multiple instances of the COF (images courtesy of Cinder Roxley)

Nyx reports that the Lab has been analysing the issue, and as a result has a list of accounts likely to be affected by it. They are currently putting in place a system by which these accounts will be flagged and automatically fixed when they next log-in. If all goes well, this new system should be coming into play in week 35, or at least in the not-too-distant future.

The Lab is reasonably confident that this work will eliminate the SUN-99 issue; however, Nyx has requested that if people continue to see multiple instances of their Current Outfit Folder appearing, to please raise a JIRA, including the viewer (and version) being used, so that it can be investigated for other possible causes.

Nyx also indicated that there has been one report of a user who was able to move their duplicate COF folders to their trash and then flush them, although this shouldn’t be possible. So if you do encounter the problem, it might be worth a try.

Until the new automated fix solution is implemented, instructions have been passed to LL’s support team, and they generally will try to provide a manual fix when contacted, and will do so for both Premium and Basic members. It has been suggested that the best way to gain support’s assistance is to file a ticket under Account Issues and then clearly marking it as being a BUG-99 / Current Outfit Folder problem.

High Bandwidth and Draw Distance

Issues relating to a poor connection between the viewer and the SL servers are resulting in people having either fully grey avatars or one of the three skin layers (head, upper body, lower body) remaining grey. The Firestorm support team in particular have had reports on this. Commenting on it at the TPV Developer meeting, Lead Support for Firestorm, Ed Merryman, said:

For the most part, in my personal experience, it’s been people with bandwidth and draw distance settings that were, let’s say, “extreme”. Normally, if we get them to drop their bandwidth and draw distance to a reasonable setting, they’re fixed.

The Firestorm team have a wiki item about checking and setting the viewer’s network bandwidth which is useful as a rule of thumb for all viewers.

HTTP Textures

Ed also reported that some users who found a part or all of their avatar grey were seeing the problem resolved if they disabled HTTP textures from within the viewer.

Whether this was due to a poor connection with the SL servers or a hardware issue is unclear. However, the thinking is that it is most likely due to something in the network path between the viewer and the SL servers getting hit with too many HTTP connections (which now include avatar baking). Disabling HTTP textures in the viewer forces regular texture downloads to shift back to the UDP service, thus reducing the number of HTTP connections, allowing avatar textures to load.

Issues when Connecting to SL via a Cell Phone

Problems have also been reported for those using a connection via their cell phone (non-public JIRA BUG-3323). This appears to be down to a issue whereby the size of the packet that the viewer is expecting from the SSA servers doesn’t align with the amount of data actually in the packet. The Lab is currently investigating this, but the issue does seem to be constrained to only a few users.

Next Steps

Commenting on what is coming up next while at the TPV Developer meeting on Friday August 23rd, Nyx Linden said:

I also have the next round of [viewer-side] changes ready to push from Sunshine internal [LL’s private repository] to Sunshine external [the public repository] … In it, you’ll see what should be all of the new inventory capabilities for the new inventory functionality for getting your Current Outfit Folder set. These changes appear to work on our developers’ machine, but are completely untested as far as you’re concerned. So this code is definitely not ready for merging into a mainline branch but feel free to do a merge into a side dev branch.

Continue reading “SL projects update week 34 (3): SSA update and z-offset update”