Commit Graph

14871 Commits (33fe1e9f76e48b139dd2b0d2d0b6bf21a922baa2)

Author SHA1 Message Date
Mic Bowman 82de87ce99 Converted the property request queue to use the same retransmission
mechanism as the entity update queues.
2011-04-19 11:22:04 -07:00
Huaiyu (Kitty) Liu 3d7cece491 Include serialization of Scale in SOP.Shape (it's a sub property in Shape, and also a seperate SOP property,
both pointing to the same copy), so that now serialization of Shape has all its sub properties.
2011-04-19 11:11:14 -07:00
Huaiyu (Kitty) Liu 85085977ac Fixed a bug in ScheduleTerseUpdate, and added a few debug lines. 2011-04-19 09:52:55 -07:00
Dan Lake 08d8a3e580 Requeue unacknowledged entity updates rather than resend then "as is".
Often, by the time the UDPServer realizes that an entity update packet
has not been acknowledged, there is a newer update for the same entity
already queued up or there is a higher priority update that should be
sent first. This patch eliminates 1:1 packet resends for unacked entity
update packets. Insteawd, unacked update packets are decomposed into the
original entity updates and those updates are placed back into the
priority queues based on their new priority but the original update
timestamp. This will generally place them at the head of the line to be
put back on the wire as a new outgoing packet but prevents the resend
queue from filling up with multiple stale updates for the same entity.
This new approach takes advantage of the UDP nature of the Linden protocol
in that the intent of a reliable update packet is that if it goes
unacknowledge, SOMETHING has to happen to get the update to the client.
We are simply making sure that we are resending current object state
rather than stale object state.

Additionally, this patch includes a generalized callback mechanism so
that any caller can specify their own method to call when a packet
expires without being acknowledged. We use this mechanism to requeue
update packets and otherwise use the UDPServer default method of just
putting expired packets in the resend queue.
2011-04-19 08:10:01 -07:00
Dan Lake f47d1c84cb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-18 22:14:35 -07:00
Dan Lake 6e4d970dae Requeue unacknowledged entity updates rather than resend then "as is".
Often, by the time the UDPServer realizes that an entity update packet
has not been acknowledged, there is a newer update for the same entity
already queued up or there is a higher priority update that should be
sent first. This patch eliminates 1:1 packet resends for unacked entity
update packets. Insteawd, unacked update packets are decomposed into the
original entity updates and those updates are placed back into the
priority queues based on their new priority but the original update
timestamp. This will generally place them at the head of the line to be
put back on the wire as a new outgoing packet but prevents the resend
queue from filling up with multiple stale updates for the same entity.
This new approach takes advantage of the UDP nature of the Linden protocol
in that the intent of a reliable update packet is that if it goes
unacknowledge, SOMETHING has to happen to get the update to the client.
We are simply making sure that we are resending current object state
rather than stale object state.

