aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
authorUbitUmarov2017-06-24 02:01:48 +0100
committerUbitUmarov2017-06-24 02:01:48 +0100
commit191661b51d31254419e9b442ec12953772821ac3 (patch)
tree41e32cf5889e96e6284677809ca2230b8066fdad /OpenSim/Region/CoreModules/World
parent code actually has no ideia if a id is a asset or not and does try to handle ... (diff)
downloadopensim-SC-191661b51d31254419e9b442ec12953772821ac3.zip
opensim-SC-191661b51d31254419e9b442ec12953772821ac3.tar.gz
opensim-SC-191661b51d31254419e9b442ec12953772821ac3.tar.bz2
opensim-SC-191661b51d31254419e9b442ec12953772821ac3.tar.xz
a few more changes to iar/oar assets save error/warning to show problems known to be asset errors
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs24
1 files changed, 15 insertions, 9 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
index 0ed3399..11c53d7 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
@@ -182,11 +182,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
182 182
183 Dictionary<UUID, sbyte> assetUuids = new Dictionary<UUID, sbyte>(); 183 Dictionary<UUID, sbyte> assetUuids = new Dictionary<UUID, sbyte>();
184 HashSet<UUID> failedIDs = new HashSet<UUID>(); 184 HashSet<UUID> failedIDs = new HashSet<UUID>();
185 HashSet<UUID> uncertainAssetsUUIDs = new HashSet<UUID>();
185 186
186 scenesGroup.ForEachScene(delegate(Scene scene) 187 scenesGroup.ForEachScene(delegate(Scene scene)
187 { 188 {
188 string regionDir = MultiRegionFormat ? scenesGroup.GetRegionDir(scene.RegionInfo.RegionID) : ""; 189 string regionDir = MultiRegionFormat ? scenesGroup.GetRegionDir(scene.RegionInfo.RegionID) : "";
189 ArchiveOneRegion(scene, regionDir, assetUuids, failedIDs); 190 ArchiveOneRegion(scene, regionDir, assetUuids, failedIDs, uncertainAssetsUUIDs);
190 }); 191 });
191 192
192 // Archive the assets 193 // Archive the assets
@@ -217,7 +218,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
217 } 218 }
218 } 219 }
219 220
220 private void ArchiveOneRegion(Scene scene, string regionDir, Dictionary<UUID, sbyte> assetUuids, HashSet<UUID> failedIDs) 221 private void ArchiveOneRegion(Scene scene, string regionDir, Dictionary<UUID, sbyte> assetUuids,
222 HashSet<UUID> failedIDs, HashSet<UUID> uncertainAssetsUUIDs)
221 { 223 {
222 m_log.InfoFormat("[ARCHIVER]: Writing region {0}", scene.Name); 224 m_log.InfoFormat("[ARCHIVER]: Writing region {0}", scene.Name);
223 225
@@ -253,24 +255,28 @@ namespace OpenSim.Region.CoreModules.World.Archiver
253 255
254 if (SaveAssets) 256 if (SaveAssets)
255 { 257 {
256 UuidGatherer assetGatherer = new UuidGatherer(scene.AssetService, assetUuids, failedIDs); 258 UuidGatherer assetGatherer = new UuidGatherer(scene.AssetService, assetUuids, failedIDs, uncertainAssetsUUIDs);
257 int prevAssets = assetUuids.Count; 259 int prevAssets = assetUuids.Count;
258 260
259 foreach (SceneObjectGroup sceneObject in sceneObjects) 261 foreach (SceneObjectGroup sceneObject in sceneObjects)
260 { 262 {
261 int curErrorCntr = assetGatherer.ErrorCount; 263 int curErrorCntr = assetGatherer.ErrorCount;
264 int possible = assetGatherer.possibleNotAssetCount;
262 assetGatherer.AddForInspection(sceneObject); 265 assetGatherer.AddForInspection(sceneObject);
263 assetGatherer.GatherAll(); 266 assetGatherer.GatherAll();
264 curErrorCntr = assetGatherer.ErrorCount - curErrorCntr; 267 curErrorCntr = assetGatherer.ErrorCount - curErrorCntr;
265 if(curErrorCntr > 1) 268 possible = assetGatherer.possibleNotAssetCount - possible;
269 if(curErrorCntr > 0)
266 { 270 {
267 m_log.WarnFormat("[ARCHIVER Warning]: object {0} '{1}', at {2}, contains {3} references to possible missing or damaged assets", 271 m_log.ErrorFormat("[ARCHIVER]: object {0} '{1}', at {2}, contains {3} references to missing or damaged assets",
268 sceneObject.UUID, sceneObject.Name ,sceneObject.AbsolutePosition.ToString(), curErrorCntr); 272 sceneObject.UUID, sceneObject.Name ,sceneObject.AbsolutePosition.ToString(), curErrorCntr);
273 if(possible > 0)
274 m_log.WarnFormat("[ARCHIVER Warning]: object also contains {0} references that may be to missing or damaged assets or not a problem", possible);
269 } 275 }
270 else if(curErrorCntr == 1) 276 else if(possible > 0)
271 { 277 {
272 m_log.WarnFormat("[ARCHIVER Warning]: object {0} '{1}', at {2}, contains a reference to a possible missing or damaged assets", 278 m_log.WarnFormat("[ARCHIVER Warning]: object {0} '{1}', at {2}, contains {3} references that may be to missing or damaged assets or not a problem",
273 sceneObject.UUID, sceneObject.Name, sceneObject.AbsolutePosition.ToString()); 279 sceneObject.UUID, sceneObject.Name ,sceneObject.AbsolutePosition.ToString(), possible);
274 } 280 }
275 } 281 }
276 282