SL projects updates 19/2: group bans, miscellaneous items

Server Deployments Week 19 – Recap

There were no server deployments!

Group Chat

As noted in part one of this report, the group chat updates were deployed to the back-end chat servers on Monday May 5th. The changes to group chat should be subtle, and may not be observable to many. Additional analytics are included in the code, which should provide further pointers on what else may need addressing going forward.

Group Ban Lists

Obligatory Baker Linden shot :)
Obligatory Baker Linden shot 🙂

Baker Linden’s work on adding the ability to ban troublemakers / spammers, etc., from groups with open enrollment is now getting relatively close to becoming available.

Baker has recently closed what is believed to be the last of the server-side issues, BUG-5929. This meant that if the name of the group owner was accidentally added to a list of people to be banned from a group, the ban process would fail, with no-one in the list either being added to the ban list or banned from the group (although other than the group owner, anyone selected for banning would be ejected from the group).

The expected behaviour would be for all those named (other than the group owner) to be added to the ban list, with those who were already members of the group also being ejected and banned. Baker’s fix is to ensure this is now the case, and it should be available shortly on Aditi for testing (channel DRTSIM-234 14.05.05.289712 – which includes the Morris region where the Server Beta meeting is held).

Viewer-wise, a project viewer with the new code is expected to appear very shortly (it was running through the build process during the Server Beta meeting on Thursday May 8th). This should be added to the Alternative Viewers wiki page when available. The repository for the code has now been made public, so TPVs can start looking at it – but again, given the status of the viewer as a project release, don’t expect the code to immediately start popping-up in TPVs.

HOWEVER, it may be a while before the new group ban functionality can be used on the main grid, as there is an initial back-end host code update required prior to anything being deployed to any simulator channel. According to Maestro Linden, the Lab will likely want to run those updates for a week to check for any unexpected regressions prior to putting any simulators on a group ban RC.

In the meantime, the group ban capabilities can be tested on Aditi either using the project viewer (when available) or the existing test viewer.

Other Items

“Welcome to the Hotel California” – BUG-5961

Trying to leave a group with a large membership list can prove problematic if the memebrship list takes time to load
Trying to leave a group with a large membership list can prove problematic if the membership list takes time to load

An old issue recently came to light once more with BUG-5961 (originally entitled “I cannot leave a group that I joined”, but with the description subsequently updated by Maestro to “Viewer attempts full fetch of member list before allowing user to leave group” in order to better reflect his findings following investigation).

It’s not actually clear if this is a one-off situation, or possibly more widespread, as the bug report is specific to the group “Akeyo”.

However, Maestro’s thinking is that the problem is linked to the download of the membership list, which even with the Group Services fixes introduced in late 2012, can still take time to complete with some larger groups.

Essentially, you cannot leave a group until the membership list has been loaded, as the viewer must check to ensure that when leaving, you’re not the last owner of the group. Should the membership list take time to download, this can lead to a temptation to click the Leave button again, causing the download to start-over, resulting in the list not loading, thus preventing you  from leaving it (hence the Hotel California quip, which I admit I stole from Maestro!).

The Lab is looking into this issue further, although it may be a while before any resolution is found. One workaround in the meantime is to run a client such as Radegast, which handles groups slightly differently to the viewer, and use that to leave the offending group.

Restore to Last Position

Restore to Last position was a popular feature which allowed anyone to take content to inventory and then re-rez it later at the same position. While there were issues with the capability (such as using it to rez an object in a different region, with a different topology to the one where it was originally taken back to inventory resutling in an object to “vanish”, as it rezzed underground or something), it was broadly seen as beneficial.

However, it was also subject to exploitation, which is why the server-side behaviour for it was changed by the Lab some time ago such that the function will only work if you have rezzing rights at 0,0,0 in a region. If you do not, any attempt to use Restore to Last Position will fail with a notification that you don’t have the required rezzing permissions. The viewer-side code for the capability was also removed from the SL viewer, although TPVs have retained it.

A further issue with the capability has been with No Copy objects. If Restore to Last Position is used on these when the user doesn’t have rezzing rights at 0.0.0 in a region, they not only fail to rez – they also vanish from inventory, requiring a relog in order to get them listed again.

