From 3c6790b061fe1dd6d7cf602a3eb082b5bd149012 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 23 Jun 2017 15:50:16 +0100 Subject: several changes to iar/oar assets error reports --- .../CoreModules/World/Archiver/ArchiveWriteRequest.cs | 16 +++++++++------- .../CoreModules/World/Archiver/AssetsArchiver.cs | 2 +- .../Region/CoreModules/World/Archiver/AssetsRequest.cs | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 16 deletions(-) (limited to 'OpenSim/Region/CoreModules/World/Archiver') diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs index 761fece..9500eb6 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs @@ -181,11 +181,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver // Archive the regions Dictionary assetUuids = new Dictionary(); + HashSet failedIDs = new HashSet(); scenesGroup.ForEachScene(delegate(Scene scene) { string regionDir = MultiRegionFormat ? scenesGroup.GetRegionDir(scene.RegionInfo.RegionID) : ""; - ArchiveOneRegion(scene, regionDir, assetUuids); + ArchiveOneRegion(scene, regionDir, assetUuids, failedIDs); }); // Archive the assets @@ -196,6 +197,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver AssetsRequest ar = new AssetsRequest( new AssetsArchiver(m_archiveWriter), assetUuids, + failedIDs.Count, m_rootScene.AssetService, m_rootScene.UserAccountService, m_rootScene.RegionInfo.ScopeID, options, null); ar.Execute(); @@ -215,7 +217,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver } } - private void ArchiveOneRegion(Scene scene, string regionDir, Dictionary assetUuids) + private void ArchiveOneRegion(Scene scene, string regionDir, Dictionary assetUuids, HashSet failedIDs) { m_log.InfoFormat("[ARCHIVER]: Writing region {0}", scene.Name); @@ -251,7 +253,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver if (SaveAssets) { - UuidGatherer assetGatherer = new UuidGatherer(scene.AssetService, assetUuids); + UuidGatherer assetGatherer = new UuidGatherer(scene.AssetService, assetUuids, failedIDs); int prevAssets = assetUuids.Count; foreach (SceneObjectGroup sceneObject in sceneObjects) @@ -259,12 +261,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver assetGatherer.GatherAll(); - m_log.DebugFormat( - "[ARCHIVER]: {0} scene objects to serialize requiring save of {1} assets", - sceneObjects.Count, assetUuids.Count - prevAssets); int errors = assetGatherer.FailedUUIDs.Count; + m_log.DebugFormat( + "[ARCHIVER]: {0} region scene objects to save reference {1} assets", + sceneObjects.Count, assetUuids.Count - prevAssets + errors); if(errors > 0) - m_log.DebugFormat("[ARCHIVER]: aditional {0} assets have problems and will be ignored", errors); + m_log.DebugFormat("[ARCHIVER]: {0} of this assets have problems and will be ignored", errors); } if (numObjectsSkippedPermissions > 0) diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs index efacae3..3092fe0 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs @@ -46,7 +46,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// /// Post a message to the log every x assets as a progress bar /// - protected static int LOG_ASSET_LOAD_NOTIFICATION_INTERVAL = 50; + protected static int LOG_ASSET_LOAD_NOTIFICATION_INTERVAL = 100; /// /// Keep a count of the number of assets written so that we can provide status updates diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index f303498..903cb2d 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs @@ -65,6 +65,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// uuids to request /// protected IDictionary m_uuids; + private int m_previusErrorsCount; /// /// Callback used when all the assets requested have been received. @@ -102,12 +103,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver protected internal AssetsRequest( AssetsArchiver assetsArchiver, IDictionary uuids, + int previusErrorsCount, IAssetService assetService, IUserAccountService userService, UUID scope, Dictionary options, AssetsRequestCallback assetsRequestCallback) { m_assetsArchiver = assetsArchiver; m_uuids = uuids; + m_previusErrorsCount = previusErrorsCount; m_assetsRequestCallback = assetsRequestCallback; m_assetService = assetService; m_userAccountService = userService; @@ -119,8 +122,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver protected internal void Execute() { Culture.SetCurrentCulture(); - m_log.DebugFormat("[ARCHIVER]: AssetsRequest executed looking for {0} possible assets", m_repliesRequired); - // We can stop here if there are no assets to fetch if (m_repliesRequired == 0) { @@ -169,19 +170,20 @@ namespace OpenSim.Region.CoreModules.World.Archiver } m_timeOutTimer.Dispose(); + int totalerrors = m_notFoundAssetUuids.Count + m_previusErrorsCount; if(m_timeout) m_log.DebugFormat("[ARCHIVER]: Aborted because AssetService request timeout. Successfully added {0} assets", m_foundAssetUuids.Count); - else if(m_notFoundAssetUuids.Count == 0) + else if(totalerrors == 0) m_log.DebugFormat("[ARCHIVER]: Successfully added all {0} assets", m_foundAssetUuids.Count); else - m_log.DebugFormat("[ARCHIVER]: Successfully added {0} assets ({1} assets not found)", - m_foundAssetUuids.Count, m_notFoundAssetUuids.Count); + m_log.DebugFormat("[ARCHIVER]: Successfully added {0} assets ({1} assets of total request where not found or are damaged", + m_foundAssetUuids.Count, totalerrors); PerformAssetsRequestCallback(m_timeout); } - void OnTimeout(object source, ElapsedEventArgs args) + private void OnTimeout(object source, ElapsedEventArgs args) { m_timeout = true; } @@ -189,7 +191,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// /// Perform the callback on the original requester of the assets /// - protected void PerformAssetsRequestCallback(object o) + private void PerformAssetsRequestCallback(object o) { if(m_assetsRequestCallback == null) return; @@ -208,7 +210,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver } } - protected AssetBase PostProcess(AssetBase asset) + private AssetBase PostProcess(AssetBase asset) { if (asset.Type == (sbyte)AssetType.Object && asset.Data != null && m_options.ContainsKey("home")) { -- cgit v1.1