Additionally, this patch includes a generalized callback mechanism so
that any caller can specify their own method to call when a packet
expires without being acknowledged. We use this mechanism to requeue
update packets and otherwise use the UDPServer default method of just
putting expired packets in the resend queue.
2011-04-18 16:48:49 -07:00
Huaiyu (Kitty) Liu 28f401d95a Added RegionSyncModule.ProcessAndEnqueuePrimUpdatesBySync, and revised functions relavant
to processing and forwarding prim updates. Code good for 2 CM and PSA to sync on NewObject
and UpdatedPrimProperties.
2011-04-18 15:54:24 -07:00
Justin Clark-Casey (justincc) 36c4e94ef7 Move mesh on/off swtich from [Startup] to [Mesh] in anticipation of future config parameters.
Default remains true.
OpenSimDefault.ini changed so if you haven't overriden this switch then you don't need to do anything.
2011-04-18 23:22:04 +01:00
Justin Clark-Casey (justincc) f5a041d012 bump default IAR version to 0.2 and 1.1 for the --profile version.
There are no changes in this bump, they just signal a point at which the control file comes first in the archive.
2011-04-18 23:00:41 +01:00
Justin Clark-Casey (justincc) 6109605038 bump oar version number to 0.6.
This commit contains no data changes - the version bump is to establish a version at which the control file must come first in the archive.
2011-04-18 22:42:36 +01:00
Justin Clark-Casey (justincc) 6600aa2baf Add regression test to check that OARs start with the control file. 2011-04-18 22:35:33 +01:00
Justin Clark-Casey (justincc) e00e518692 add test to ensure that an IAR starts with the control file 2011-04-18 22:24:42 +01:00
Justin Clark-Casey (justincc) 61619ddefc refactor: split out the code which actually copies a particular bundle to inventory 2011-04-18 21:59:01 +01:00
Justin Clark-Casey (justincc) 71114d4ad1 refactor: rename DeleteToInventory() to CopyToInventory()
DeleteToInventory() is misleading - it is the caller that decides whether to delete or not
2011-04-18 21:34:26 +01:00
Justin Clark-Casey (justincc) 5a404a9ab1 Fix bug where objects were being coalesced in the wrong positions.
This addresses http://opensimulator.org/mantis/view.php?id=5441
The bug was due to a pre-existing mistake in creating the inventory stored position
2011-04-18 21:07:11 +01:00
Justin Clark-Casey (justincc) 8533c63d89 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-18 20:36:26 +01:00
Justin Clark-Casey (justincc) 419fc9427e Provide a configuration setting to control whether multiple taken objects are coalesced to inventory
This is the CoalesceMultipleObjectsToInventory setting in [Inventory] in OpenSimDefaults.ini
Default is true.
2011-04-18 20:03:53 +01:00
Mic Bowman 452ae375f0 Merge branch 'master' into test-merge0418 2011-04-18 11:29:43 -07:00
Melanie 03e725ad87 Mantis #5442: Add admin_save_heightmap 2011-04-17 21:43:16 +01:00
Dan Lake 70084c5e3a More descriptive debug msg for ServiceOSDRequest failures. 2011-04-16 15:29:28 -07:00
Huaiyu (Kitty) Liu 8b08e4b176 Added sync message type UpdatedPrimProperties, to send prim property updates.
Sender/receiver functions most in place, need more testing.
2011-04-15 17:13:56 -07:00
Mic Bowman 3e0e1057ac Remove the call to remove tokens from the parent. Under heavy load
this appears to cause problems with the system timer resolution.
This caused a problem with tokens going into the root throttle as
bursts leading to some starvation.