However, BUG-5955 “Restore to Last Position (used only by TPVs) causes content loss” highlights a problem where at least one type of No Copy object can be permanently lost from inventory if Restore to Last Position is used even in a region where the user has rezzing permissions at 0,0,0. Not even a subsequent re-log sees the item reappear in inventory.

Given the unpredictable nature of Restore to Last Position, the Lab is considering removing or blocking all support for it viewer-side until such time as a fix for issues can be found / it can be made to work more predictably in all cases.

As an alternative, and given the function’s popularity, it has been suggested a restriction preventing its use on No Copy objects should be implemented. The Lab may be taking this under consideration. This is the option Firestorm have indicated that they intend to implement with their upcoming release (which may as a result be delayed until the code is implemented and tested).

SL projects updates 18/2: group chat; group bans

Server Deployments Week 18- Recap

  • On Tuesday April 29th, the Main channel received the server maintenance project that was on the Magnum RC in week 17, comprising a fix for BUG-5533 and a crash mode fix.
  • On Wednesday April 30th, the Magnum RC had the server-side Sunshine  / AIS v3 code re-enabled (this code requires the use of the Sunshine RC viewer), and all three RCs were updated with the bug fixes deployed to the Main channel.

SL Viewer

There have been no updates to the RC viewers in the release channel during week 18  and no further releases, either RC or project viewers, so the SL viewer releases remain as per the last update to my Current Viewer Releases page.

Group Chat Optimisation

Simon Linden dancing at a Server Beta User Group meeting
Simon Linden dancing at a Server Beta User Group meeting

The code Simon Linden has been working on to improve group chat was deployed to a single group chat server, where it has been running for all groups starting with group_id “b”. Commenting on the work at the Server Beta meeting on Thursday May 1st, Maestro Linden said:

Simon’s been looking at the performance of that group chat server, and it seems to be running fine. So there are plans to update the rest of the group chat servers to the new version early next week. We won’t go so far as to say that group chat has been totally fixed, though – Simon has identified some other changes which could improve performance further.

A recent fix was made to IM sessions to correct the issue where it is possible to see “typing…” in an IM window when the other person isn’t actually typing (see STORM-1975), and questions were raised on whether this fix might be adding a load to group chat sessions, as the viewer-side code appeared to send the message during group chat sessions as well as person-to-person IMs. However, both Simon and Maestro Linden indicated that the notifications are simply ignored by the chat servers during a group chat session, so no additional load is created, although Maestro admitted it would be nice if the viewer didn’t send meaningless messages.

Aside from the back-end load, the biggest issue which occurs in group chat is when someone using it changes regions. When this happens, the chat service has to figure out where you are.

“The region you are on, your viewer and the back-end database all know where you are, and keep updated very fast. The chat servers, however, aren’t kept in perfect sync because that would be very hard to do with 50000+ people moving around who are all in 42 groups,” Simon said, in explaining the problem. He added, “It [the chat service] doesn’t track missing messages … but if it can’t send one to your agent, it then has to ask where you really are and then it sends there,” all of which takes time, delaying the receipt of group chat messages.

In describing the changes made, Simon concluded:

The new code we have out now is a bit more efficient, but more importantly it has more metrics and it showed me that the performance problems are in a few other areas … it turns out the updates to keep the list of people in the group chat updated are really significant. It gets worse, of course, in large groups – more people coming and going, and more people who need the updates.

Group Ban Lists

It appears a server-side deployment of the code require to manage the new group ban list functionality is drawing close. There is still work to be done viewer-side, but recent testing on Aditi resulted in a number of JIRAs being filed, and the associated server bugs have been stomped on by Baker Linden, with help from the likes of Caleb Linden.

SL projects updates 17/2: Group chat, group bans

Server Deployments week 17 – recap

There was only on server deployment in week 17, and that was to the Magnum RC. It comprised the same server maintenance package as deployed to it in week 16, but with an additional fix for BUG-5763 (“AGENT_MOUSELOOK flag is often incorrect when llGetAgentInfo() is called within control() event”). There have been no reports of further issues, so it is anticipated that this package will be deployed to the other channels in week 18 (week commencing Monday April 28th).

SL Viewer

Updates

