This week in OpenSim Dev – week ending 28th July 2012

August 1, 2012
By

Hello everybody.  This is a summary of the last week of development in OpenSimulator.  Except where otherwise specified, the changes described here appear only in OpenSimulator’s cutting edge Git ‘master’ branch. Only changes that I think will be interesting to end users are listed.  Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.3.1 (released on March 30th 2012).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( 7d16d06 - 72d29bd ).

General news

  • None this week

Features & bug fixes

  • Melanie from Avination stopped various memory leaks from OpenSimulator.  It’s possible that with these updates, OpenSimulator will leak considerably less memory over time (fc77bca).
  • Robert Adams from Intel continued to work on the OpenSimulator’s Bullet physics plugin.  This week he improved linking efficiency, resource use and implemented constraints, amongst other things (ce812c8).
  • I extended the “show queues” region console command to show the number of milliseconds since a packet was last received by each viewer connection.  This can help in detecting connection problems (1427430).
  • I added an experimental “OpenSim object memory churn” statistic to the “show stats” output (and regular log diagnostics output).  This aims to give a sense of how much memory the simulator turns over during operation.  This is not lost since the memory is later reclaimed by the garbage collector.  However, it’s possible that the higher the churn, the longer the garbage collection will take, which leads to avatar rubberbanding on movement as positions extrapolated by the viewer fail to match those calculated by the physics engine on the simulator (5aec0ff).
  • Oren Hurvitz from Kitely contributed a patch, which I later changed in minor ways, to properly copy the item description field when users give each other objects, rather than the original description field when the asset referenced by the item was first created (66824dd).
  • I updated the copy of libopenmetaverse used by OpenSimulator to add a fix by Melanie to stop textures on prim faces from slightly rotating when other properties were changed, and to add a fix by logicmoo which will reduce the amount of warning spam printed by pCampbot.  Many thanks to the libopenmetaverse developers for their continued work on this library (134c6d1).
  • SignpostMarv contributed a patch to make OpenSimulator initial region/estate configuration more resilient in the face of bad input (adbdb22).
  • SignpostMarv contributed a patch to implement osMin() and osMax() OSSL functions, which return the minimum and the maximum of two numbers respectively (72d29bd).

Infrastructure

  • No news this week.

3 Responses to This week in OpenSim Dev – week ending 28th July 2012

  1. August 3, 2012 at 11:02 pm

    thanks on the mem leaks issue Melanie! i have noticed that 0.7.3.1 leaks far less than 0.7.1

    anecdotally, i used to steadily climb from 3.61 to 4.5 over a month on continuous operation (mainly just one person and 20 hours in-world)

    no i go from 3.61 to 3.63 in that same month!!!

  2. Breen Whitman
    August 12, 2012 at 10:31 am

    I do not understand the role libopenmetaverse plays in Opensimulator.

    At a guess, it is messaging middleware between an Opensim server and a client viewer? Sort of like a database ODBC driver between interface and database engine.

    Have I got this right?

  3. justincc
    August 15, 2012 at 7:42 pm

    @Breen – OpenSimulator uses libopenmetaverse mainly for it’s implementation of server < -> client message structures (e.g. ObjectUpdates) and some core structures (e.g. UUID). The actual send and receive of UDP messages is handled by OpenSimulator’s own LLUDP protocol stack.

Leave a Reply

Your email address will not be published. Required fields are marked *

ABOUT ME

Hi, I'm Justin Clark-Casey, an OpenSim core developer and professional software engineer.

On the Linden Lab grid I go by the name of Lulworth Beaumont. On other grids I'm just plain old Justin Clark-Casey.

I'm currently working as a freelance consultant specializing in OpenSimulator and related technologies. If you're interested in learning more then please read the Hire Me page.

I've also written a paper on distributed virtual environments, which examines how virtual worlds could become more like the web, rather than individual silos of users and content.

I often attend the OpenSim Office Hours on a Tuesday on Wright Plaza at OSgrid.org