SL projects update 25/1: server, viewer, pathfinding and surprise guest

The Simulator User Group meeting on Tuesday June 17th was busy even before the unannounced guest dropped in (see below)
The Simulator User Group meeting on Tuesday June 17th was getting busy even before the unannounced guest dropped in (see below)

Server Deploys, Week 24

As usual, please refer to the server deployment thread for the latest information.

Main (SLS) Channel

On Tuesday June 17th, the Main channel was updated with the Group Ban project, which was previously on the LeTigre RC.  As the name implies, this project adds the ability to ban users from groups (see also SL Viewer Updates, below) – release notes.

Release Candidate Channels

On Wednesday June 18th the three RC channels should be updated as follows:

  • LeTigre should receive a new server maintenance project this week, which comprises an anti-griefing measure – release notes
  • BlueSteel should remain on the Sunshine / AIS v3 project, the viewer for which was promoted to the de facto release viewer (version 3.7.9.290582) on Monday June 16th. In addition, BlueSteel should receive the Main channel update with the Group Ban project and the anti-griefing update deployed to LeTigre – release notes
  • Magnum should remain on the Experience Tools project. In addition, Magnum should will receive the Main channel update with the Group Ban project and the anti-griefing update deployed to LeTigre – release notes.

SL Viewer Updates

Release Viewer

On Monday June 16th, the MemShine release candidate viewer, (version 3.7.9.290582, was promoted to the de facto release viewer. This viewer includes the final Sunshine AIS v3 updates (promoting the Lab to issue a blog post announcing the long-running project Shining is now complete), and also a series of memory leak fixes to help stabilise the viewer and hopefully reduce the number of memory related crashes.

Group Ban project Viewer

As noted above server-side support for the Group Ban project is being deployed to the main grid. To coincide with this, the Lab issued the Group Ban project viewer (version 3.7.8.290887) on Tuesday June 17th, which provides the necessary viewer-side support for accessing group ban functions. Initial instructions for using the viewer can be found in the release notes, and I’ve provided an overview as well.

Group Chat

Simon Linden recently completed an initial amount of work on group chat, implementing some small-scale optimisations which, while not expected to have “fixed” group chat, should have improved some aspects of using it, reliability-wise. He’s more recently had to work on what have been viewed higher priority items, but is hoping to make a return to group chat in the very near future and dig into it some more. “I learned a lot on the first pass,” he said on the matter during the Simulator User Group meeting on Tuesday June 17th, “we got a lot more information on where the load is.  Thus I have hopes the next round will be better.”

Other Items

Pathfinding and Terrain Editing

BUG-772 “Simulator refusing to rez objects after 10 hour timeframe” was raised at the Simulator User Group meeting on Tuesday June 17th. This is an issue where if you are carrying out terraforming work on a region with pathfinding enabled, and are also making frequent Pathfinding navmesh updates, your region will rapidly run out of memory. the way to avoid this is to complete the terraforming activity, then rebake the navmesh and restart the region.

LSL Enhancements

Ideas were tossed around the Simulator User Group meeting on the limitations of LSL, many of which may only be resolved through a complete re-build of LSL, something which is unlikely to happen, as Simon Linden indicated in the meeting, “I don’t think we’re going to touch the internal design of LSL if we can help it.” Which doesn’t mean there will not continue to be enhancements to LSL functions etc.

One suggestion made to get around some of the issues was for the development of a viewer-side scripting language which might handle certain local functions and abilities. Responding to this, Simon would only say, “That would be a wonderfully big project :).”

Continue reading “SL projects update 25/1: server, viewer, pathfinding and surprise guest”

SL projects update 24/2: viewer, LSL materials functions

 Server Deployments Week 24 – Recap

  • There was no new deployment to the Main (SLS) channel, although it was subject to a grid-wide restart following schedule maintenance on Tuesday June 10th
  • BlueSteel returned to the Sunshine / AISv3  inventory update, which requires the use of the Sunshine RC Viewer
  • LeTigre once more had the server-side group ban project updates deployed to it. See the release notes for details
  • Magnum returned to the Experience Tools project.

