aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MySQL/MySQLRegionData.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2009-01-29 20:08:04 +0000
committerJustin Clarke Casey2009-01-29 20:08:04 +0000
commit13f069b945b10ccdcb7ffd26392a0c9166914852 (patch)
tree89cfec025d3c41b3f94d4c93e3dcbfb53d225924 /OpenSim/Data/MySQL/MySQLRegionData.cs
parentComplete the implementation of llSHA1String. (diff)
downloadopensim-SC_OLD-13f069b945b10ccdcb7ffd26392a0c9166914852.zip
opensim-SC_OLD-13f069b945b10ccdcb7ffd26392a0c9166914852.tar.gz
opensim-SC_OLD-13f069b945b10ccdcb7ffd26392a0c9166914852.tar.bz2
opensim-SC_OLD-13f069b945b10ccdcb7ffd26392a0c9166914852.tar.xz
* If an orphaned group is found in the mysql or mssql databases (i.e. there is no prim where UUID = SceneGroupID), then force one prim to have UUID = SceneGroupID.
* A warning is posted about this on startup giving the location of the object * This should allow one class of persistently undeletable prims to be removed * This change should not cause any issues, but I still suggest that you backup your database beforehand * If this doesn't work for previously linked objects, then you could also try the workaround in http://opensimulator.org/mantis/view.php?id=3059 * This change has been made to mysql and mssql, but sqlite appears to work in a different way
Diffstat (limited to 'OpenSim/Data/MySQL/MySQLRegionData.cs')
-rw-r--r--OpenSim/Data/MySQL/MySQLRegionData.cs16
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs
index a06dbb3..e1ddb54 100644
--- a/OpenSim/Data/MySQL/MySQLRegionData.cs
+++ b/OpenSim/Data/MySQL/MySQLRegionData.cs
@@ -455,6 +455,20 @@ namespace OpenSim.Data.MySQL
455 objects.Add(grp); 455 objects.Add(grp);
456 456
457 lastGroupID = groupID; 457 lastGroupID = groupID;
458
459 // There sometimes exist OpenSim bugs that 'orphan groups' so that none of the prims are
460 // recorded as the root prim (for which the UUID must equal the persisted group UUID). In
461 // this case, force the UUID to be the same as the group UUID so that at least these can be
462 // deleted (we need to change the UUID so that any other prims in the linkset can also be
463 // deleted).
464 if (prim.UUID != groupID && groupID != UUID.Zero)
465 {
466 m_log.WarnFormat(
467 "[REGION DB]: Found root prim {0} {1} at {2} where group was actually {3}. Forcing UUID to group UUID",
468 prim.Name, prim.UUID, prim.GroupPosition, groupID);
469
470 prim.UUID = groupID;
471 }
458 472
459 grp = new SceneObjectGroup(prim); 473 grp = new SceneObjectGroup(prim);
460 } 474 }
@@ -484,7 +498,7 @@ namespace OpenSim.Data.MySQL
484 foreach (SceneObjectPart part in prims) 498 foreach (SceneObjectPart part in prims)
485 LoadItems(part); 499 LoadItems(part);
486 500
487 m_log.DebugFormat("[DATABASE] Loaded {0} objects using {1} prims", objects.Count, prims.Count); 501 m_log.DebugFormat("[REGION DB]: Loaded {0} objects using {1} prims", objects.Count, prims.Count);
488 502
489 return objects; 503 return objects;
490 } 504 }