On Thursday April 24th, the Sunshine / AIS v3 RC viewer updated to version 3.7.7.289441, (download and release notes), while the SL Share 2 project viewer updated to version 3.7.7.289468 (download and release notes).

LSL Support for Materials

This has been an oft-requested feature, and has been under informal review within the Lab. However, some confusion was caused when the release notes for the SL release viewer version 3.7.6.289164 (promoted on Monday April 21st, and formerly the VoiceMO RC), apparently listed MAINT-3531 (“Feature Request: LSL support for material texture maps”) as resolved.

However, this is an error. So far, there has still been no actual work on the capability.

Group Chat Optimisation

There was a further test of Simon Linden’s ongoing group chat optimisation work at the Server Beta meeting on Thursday April 24th. This followed the usual pattern of multiple messages being sent by those at the meeting across two chat groups, with people sending message from different regions as well as Morris, where the Server Beta meeting is held. From my own perspective, I had no noticeable issue in switching between local chat and one of the group chat sessions, even with a lot of messages passing through the latter, and didn’t appear to result in any message loss or significant delay.

However, the second group did cause the viewer to lock-up for up to 20-30 seconds at a time when switching to it, and appeared to be linked to the fact that one test participant was repeatedly pasted a veritable wall of text in to the group chat (which, while pushing the viewer, was probably not representative of how most people engage in group chat sessions). Both Simon and Maestro Linden believe the extended pauses were viewer-side, rather than anything in the back-end chat servers, with Maestro observing, “My guess is that the typesetting of all that text, profile icons, etc., is taking a lot of time.”

There’s still no news on when testing with larger groups will commence on Agni, although Simon hopes this will be “soon”.

Group Bans

Baker Linden, ironing-out the remaining issues with Group Bans
Baker Linden, ironing-out the remaining issues with Group Bans

Baker Linden has been working on the group ban functionality – notably the viewer-side code, although there have been some server-side updates as well. He had a new test viewer available for people to poke at during the Server Beta meeting, and which includes the latest updates found in the release viewer, as well a various fixes.

One of the latter is a fix for the issue whereby only the first name on a list of people being invited into a group would be checked to see if that person had been previously banned (and thus prevented from joining); anyone else further down the list would had been previously banned would be allowed to re-join on receiving the invitation.

Baker also noted a message has been added as well for these situations, “so you should get a notice saying some people in your invite list are banned from the group and weren’t sent an invite,” he said prior to testing. “I’ve noticed this to be a pretty sporadic thing, but I don’t think it’s something I can easily fix — the code showed that it was sending every time.”

While no formal testing was carried on with the latest updates to the viewer, it was noted that there appears to be an issue with the people picker option, in that it failed to locate people for banning – even when they were standing alongside the person with group ban powers. This will doubtless be looked into further.

Those wishing to test the group ban functionality can do so by downloading the test viewer and running it on Morris on Aditi.

SL projects updates 15/2: group bans; group chat and more

SL Server Deployments week 15 – recap

There were no deployments.

Upcoming Releases

As noted in part 1 of this report, week 16 should see a server maintenance update deployed which includes a fix for BUG-5533, “llTeleportAgent() and llTeleportAgentGlobalCoords() can break any script in any attached object that contains a change event.”

Commenting on this at the Server Beta User Group meeting on Thursday April 10th, Maestro Linden said:

Kelly found some race conditions which likely lead to the breakage, and the fix appears to work. Right now it’s on Aditi, in the DRTSIM-251 channel. Ahern is on that channel, though I found out that almost all of Ahern’s parcels have scripts disabled. However, “Tehama” is also on that channel, and does allow scripts on some of its parcels. It’s public access, so that’s a good place to check the fix out if you’re interested.

Server Beta Meeting, Thursday April 10th
Server Beta Meeting, Thursday April 10th

SL Viewer

On Wednesday April 9th, the Lab release the VoiceMO release candidate viewer, version 3.7.6.288881 (release notes), into the viewer release channel. This RC combines the updates found in the Voice RC viewer (3.7.5.288516) and the Merchant Outbox RC viewer (3.7.5.288408), both of which at present also remain in the release channel for the time being.