The RC channel updates were essentially the same updates as deployed in week 23, but subsequently overwritten following a grid-wide security issue update.

SL Viewer

The Snowstorm code contributions viewer appeared as a project viewer on June 12th. Version 3.7.9.290788 includes some 20 code contributions to the viewer, including:

  • STORM-68 Allow setting of default permissions on creation of objects, clothing, scripts, notecards, etc.
The new floater for setting default permissions for created items as it should appear in the Snowstorm viewer
The new floater for setting default permissions for created items as it should appear in the Snowstorm viewer
  • STORM-1831 Obtain LSL syntax table from simulator so that it is always up to date: this update allows the viewer to obtain the information required for syntax highlighting directly from the simulator the viewer is connected to, eliminating issues with using manually updated syntax files within the viewer falling out-of-synch with the simulators as new LSL syntax as new functions and parameters, etc., are added
  • STORM-1966 Block installation on old and unpatched versions of Windows: this updates causes the viewer’s Windows installer to check to see Windows XP systems have the latest patches installed (i.e. Service Pack 3 for 32-bit XP and Service Pack 2 for 64-bit XP). Any XP systems not meeting these requirements will be unable to install the viewer until such time as they are updated. Additionally, Windows Vista and Windows 7 systems  lacking a Service Pack update will receive a warning, but installation of the viewer will not be blocked

For the full list of OPEN and STORM updates, please refer to the release notes.

LSL Functions for Materials

The Server Beta Meeting on Thursday June 12th included tests to see whether the new LSL functions for materials might offer griefing opportunities. Maestro Linden had created two 256 prim linksets using default prim cubes, one of which was scripted to use PRIM_NORMAL to continuously set a unique material on each of the 6 faces of each prim, and the other was scripted to continuously set PRIM_TEXTURE on each face to a different alpha-blended diffuse texture.

Two sets of four of these objects were rezzed in turn, and meeting attendees asked to monitor their viewer performance (FPS and UDP bandwidth) while the Lab watched the simulator.

Server-wise, performance was largely unaffected by either type of object, with the load being largely controlled by the built-in LSL performance controls. Throughout both tests, and with no  objects rezzed, script spare time remained almost constant around the 14-15ms mark.

Viewer-wise, both types of object impacted FPS, with most people reporting around a 50% drop from the materials-enabled objects, compared to around 40% with the texture changing objects.

Both tests saw an increase in UDP information being sent to the viewer, with bandwidth use increasing by a factor of around 3.5 to 4 (e.g. 180-200kbps to 700-800kbps) with the materials objects and a factor of around 5 to 5.5 for the texture changing objects. As indicated by Maestro, the lower bandwidth use by the materials objects was due to the throttles already in place for how quickly the viewer will look up materials properties.

The takeaway from this (and other tests Maestro has performed) is that scripted materials controls are unlikely to be a major source of griefing. The simulator seems to handle excessive use of script materials in its stride, and impacts on the viewer’s frame rate can be mitigated by using Develop > Show Updates to Objects (CTRL-ALT-SHIIFT-U) to block the offending object.

There are still concerns over potential bandwidth impacts, such as by combining the materials LSL functions with other scripted controls, and concerns how the viewer might be affected by peculiar uses of the materials functions (such as combining them with the already laggy animated mesh tails that are available). However, it seems that for now, the Lab will continue to monitor things to see what happens and whether anything unexpected does crop-up, rather than moving immediately to apply throttles to the functions.

In the meantime, the arrival of these functions has prompted people to start putting together feature requests to be able to animate diffuse (texture), normal and specular maps on an object / object face independently to one another. The Lab has previously indicated that trying to do this via llSetTextureAnim() would be “pretty ugly to implement or would need some careful design …” and that as such they have no plans to try this at present. It’ll be interesting to see if any feature request(s) put forward persuade them otherwise.

