[sldev] Region crossing problem + patch

Rob Lanphier robla at lindenlab.com
Tue Jul 28 18:40:27 PDT 2009


Hi everyone,

I just received a tip here from Simon Linden about a patch that we might
want to include in Snowglobe.  It's for an internally filed bug
involving region-crossing problems, where attachments can, under rare
conditions, become unattached during teleport or region crossing.  The
cause of the bug is a race condition:

*  Avatar A has a LocalID of 2 on region A
*  Avatar A's attachment has LocalID 3
*  Avatar A moves onto region B
*  Region B sends a full update message, changing the local ID of the
avatar to 3
*  Viewer sees the changing LocalID for the avatar, erases the old entry
for 2, and adds a new one for 3
*  Viewer sees the changing ID for the attachment, erases the entry for
3, and adds one for 4

In this patch, the 'remove from local id table' code was modified to
detect the above and not delete the entry.  With the current bug, the
item should remain in inventory, but the viewer would just get stupid
about what state the item is in.

The repro is pretty tough if you don't have access to the sim code, so
it's a tough one to catch in the wild. 

This writeup is done through a cursory scan of the commit logs and
internal JIRA discussion, and I could have a detail or two wrong, but
that's the basic gist.

There's a lot of extraneous commented code in this patch, which is
otherwise pretty small.  This seems like an interesting candidate for
Snowglobe 1.1, but it does introduce some risk.  Thoughts?  Should we
try to cram this in 1.1, or hold off for 1.2?

I've filed an external counterpart for this issue here:
http://jira.secondlife.com/browse/VWR-14905

Rob



-------------- next part --------------
A non-text attachment was scrubbed...
Name: DEV-32942.patch
Type: text/x-patch
Size: 7352 bytes
Desc: not available
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20090728/748c52ae/attachment.bin 


More information about the SLDev mailing list