From 534560df8c9f59eb416cb7415ac7055c459da339 Mon Sep 17 00:00:00 2001 From: Melanie Date: Sat, 5 Nov 2011 23:31:20 +0100 Subject: [PATCH 1/2] Remove backup optimization that was causing prim contents to poof --- .../Framework/Scenes/SceneObjectPartInventory.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 07e303f383..309f543972 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -1122,14 +1122,19 @@ namespace OpenSim.Region.Framework.Scenes /// public void ProcessInventoryBackup(ISimulationDataService datastore) { - if (HasInventoryChanged) - { +// Removed this because linking will cause an immediate delete of the new +// child prim from the database and the subsequent storing of the prim sees +// the inventory of it as unchanged and doesn't store it at all. The overhead +// of storing prim inventory needlessly is much less than the aggravation +// of prim inventory loss. +// if (HasInventoryChanged) +// { Items.LockItemsForRead(true); datastore.StorePrimInventory(m_part.UUID, Items.Values); Items.LockItemsForRead(false); HasInventoryChanged = false; - } +// } } public class InventoryStringBuilder From c9179be1ed85528e5580685a07f67d3eb644be35 Mon Sep 17 00:00:00 2001 From: Melanie Date: Sun, 6 Nov 2011 20:16:24 +0100 Subject: [PATCH 2/2] Small preformance tweak --- OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index 12688bdfae..218f2c5eec 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs @@ -109,7 +109,7 @@ namespace OpenSim.Region.Framework.Scenes foreach (SceneObjectGroup g in objectGroups) { killIDs.Add(g.LocalId); - g.DeleteGroupFromScene(false); + g.DeleteGroupFromScene(true); } m_scene.SendKillObject(killIDs);