SL projects update week 24/1: server, viewer

Server Deployments Week 24

As always, please refer to the server deployment thread for the latest information / news on deployments.

Due to the need to make a necessary security update to the simulators in week 23, this weeks deployments effectively return the server channels to the condition they were in (albeit briefly) following the week 23 deployments:

  • There was no deployment to the Main (SLS) channel on Tuesday June 10th. However, the channel was still restarted as a part of scheduled maintenance on the grid
  • On Wednesday June 11th, the release candidates should be updated as follows:
    • BlueSteel should return to the inventory update.  This project enables support for a new version of the inventory service, AISv3, which requires the updates found in the Sunshine RC Viewer
    • LeTigre should return to the group ban project this week.  As the name implies, this project adds the ability to ban users from groups -see the release notes for details
    • Magnum should return to the Experience Tools project this week, and receive some minor changes – release notes

 SL Viewer

There has been no release candidate viewer promoted to the de facto release viewer as yet this week.

The MemPlug release candidate and the Sunshine / AIS v3 candidate with both withdrawn from the viewer release channel. As noted in week 23, both of these release candidate viewers have been combined into a single viewer, the MemShine RC, version 3.7.9.290582, which has now officially replaced both of them.

The Zipper (fast installation) viewer has yet to return to the release channel, having been removed on May 30th.

Please refer to my Current Viewer Releases page for information on current viewer releases (SL and TPV).

Upcoming Snowstorm RC and XP Version Checking

The upcoming Stormstorm RC viewer will include Windows XP version / updates checking as a part of the installer
The upcoming Stormstorm RC viewer will include Windows XP version / updates checking as a part of the installer

The upcoming Snowstorm RC viewer which should be entering the release channel shortly will, as reported in my last TPV developer meeting update, include the STORM-1831 updates to LSL syntax highlighting.

It will also include STORM-1966, which, in keeping with recent updates to the minimum hardware specifications for Second Life, require that Windows XP systems have the latest patches installed. For 32-bit XP, this means having Service Pack 3 installed, and for 64-bit XP, having Service Pack 2 installed. Any XP system not meeting these requirements will be unable to install the viewer until such time as they are updated. In addition, the installer will warn Vista and Windows 7 users if they are lacking a Service Pack update (but it will not prevent the viewer from being installed on these systems).

Other Items

Light Reflections on Materials

There has been a report that use of materials on adjoining prims can lead to issues with light reflections over what should contiguous surfaces, even when all of the parameters and setting across all of the maps used on the surfaces are identical (see this sample image – the reflected light should be uniform across the two prims). It’s currently not clear how often this occurs or under what lighting angles. Anyone who has encountered the problem and can reproduce it, is asked to raise a JIRA.

Profile Feeds Photo Upload Issue?

There may be a problem (possibly intermittent) with uploading snapshots to the profile feeds, with snapshots getting stuck during processing (e.g. your feed displays a message similar to: You have X snapshots being processed”). This is apparently indicative of a back-end processing problem located somewhere between the snapshot being uploaded for display and actually being displayed on a feed. The problem has been reported by several people and has been noticed by the Lab, so hopefully it will be getting something of a poke to try to sort it out.

With thanks to Mona Eberhardt for note from the Content Creator’s meeting, Monday June 9th

SL projects update 23/4: TPV developer meeting, Friday June 6th

A TPV developer meeting took place on Friday June 6th. The core items discussed in the meeting are reported below, with timestamps in the relevant paragraphs indicating the point at they are discussed in the video embedded here.

Note that the timestamps are not necessarily chronological; some subjects have been grouped together for ease of reading. Also, the last 8-10 minutes of the meeting is taken-up with general conversation (Oz’s vacation, trying-out the Oculus Rift, etc.), which is not reported upon here.

