Jake's Blog

Virtual Worlds

Open Sim Development Week Ending November 24th 2008

This week in OpenSim ( r7318 – r7438 )

Features & bug fixes

  • Homer fixed a client session crashing bug which occurred if one’s home region was unavailable when teleporting to home (r7335).
  • justincc stopped the root and child prims of an object being set to null when the a scene object is deleted.  Doing this meant that lots of null checks had to be inserted in the code to prevent a race condition.  Stopping this happening may prevent some crashes.  Thanks to Melanie for fixing a regression I accidentally introduced while doing this (any future re-regression of this is now prevented by a unit test) (r7415).
  • justincc added a permissions option (allowed_script_editors) to OpenSim.ini that allows one to stop anybody except administrators/gods from editing scripts.  In conjunction with allowed_script_creators from last week, this may be enough to prevent non-administrators in a standalone/private closed grid from introducing arbitrary script code (though they can still run scripts that are available in the library or their inventory) (r7363).
  • nlin contributed a patch that implements llCollisionSound() (r7392).
  • Chris Yeoh contributed a patch that fixes a regression where scripts in child prims froze after being unlinked (r7398).
  • Melanie added the ability to select objects by owner.  I believe this can be done from the Objects tab of the About Land dialog in the Linden client (r7410).
  • Melanie fully implemented object return (again accessible from the Objects tab) (r7311).

Infrastructure

  • Dahlia continued work on the meshmerizer.
  • Melanie started refactoring the Instant Messaging (IM) module.
  • Homer worked on improving Friends handling.
  • Melanie separated out a message transfer module from the general IM module.
  • justincc updated libOMV and libopenjpeg to those in the libOMV repository as of their r2359 for jhurliman’s progressive texture delivery patch.  Unfortunately, despite many people’s best efforts the patch is not useable (jhurliman himself documents the reasons for this in Mantis 2655).
  • arthursv contributed a database layer unit test.
  • justincc started work on scene presence/root agent/avatar oriented tests.
  • justincc continued work on unit test infrastructure for scene object testing.
  • justincc started work on extracting inventory code from Scene classes into their own classes.  This work will probably be done slowly over a considerable period.
  • Melanie continued work on infrastructure code for a more complete implementation of Second Life groups for OpenSim.

November 24, 2008 Posted by | Open Sim Devopment | Leave a Comment

Open Sim Development Week Ending November 15, 2008

The first section – “Features and bug fixes”, contains prominent new functionality and bug fixes visible to users of OpenSim.   The numbers in brackets in this section are the final svn revision numbers in which the work was completed for this week. This is right at the cutting edge so there is no guarantee that this functionality is stable.

The second section contains information about the infrastructure changes happening within the project.  This is going to be a little more impressionistic than the features/bug fixes list, but hopefully it will give a picture of how OpenSim is evolving from week to week.

This week in OpenSim ( r7203 – r7317 )