Also on Wednesday April 9th, the Lab issued a new Maintenance viewer RC, version 3.7.6.288799, which includes some 54 MAINT fixes from the Lab – see the release notes for details. However, this does include a fix for the Male Avatar Chest Rendering Broken / Mesh Clothes Breaking on Male Avatars (BUG-5537) issue I covered in week 13. The fix for this is given as “MAINT-3896 Male Avatar chest rendering broken – chest shows bigger for onlookers, than to oneself – effects attachments and all worn mesh types”. This update also includes a change to remove the “Start Second LIfe now?” dialogue which is displayed after installing the viewer, and which resulted in the viewer being started with system Admin privileges on Windows systems.

Commenting briefly on things viewer, Simon Linden indicated that he’s also fixed the bug where terrain textures aren’t updated if you change the heights or textures, although I gather this has yet to reach a viewer.

Group Chat

A further Group Chat test was run on Aditi. “I’m looking into the overhead for group chat on maintaining that list of people in the chat,” Simon explained as the test kicked-off. “I think it becomes heavy load in a group with a lot of people on-line.” The test proceeded along similar lines to those carried out previously.

Group Bans

Baker Linden reports that most of the viewer-side bugs related to group bans have been fixed. however, Caleb Linden found an ugly bug in the back-end code whereby only the first name on a list of people being invited into a group would be checked to see if that person had been previously banned (and thus prevented from joining); anyone else further down the list would had been previously banned would be allowed to re-join on receiving the invitation.

A fix has yet to be written, but Baker doesn’t see it as a hard task to do, “My fix will check each one and if you’re banned, it will gracefully skip the banned agent’s invite,” he said when describing how things will work. Other Items

Aditi Log-in Issue / Inventory Update Issue

The script which should synchronise people’s passwords and inventories between Agni (the main grid) and Aditi (the beta grid) is not functioning correctly (see BUG-5563). As I’ve previously reported, this means that following a password change, people are finding they must continue to use their old password to access Aditi and are not seeing their inventory update. Commenting on the issue, Maestro Linden said, “We’re not sure why it’s not working – the script which is supposed to synchronize the accounts says that it updates them on Aditi.” So at the moment any fix is dependent on the Linden carrying out further checks to ascertain what is going on.

Feature Request: Hide All Objects Outside Parcel

A request for a parcel control feature which, when set, would cause the viewer to ignore and not render all objects outside of a parcel has been put forward (see BUG-5671) and is drawing strong debate.

On the one hand, people feel this could greatly enhance performance when entering regions that are massively loaded with objects and textures (because the viewer would simply ignore everything outside of the parcel where the option is enabled).

On the other hand, some people feel that such an option could negatively impact the feeling of SL as a place (imagine teleporting around regions and all you see are the objects on the parcel you’re in, the rest is just terrain).

One suggestion put forward is that rather than making this a parcel option (and thus forced on anyone entering a parcel where it is enabled), such a capability is, if possible, made a viewer-side option, so that people get a more flexible choice as to what is rendered / what they see. I have to say that this potentially offers the most attractive option were such a capability to be taken-up by LL.

 

 

SL projects updates week 14/1: server, viewer updates

SL Server Deployments

As always, please refer to the server deployment thread in the forums for the latest news and updates.

Main (SLS) Channel

On Tuesday April 1st, the Main channel received the server maintenance package deployed to the Magnum RC in week 13. This package comprises:

  • Crash mode fix.
  • Fixed a rare case in which certain users were unable to log in (BUG-5130)
  • Fix for a case in which multiple scripts in the same prim calling llTakeControls() with heterogeneous ‘accept’ and ‘pass_on’ parameters would not receive a control() event correctly in some cases (BUG-5281)
  • Updated LSL syntax file to use a new schema (fixes STORM-2000) related to a viewer in testing and apart of STORM-1831.

As the roll-out progressed, there were reports on the forum thread that some regions are having a double restart. After investigating the issue, Caleb Linden reported: “I got the word from engineering that the double rolls were manually triggered by accident but they shouldn’t compromise the sims’ performances once up. This only affected a small group of regions.”

Release Candidate Channels

On Wednesday April 2nd, all three RCs should receive the same maintenance update, which incorporates the bug fixes deployed to the Main channel and which also sees AIS v3 support returned on the Magnum RC, after it was disabled / removed in the week 13 deployment. There seems to be yet more confusion over that actual status of AIS v3 server-side. and whether this means it will actually be enabled on all three RCs, or just re-deployed.