My thanks as always to North for the video.

SL Viewer Status

[0:18] Other than the release of the MemShine RC viewer, version 3.7.9.290582, reported upon in part 1 of this week’s report, there have been no significant SL viewer updates. If the stats on this viewer remain good, it is likely that the individual MemPlug and Sunshine AIS v3 release candidates also still in the release channel will be closed-out, leaving just the MemShine version. As the overall stats between the RCs, which apparent include the SL Zipper RC which is currently absent from the Alternate Viewers wiki page,  are all so close, it is not clear which is most likely to be promoted as  the next de facto release viewer.

Oculus Rift Project Viewer

[1:33] Alongside the release of the Oculus Rift project viewer, the Lab also made the code repository available to the public as well. However, TPVs are warned against integrating the code for release purposes at this time, as it is anticipated there will be significant changes to the viewer once the new version of the Oculus Rift Development Kit is available. However, the Lab is not opposed to TPVs producing experimental versions of their viewers using the code if they wish to gain some familiarity with it.

The project viewer itself is unlikely to undergo update until at least after the new Oculus Development Kit is available to the Lab, although it is expected that the viewer will undergo periodic merges with the viewer release code in the coming weeks / months so that it does not stray too far out of step with viewer releases.

As well as supporting the Oculus Rift, the code within the project viewer is also intended to support other, similar VR headsets, although the Lab obviously does not have any definitive time frames as to when such headsets will become available or when they are liable to be officially supported in the viewer.

ANTVR: to be supported by Second Life at some point? (Assuming it gets to a production status)
ANTVR: to be supported by Second Life at some point? (Assuming it gets to a production status)

Group Ban and Snowstorm Viewers

[03:08] Again, as reported earlier this week, the Group Ban viewer is currently awaiting the server-side code to be fully deployed across the main grid prior to it officially appearing in a project / RC form. This is now likely to be delayed a little longer as a result of the GnuTLS issue, which promoted an additional server-side deployment which replaced the initial Group Ban deployment to LeTigre (the server code should return to the RC channel in week 24).

[03:20] There are further tweaks being made to the Snowstorm release, which should include the likes of STORM-1831, “Obtain LSL syntax table from simulator so that it is always up to date”, which has in turn been impacted by STORM-2026. Hopefully, the viewer will be heading for the release channel very soon.

Maintenance Viewer Updates (with more Cocoa Fixes)

[06:40] There are more maintenance (JIRA: MAINT) fixes coming down the pipe, none of which are expected to be particularly huge, but as things progress there could be a number of MAINT-related viewer releases.

[14:24] The next MAINT viewer to be released should include further Mac Cocoa fixes within it. Unfortunately, Oz did not have a list of what these might be, so expect an update at the next TPV developer meeting if the MAINT viewer hasn’t already appeared by then.

Upcoming Viewer Items

New Viewer Log-in Screen

[03:52] This has yet to make a public appearance, but the Lab is working on a new viewer log-in screen. Details are not clear as to precisely what is changing layout-wise, but it will not result in any actual changes to how log-ins are physically handled between the viewer and the SL servers, nor will it carry any significant updates other than to the initial splash screen. Commenting on it at the meeting, Oz Linden described it as, “yet another attempt to make a friendlier intro for new users”, as a part of ongoing attempts to smooth people through the sign-up and initial log-in activities.

It is expected that this viewer may appear as a release candidate as the current number of RC viewers in the release channel thins down (particularly if the MemPlug and Sunshine RCs are retired, as noted above).

The official viewer log-in screen is due for a revamp, although the mechanics of the log-in process will remain unchanged, and at least some of the widgets will remain in some form. In addition, at some point grid status updates *may* be returning to the screen
The official viewer log-in screen is due for a revamp, although the mechanics of the log-in process will remain unchanged, and at least some of the widgets will remain in some form. In addition, at some point grid status updates *may* be returning to the screen (see below)

