coment out missing or damage assets messages in uuidgather that are not very usefull. In IAR save display information about items that contain references to broken assets. Note that as explained on mantis 8195 this can't will not detect all problems
parent
3c6790b061
commit
95595a8360
|
@ -221,7 +221,32 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
|
|
||||||
// Don't chase down link asset items as they actually point to their target item IDs rather than an asset
|
// Don't chase down link asset items as they actually point to their target item IDs rather than an asset
|
||||||
if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder)
|
if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder)
|
||||||
|
{
|
||||||
|
int curErrorCntr = m_assetGatherer.ErrorCount;
|
||||||
m_assetGatherer.AddForInspection(inventoryItem.AssetID);
|
m_assetGatherer.AddForInspection(inventoryItem.AssetID);
|
||||||
|
m_assetGatherer.GatherAll();
|
||||||
|
curErrorCntr = m_assetGatherer.ErrorCount - curErrorCntr;
|
||||||
|
if(curErrorCntr > 0)
|
||||||
|
{
|
||||||
|
string spath;
|
||||||
|
int indx = path.IndexOf("__");
|
||||||
|
if(indx > 0)
|
||||||
|
spath = path.Substring(0,indx);
|
||||||
|
else
|
||||||
|
spath = path;
|
||||||
|
|
||||||
|
if(curErrorCntr > 1)
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[INVENTORY ARCHIVER]: item {0} '{1}', type {2}, in '{3}', contains at least {4} references to missing or damaged assets",
|
||||||
|
inventoryItem.ID, inventoryItem.Name, itemAssetType.ToString(), spath, curErrorCntr);
|
||||||
|
}
|
||||||
|
else if(curErrorCntr == 1)
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[INVENTORY ARCHIVER]: item {0} '{1}', type {2}, in '{3}', contains at least 1 reference to a missing or damaged asset",
|
||||||
|
inventoryItem.ID, inventoryItem.Name, itemAssetType.ToString(), spath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -427,7 +452,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
m_log.DebugFormat(
|
m_log.DebugFormat(
|
||||||
"[INVENTORY ARCHIVER]: The items to save reference {0} assets", m_assetGatherer.GatheredUuids.Count + errors);
|
"[INVENTORY ARCHIVER]: The items to save reference {0} assets", m_assetGatherer.GatheredUuids.Count + errors);
|
||||||
if(errors > 0)
|
if(errors > 0)
|
||||||
m_log.DebugFormat("[INVENTORY ARCHIVER]: {0} of this assets have problems and will be ignored", errors);
|
m_log.DebugFormat("[INVENTORY ARCHIVER]: {0} of these assets have problems and will be ignored", errors);
|
||||||
|
|
||||||
AssetsRequest ar = new AssetsRequest(
|
AssetsRequest ar = new AssetsRequest(
|
||||||
new AssetsArchiver(m_archiveWriter),
|
new AssetsArchiver(m_archiveWriter),
|
||||||
|
|
|
@ -66,7 +66,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <value>The gathered uuids.</value>
|
/// <value>The gathered uuids.</value>
|
||||||
public IDictionary<UUID, sbyte> GatheredUuids { get; private set; }
|
public IDictionary<UUID, sbyte> GatheredUuids { get; private set; }
|
||||||
public HashSet<UUID> FailedUUIDs { get; private set; }
|
public HashSet<UUID> FailedUUIDs { get; private set; }
|
||||||
|
public int ErrorCount { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the next UUID to inspect.
|
/// Gets the next UUID to inspect.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -103,7 +103,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// Asset service.
|
/// Asset service.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="collector">
|
/// <param name="collector">
|
||||||
/// Gathered UUIDs will be collected in this dictinaory.
|
/// Gathered UUIDs will be collected in this dictionary.
|
||||||
/// It can be pre-populated if you want to stop the gatherer from analyzing assets that have already been fetched and inspected.
|
/// It can be pre-populated if you want to stop the gatherer from analyzing assets that have already been fetched and inspected.
|
||||||
/// </param>
|
/// </param>
|
||||||
public UuidGatherer(IAssetService assetService, IDictionary<UUID, sbyte> collector, HashSet <UUID> failedIDs)
|
public UuidGatherer(IAssetService assetService, IDictionary<UUID, sbyte> collector, HashSet <UUID> failedIDs)
|
||||||
|
@ -114,6 +114,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// FIXME: Not efficient for searching, can improve.
|
// FIXME: Not efficient for searching, can improve.
|
||||||
m_assetUuidsToInspect = new Queue<UUID>();
|
m_assetUuidsToInspect = new Queue<UUID>();
|
||||||
FailedUUIDs = failedIDs;
|
FailedUUIDs = failedIDs;
|
||||||
|
ErrorCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -232,9 +233,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[UUID GATHERER]: Failed to get part - {0}", e);
|
m_log.ErrorFormat("[UUID GATHERER]: Failed to get part - {0}", e);
|
||||||
m_log.DebugFormat(
|
|
||||||
"[UUID GATHERER]: Texture entry length for prim was {0} (min is 46)",
|
|
||||||
part.Shape.TextureEntry.Length);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -286,14 +284,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
private void GetAssetUuids(UUID assetUuid)
|
private void GetAssetUuids(UUID assetUuid)
|
||||||
{
|
{
|
||||||
if(FailedUUIDs.Contains(assetUuid))
|
if(FailedUUIDs.Contains(assetUuid))
|
||||||
|
{
|
||||||
|
ErrorCount++;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// avoid infinite loops
|
// avoid infinite loops
|
||||||
if (GatheredUuids.ContainsKey(assetUuid))
|
if (GatheredUuids.ContainsKey(assetUuid))
|
||||||
{
|
|
||||||
FailedUUIDs.Add(assetUuid);
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
AssetBase assetBase;
|
AssetBase assetBase;
|
||||||
try
|
try
|
||||||
|
@ -303,13 +301,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[UUID GATHERER]: Failed to get asset {0} : {1}", assetUuid, e.Message);
|
m_log.ErrorFormat("[UUID GATHERER]: Failed to get asset {0} : {1}", assetUuid, e.Message);
|
||||||
|
ErrorCount++;
|
||||||
FailedUUIDs.Add(assetUuid);
|
FailedUUIDs.Add(assetUuid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(assetBase == null)
|
if(assetBase == null)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[UUID GATHERER]: asset {0} not found", assetUuid);
|
// m_log.ErrorFormat("[UUID GATHERER]: asset {0} not found", assetUuid);
|
||||||
|
ErrorCount++;
|
||||||
FailedUUIDs.Add(assetUuid);
|
FailedUUIDs.Add(assetUuid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
if(assetBase.Data == null || assetBase.Data.Length == 0)
|
if(assetBase.Data == null || assetBase.Data.Length == 0)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[UUID GATHERER]: asset {0}, type {1} has no data", assetUuid, assetType);
|
// m_log.ErrorFormat("[UUID GATHERER]: asset {0}, type {1} has no data", assetUuid, assetType);
|
||||||
|
ErrorCount++;
|
||||||
FailedUUIDs.Add(assetUuid);
|
FailedUUIDs.Add(assetUuid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -355,6 +356,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[UUID GATHERER]: Failed to gather uuids for asset with id {0} type {1}: {2}", assetUuid, assetType, e.Message);
|
m_log.ErrorFormat("[UUID GATHERER]: Failed to gather uuids for asset with id {0} type {1}: {2}", assetUuid, assetType, e.Message);
|
||||||
GatheredUuids.Remove(assetUuid);
|
GatheredUuids.Remove(assetUuid);
|
||||||
|
ErrorCount++;
|
||||||
FailedUUIDs.Add(assetUuid);
|
FailedUUIDs.Add(assetUuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -363,7 +365,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
// Here, we want to collect uuids which require further asset fetches but mark the others as gathered
|
// Here, we want to collect uuids which require further asset fetches but mark the others as gathered
|
||||||
if(FailedUUIDs.Contains(assetUuid))
|
if(FailedUUIDs.Contains(assetUuid))
|
||||||
|
{
|
||||||
|
ErrorCount++;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if(GatheredUuids.ContainsKey(assetUuid))
|
if(GatheredUuids.ContainsKey(assetUuid))
|
||||||
return;
|
return;
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in New Issue