SL Viewer Updates

The SL Voice RC returned to the release channel on Monday March 21st, with the arrival of version 3.7.5.288516. This viewer pulls in Vivox 4.6.x libraries instead of 4.5 for improved voice stability and to address Mavericks issues (download and release notes).

the Sunshine / AIS v3 Rc should return to the channel later in the week if all goes according to plan.

SL Share 2 Project Viewer

As I’ve reported here, on Tuesday april 1st, Linden Lab released the SL Share 2 project viewer, version 3.7.5.288424. This includes:

  • An option to connect to Twitter and upload tweets  / snapshots from in-world to your Twitter account
  • An option to connect to Flickr and upload snapshots
  • An updated Facebook floater with revised snapshot upload tab incorporating the features found in the Flickr and Twitter snapshot uploads, and a new Friends tab.

An interesting element in this viewer is the use of filter effects which can be applied to snapshots, and which allow users to add their own filter options.

Group Chat and Group Bans

There’s little to report here, other than:

  • At the Simulator User Group meeting on Tuesday April 1st, Simon Linden said of the most recent group chat test, ” We had a good group chat test last week that gave me a few more things to fix. They weren’t new issues, but showed some more ways the current system can fail. So it was a good test.” It’s not clear whether this means the testing will now move to Agni and a selected group with a large number of users, or whether there will be further Aditi testing first.
  • With group bans, and as reported last time on the subject, Baker Linden is busy repairing the code that want broken / lost during a merge process and trying to make sure everything is back together and working properly,

 

SL projects updates week 13/2: group bans, group chat

Server Deployments: week 13 – recap

there was only one update in week 13. The Magnum Rc received a new server maintenance project, comprising:

  • Crash mode fix.
  • Fixed a rare case in which certain users were unable to log in (BUG-5130)
  • Fix for a case in which multiple scripts in the same prim calling llTakeControls() with heterogenous ‘accept’ and ‘pass_on’ parameters would not receive a control() event correctly in some cases (BUG-5281)
  • Updated LSL syntax file to use a new schema (fixes STORM-2000) related to a viewer in testing and apart of STORM-1831.

beta-270314_001

SL Viewer

The StatTest viewer was updated on Thursday March 27th to version 3.7.5.288371. This viewer makes one change related to crash statistics gathering  has no functional changes compared to the current release viewer (download and release notes).

Also on Thursday March 27th, the Interest List RC returned to the release channel, having been temporarily removed on March 21st due to the number of RCs occupying the channel.  The return sees the viewer updated to version 3.7.5.288404 (download and release notes).

Group Bans List

Things have been a little quiet in this of late. speaking at the Server Beta meeting on Thursday March 27th, Baker Linden explained why. “I pushed a new version of the group ban viewer, but unfortunately, it’s still a tad unstable. I don’t know how I managed to mess up the merge this bad … I think I lost some code. Well, I’m sure I lost some code. So I’m trying to go back and fix all that, but it’s coming along.”

The latest versions of the test viewer can be obtained via the links on the Server Beta wiki page. This can be tested on Aditi, and the server-side code in active on Morris, where the Server Beta meetings are held (and the code for which has been updated to prevent people with group ban rights from banning themselves from the group…).

Group Chat

There was a further test of the group chat back-end changes during the Server Beta meeting on Thursday March 27th. This involved around the same number of people as the first test, with some remaining in one location and others moving between regions while chatting.

In both instances, viewer freezes were noted when swapping between the group chat sessions and between local chat and one or other of the group chat sessions. These would last between 2-10 seconds depending on the volume of chat going through the group channel session being swapped to, with the average freeze being around 5 seconds.

Commenting on progress with the work, Simon Linden said:

I’m cautiously optimistic I can increase the performance … which should help reliability. From what I can tell, it just can’t handle the load at times. At a small-scale group chat isn’t that difficult a problem but with possibly 42 groups per online AV, the numbers involved can start getting big … I didn’t write the group chat servers, but am just the lucky guy wading through it now. Like I said, I’m cautiously optimistic I can improve it. A re-write to a new engine would be a pretty large project … and has already been tried once.

 Further testing should be progressing to Agni and a large group in week 14.