Continue reading “SL projects update 23/4: TPV developer meeting, Friday June 6th”

SL projects update 23/3: server news and issues

Server Beta meetings: a place for Lindens and residents to strut their stuff ...
Server Beta meetings: a place for Lindens and residents to strut their stuff …

Server Deployments: Week 23

“We had a rather ‘exciting’ week in server updates,” Maestro Linden announced, kicking-off the Server Beta meeting on Thursday June 5th. “Or rather, exciting day, yesterday.”

Things started well enough, following the planned deployment schedule, namely:

  • There was no main channel deployment on Tuesday June 3rd
  • On Wednesday June 4th:
    • BlueSteel remained on the AIS v3 inventory update project
    • Magnum initially received updates to the Experience Tools project
    • LeTigre initially received simulator updates for the Group Bans project.

Note the use of “initially” above.

GnuTLS Issue and Update

Following the deployments to the RC channels on Wednesday June 4th, it was discovered that the version of a library used by the simulators had a potential security issue. This issue lay in GnuTLS, a secure communications library implementing the SSL, TLS and DTLS protocols and the technologies around them. Maestro explained the situation thus:

The concern was that a 3rd party site could trigger the issue, which could be triggered by a LSL script doing llHTTPRequest() to an HTTPS URL. To keep things slightly more sane, we took the current version of the server code on the main channel, and rebuilt it with the newer version of GnuTLS.

After testing the new build on Aditi, it was deployed to all channels on the main grid, starting at 17:00 SLT on Wednesday June 4th and running through until 01:30 SLT on Thursday June 5th. As this build was functionally identical to the Main channel build, but with the GnuTLS update, the Experience Tools and Group Ban updates deployed to Magnum and LeTigre were overwritten.

As Aditi also had vulnerable server versions, log-ins to the beta grid were suspended for part of the time, as updates were deployed there as well.

While the issue has been resolved, it will have an impact on server updates, inasmuch as it is now anticipated that the scheduled deployments this week will be re-deployed in week 24 (week commencing Monday June 9th).

This problem was not connected to the unscheduled maintenance which also took place on Thursday June 5th.

LSL Functions for Materials

Maestro also reported that it is believed that the LSL support for materials is now functionally complete. There is still currently no throttle in place against the risk of the capabilities being abused, and thought is still being given as to what any such throttle might be. “I just barely got to finding out what bad stuff happens without one,” Maestro said in answer to a question on this very point. Simon Linden than added:

I think that if we do a throttle, it will only be to handle quite extreme cases. We haven’t figured out the best way to throttle it … because we haven’t really seen a problem yet, but I think most of them fail silently now. So we’re likely to do something similar.

One thing the Lab will do with regards to any throttle imposed, is to set it so that it cannot be avoided by adding more scripts to the offending objects which then generate changes to the maps being displayed without individually breaking any imposed limits.

 Other Items

Aditi Log-in Issue / Inventory Update Issue

As reported in week 15, The script which should synchronise people’s passwords and inventories between Agni (the main grid) and Aditi (the beta grid) has not been functioning correctly (see BUG-5563), with the result the password updates and inventory syncing between the Agni and Aditi grids has not been occurring properly.

During the Server Beta meeting on Thursday May 29th, Maestro indicated that it had been thought  Coyot Linden had identified and fixed the root cause of the problem, so that any password update would synch during the overnight run of the script (around 02:00 SLT). However, following that meeting it was found that inventory syncing was still not occurring following a password change.

A further investigation by Coyot revealed a further problem (unrelated to the first) preventing inventories between the two grids being synched, although passwords were. This additional issue has also now been fixed.

Related Links

SL projects update 23/2: object detachment and inventory issues

I opted to put the following under a separate projects update piece, rather than “Other Items” (as I usually do), as they are quite extensive and worth noting. All of these items were discussed at the Simulator User Group meeting on Tuesday June 3rd.