General news

  • OpenSim 0.6 (r7176) was officially released.  Downloads can be found on the Opensimulator website.  As well as binary packages there is a Windows installer and a Debian package available.
  • This week, Teravus discovered that we were enabling non LSL script compilers (C#, Visual Basic, Javascript) by default.  These languages can currently only be enabled if you trust all script writers, since they have access to system functions (unlike LSL).  I highly recommend that you go through your OpenSim.ini file and make sure that you have only
    allowedCompilers = lsl
    set in both the [ScriptEngine.DotNetEngine] and [XEngine] sections.
  • If you are following trunk, then regions regions older than r7306 will not be able to connect to grid services of r7306 or newer until the region server is updated to this later revision.

Features & bug fixes

  • idb contributed a patch that improves avatar height calculation.  This was then further improved by Melanie.  Hopefully, this will mean that avatars will now tend to stand on the ground again, rather than sometimes being ankle deep in it (r7286).
  • Melanie fixed an issue where unnecessary object updates were being sent for attachments that an avatar was wearing.  This should reduce network traffic somewhat (r7219).
  • Melanie made a change to prevent animation overrides from crashing a sim if the user logs out before the ao script stops (r7221).
  • Christopher Yeoh contributed a patch tha prevents sim freezes from occuring if many objects call llDie() at the same time under the XEngine scripting engine (r7223).
  • Melanie fixed a regression where avatars would have trouble crossing region boundaries because they had a local id in a range that they didn’t expect (r7239).
  • Teravus implemented the ability to download and upload .raw terrains from the Second Life client estate tools (r7297).
  • Melanie added a ClampPrimSize option to OpenSim.ini.  If this option is on for a region, then any prim that crosses in that exceeds the region’s maximum prim size settings is automatically shrunk (r7260).
  • Justincc implemented a very basic system for preventing out of date regions from connecting to a grid service.  Under this system a developer increments an interface version number (unrelated to the OpenSim version number) if they have made an imcompatible change.  Only regions with the same interface number as the grid service are allowed to connect (r7252).
  • Melanie made a fix to prevent pieces from other people’s HUDs from displaying at the center of ever user’s HUD (r7257).
  • Teravus updated OpenSim.ini.example settings and OpenSim’s defaults to prevent C#, Visual Basic and Javascript scripts from compiling by default.  This is because these scripts are able to get access to system functions such as System.IO.File at the moment.  LSL scripts do not suffer from this issue (r7262).
  • jusntincc made a change that stops a significant lock being held for a large part of the agent crossing sequence.  This may reduce the short freezes that happen for existing clients when somebody logs in, teleports in or crosses into the region (r7266).
  • idb contributed a patch that if OpenSim receives a shutdown command, objects yet to be persisted are actually persisted before OpenSim exits (r7274).
  • Alan Webb contributed a patch that may resolve a lost clothing issue on region servers containing more than one region (r7284).
  • Christopher Yeoh contributed a patch that allows llAllowInventoryDrop() to work properly with the permissions module enabled (r7302).
  • Melanie fixed an issue where attachments that had been dropped would still get removed when the avatar logged out (r7298).
  • Melanie added support for group permissions in user inventory.  This revision of OpenSim will not be able to interact with servers running older versions (though, of course, all data should migrate smoothly).  StrawberryFride also contributed a patch to support this in the MSSQL database as well as MySQL and SQLite (r7306).
  • idb contributed a patch that means that objects that change quite often are not persisted to the database after every single change, though they are guaranteed to still be persisted at regular intervals.  There are some user configurable values to control this in OpenSim.ini, though the defaults should be fine (r7315).
  • Following on from idb’s last patch, physical objects are now persisted to the database (before they were never saved) (r7315).
  • Homer fixed llSetRot() behaviour to better match Second Life behaviour (r7316).

Infrastructure

  • Adam changed the AssetCache to persist fetched assets temporarily by using the GlynnTucker.Cache.  This will somewhat reduce the load on an asset server if OpenSim is running in grid mode.
  • Melanie continued writing infrastructure code for region crossing scripts.
  • Sean continued work on database layer oriented unit tests.
  • justincc continued work on unit test infrastructure for scene testing.  arthursv also contribute a scene test.
  • Melanie started to revamp the inventory transfer module.
  • justincc started on permissions options to prevent non-administrators/gods from creating, copying or editing scripts (though all users can still run them).  This is to allow applications using OpenSim to control the type of scripts that can be run.
  • Melanie continued work on infrastructure code for a more complete implementation of Second Life groups for OpenSim.

November 17, 2008 Posted by | Uncategorized | Leave a Comment

Open Sim Development Week Ending Saturday November 8th 2008

Hello everybody. This is a short summary of OpenSim development for the past week up until the end of last Saturday, as culled from our source code repository logs.  After any general news there are two sections.  The first section – “Features and bug fixes”, contains prominent new functionality and bug fixes visible to users of OpenSim.   The numbers in brackets in this section are the final svn revision numbers in which the work was completed for this week. This is right at the cutting edge so there is no guarantee that this functionality is stable.

The second section contains information about the infrastructure changes happening within the project.  This is going to be a little more impressionistic than the features/bug fixes list, but hopefully it will give a picture of how OpenSim is evolving from week to week.

This week in OpenSim ( r7057 – r7202 )

General news

  • r7176 was tagged as the base for the 0.6 OpenSimulator release.  An official announcement and binaries on the OpenSimulator website should follow in due course.  If you need a stable revision you may well want to stick with this for the coming week, as fairly significant code changes are being made in OpenSim immediately after this tag.

Features & bug fixes

  • Melanie made a change that may allow inventory items to be given to users that are not in the immediate vincinity or are offline (r7058).
  • Homer improved the closing down of child agents on teleport (r7073).
  • Rob Smart contributed a patch that implements osMessageObject().  This function allows an object to message another object with a known UUID through the LSL dataserver event (r7096).
  • justincc exposed a client_throttle_multipler setting in OpenSim.ini, and set the default to x2 rather than x8 (it was effectively x8 before).  This means that if the client has a throttle setting of, say, 250 kilobits per second, then OpenSim will actually send down data at 500 kilobits per second.  This may improve performance in regions with high avatar numbers, though many other unrelated performance issues remain.  This change should also reduce the incidence of terrain ‘craters’ and invisible objects (which are both a result of packets being dropped due to an overloaded link).  If you still experience these symptoms you may want to try decreasing the multipler further.  If you want ultra-fast texture downloads you may want to try increasing the multipler.  A better solution for all this would be to allow higher network settings in Second Life environment clients (r7118).
  • Sean added an e-mail field for users in the SQLite and MySQL database adapters.  StrawberryFride then contributed a patch to also added this to MSSQL (r7105).
  • StrawberryFride patches that implemented llGetAnimation() (r7109).
  • Thomas contributed a patch that attempt to fix problems with creating avatar attachment records when first attaching objects (r7121).
  • Thomas contributed a patch that addresses problems with incorrect attachment offsets (r7121).
  • Christopher Yeoh contributed a patch that implements an osMakeNotecard() function, subseqently improved by Melanie.  This function allows a new notecard to be created in the prim’s inventory containing a list of strings (r7124).
  • Homer fixed bugs in llTeleportAgentHome() and osTeleportAgent() (r7139).
  • idb contributed a patch that fixes the jump function in LSL (r7146).
  • idb contributed a patch that fixes problems with setting the physics, tempory and phantom prim attributes (r7156).
  • Homer added better locking to the land management module (this handles parcels in OpenSim).  This may fix occasional, hard-to-reproduce parcel related bugs (r7182).
  • idb contributed a patch that properly persists prim attribute changes (e.g. phantom) in the database (r7193).
  • Adam Frisby made a change such that packet queues are cleared when a client connection is terminated.  This may resolve a memory leak where agents were closed that still had many packets in their queues (texture packets would be a major culprit here) (r7197).
  • idb contributed a patch that implements PRIM_TEMP_ON_REZ and PRIM_MATERIAL in llSetPrimitiveParams() (r7199).

Infrastructure

  • Homer worked on friends interoperability between the 1.20 and 1.21 Linden Labs Second Life viewers on OpenSim.
  • diva contributed patches that make it easier to implement alternative grid schemes, such as the Hypergrid.
  • Dr Scofield and Alan Webb worked on refactoring the IRC module.  The new code also has a number of improvements, such as the ability to send chat in different regions to different IRC channels.  More details in the documentation.
  • Sean continued work on database layer oriented unit tests.
  • justincc continued work on Second Life UDP session stack unit tests.
  • justncc continued work on unit test infrastructure for scene testing.
  • justincc made various stability improvements by not allowing exceptions on various threads to terminate the program.  In principle this may stop some functionality working but allow other activities to carry on before the server is rebooted (e.g. a crash of a texture serving thread would stop clients receiving new textures, but would allow existing clients to continue chatting).
  • Dahlia continued work on the meshmerizer.
  • MW moved OpenSim configuration fields (those that don’t go to their own modules) to a separate ConfigSettings class.
  • Melanie started writing infrastructure code for region crossing scripts.
  • Adam started decomposing the massive IClientAPI class which contains all the signatures for methods that deal with the client protocol (send chat packet, receive object select packet, etc) into separate interfaces.  This will make it much easier to implement alternative clients and virtual world protocols in the future.
  • Tedd continued work on the Script Engine Component System.  More details at his blog.

November 10, 2008 Posted by | Uncategorized | Leave a Comment

   

Follow

Get every new post delivered to your Inbox.