Also changed EnqueueOutgoing to always queue a packet if there
are already packets in the queue. Ensures consistent ordering
of packet sends.
2011-04-15 16:44:53 -07:00
Diva Canto cd6dce1108 Fixes mantis #5431 -- coalesced objects in HG-enabled regions. Needs more testing to make sure HG inventory isn't broken by this (it shouldn't). 2011-04-15 16:42:40 -07:00
Justin Clark-Casey (justincc) ed74be6599 Make remote admin error messages more helpful on windows.
Also, make log messages conform more with convention.
2011-04-15 23:54:30 +01:00
Justin Clark-Casey (justincc) 1dba671f45 refactor: separate out code that adds permissions 2011-04-15 23:32:46 +01:00
BlueWall 065d3f42c7 Merge branch 'master' of /home/opensim/lib/develop/BlueWall 2011-04-15 18:28:46 -04:00
BlueWall fc365f2a31 Thanks Snoopy for a patch that allows setting of perms on items given to new avatars 2011-04-15 18:23:37 -04:00
Justin Clark-Casey (justincc) 9c7f14bf36 minor: remove a small amount of code duplication 2011-04-15 23:07:23 +01:00
Huaiyu (Kitty) Liu e84a7157b4 Added SyncDeleteObject to replace calling to SendDeleteObject. 2011-04-15 15:00:02 -07:00
Justin Clark-Casey (justincc) 98c5ed2c79 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-15 22:49:59 +01:00
Justin Clark-Casey (justincc) 52d9230392 refactor: split out some rez code into a separate CreateItemForObject() method 2011-04-15 22:47:47 +01:00
Huaiyu (Kitty) Liu 21c48088d8 Added SyncNewObject() to IRegionSyncModule, to be called when new object is
added to local SceneObject (by local operation, not by receiving sync message).
Code seems good for initial sync when one CM connects to PSA.
2011-04-15 12:15:28 -07:00
Huaiyu (Kitty) Liu 9dfc0e92b8 Changed Enum type SceneObjectPartProperties to SceneObjectPartSyncProperties,
to indicate they are the properties synchronzed by the sync protocol.
Also, added UUID to PrimSyncInfo.
Encode/Decode SOP to/from OSDmap seems working fine now.
2011-04-15 10:42:57 -07:00
BlueWall 37d2b6243b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-14 21:16:30 -04:00
BlueWall 40bf417da7 Add ColladaMesh switch 2011-04-14 21:15:42 -04:00
Justin Clark-Casey (justincc) 66a62678e5 get rid of all traces of the now used mock service infrastructure 2011-04-15 01:37:27 +01:00
Justin Clark-Casey (justincc) 631654a38d remove old code for a mock grid service, which got removed some time back 2011-04-15 01:30:49 +01:00
Justin Clark-Casey (justincc) ba73df39a3 remove any reference to a mock authentication service since it doesn't exist and we don't use it 2011-04-15 01:26:07 +01:00
Justin Clark-Casey (justincc) 54e8855819 remove mock asset service for tests in favour of always using the real one 2011-04-15 01:23:26 +01:00
Justin Clark-Casey (justincc) 79bd430e08 Remove the mock inventory service for tests and just use the real one all the time with an in-memory data plugin 2011-04-15 01:10:26 +01:00
Huaiyu (Kitty) Liu d0938f57eb Added PrimSyncInfo.SetSOPPropertyValue(), and fixed bugs in decoding SOP (PhysActor properties). 2011-04-14 17:09:50 -07:00
Justin Clark-Casey (justincc) ad70cddcfc extend TestLoadCoalesecedItem() to check loaded object ids and positions 2011-04-15 00:56:40 +01:00
Justin Clark-Casey (justincc) a0d80140f2 Make all the objects in a coalescence reappears after being loaded from an IAR. This still doesn't work proprerly since some required textures/contained item assets might be missing.
From pure code inspection, it looks like the uuid gatherer may get most asset uuids because the scene object serializer naively pulls non-root parts from all contained scene objects into one mega-object.  However, root part uuids may well still be missing, and there may be other odd artifacts from this bug.
It appears that storing the size of the coalescence and the offsets is redundant, since one can work out this information from the position data already in the scene object groups.
2011-04-15 00:42:06 +01:00
Justin Clark-Casey (justincc) 821e67fb95 implement stub TestLoadCoalesecedItem(). Doesn't do what it's meant to do yet. 2011-04-14 20:59:52 +01:00
Justin Clark-Casey (justincc) 55387542ea simplify InventoryArchiveTestCase setup 2011-04-14 20:35:00 +01:00
Justin Clark-Casey (justincc) 1569148b49 simplify TestSaveItemToIarV0_1() 2011-04-14 20:32:27 +01:00
Justin Clark-Casey (justincc) e439264824 simplify TestRezObject() 2011-04-14 20:23:48 +01:00
Justin Clark-Casey (justincc) c644ab6a2c Make scene object parts created by the test utils unit sized. 2011-04-14 20:21:44 +01:00
Justin Clark-Casey (justincc) 4b05e667cb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-14 20:15:34 +01:00
Mic Bowman 22b307ea1c Merge branch 'master' into queuetest 2011-04-14 11:59:25 -07:00