Scripted Object Detachment Issue

This problem has been around for a while (see JIRA SVC-7626 for a description, although there have been more recently JIRA filed), and Simon Linden has been digging into it.

It relates to the scripted detachment of objects using a REGION_CHANGED event following a region crossing. When entering the new region, the order of the messages received by the viewer gets mixed-up such that it may get the order to “kill” (stop rendering) the object ahead of the message telling it to detach the object.

Should this happen, the viewer actually doesn’t know which object it should remove, and the result is that the object remains in visible to the wearer, but it cannot be detached or edited (because the server considers it removed). However, to other people in the region, the object will not appear to be attached, as they received the correct updates. So, if you have multiple attachments doing this, everyone may see different things.

One way to correct the problem is to re-log. This can cause the object to render properly and be detached.  Simon Linden also offered a possible solution:

If you click on it, it will likely go away. What happens then is the viewer sends up a “select” or some similar message with that local ID. The server can’t find the local ID, so it echos back a “kill” to the viewer … under the assumption that the viewer is confused and has this odd local ID.  That’s why similar problems of ghost objects [seen in-world rather than attached to an avatar] can often be fixed by clicking on them …

I’m not sure why but the click / selection thing seems to work more if you go back to the original region [where the object was still attached].

Why the order of the messages received by the viewer gets mixed-up is unclear, and there may be a number of possible causes, as Simon also explained:

Having controls [e.g. PERMISSION_TAKE_CONTROLS] may affect how scripts get run, and thus the REGION_CHANGED event gets processed faster [leading to the mix-up in the order of the messages]. I have to drop my bandwidth down to the lowest setting to make it happen … that’s another factor.

It’s an interesting bug because it combines region crossings with scripts, object deletions and the interest list updates … all pretty complicated parts of the server.

It’s not clear what is going to be done to rectify the issue, given it is a timing issue touching on several areas of interaction. In the meantime, if you encounter the issue, you may want to raise an additional JIRA, citing location, behaviour, etc., and also try one of the workarounds mentioned above.

Problems with Inventory’s Received Items Panel

received-itemsReceived Items is a system folder introduced with Direct Delivery and intended to be used for the initial receipt of SL Marketplace purchases before moving them into “normal” inventory. Because it is intended to be a “temporary” store, Received Items isn’t included in any inventory searches, so any items stored in folders created there won’t ever be listed when using search.

Within the official SL viewer, Received Items appears as a separate section at the bottom of the Inventory Folder (shown on the right). When displayed like this, it is not possible to move Received Items. However, when receiving goods from the Marketplace, Received Items does appear as a folder in the Recent tab of Inventory – and it is here that problems can occur, for example:

  • It is possible to drag the Received Items folder shown in the Recent tab into another folder, causing Received Items to vanish from the bottom of the Inventory floater following a re-log
  • It is possible to right-click on the Received Items folder in the Recent tab and delete it.

Neither of these issues are unrecoverable, however, and neither leads to a permanent loss of inventory.

Recovering After Accidentally Deleting the Received Items Folder

  • If you accidentally delete the Received Items folder in the Recent tab, you can recover it the same way as anything else – open Trash and drag it back under the My Inventory folder
  • If you purge your Trash after accidentally deleting the Received Items folder from the Recent tab, simply go to the Marketplace and make a purchase – Received Items will be re-created on receipt, although anything stored within it prior to the deletion will be lost.
When
SL viewer: following the receipt of a purchase, it is possible to accidentally move the Received Items folder in the Recent tab to another folder (l). Should this happen, then following a relog, it would appear as if the Recent Items section at the bottom of the Inventory floater has vanished (c). Also, when displaying Received Items as a folder under the Recent tab, it is possible to right-click it and accidentally delete it (r).

Continue reading “SL projects update 23/2: object detachment and inventory issues”