do not try to store on oars temporary or in transit objects ( they may be deleted during the save)
parent
637d35631c
commit
1bfe4da378
|
@ -194,21 +194,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[ARCHIVER]: Saving {0} assets", assetUuids.Count);
|
m_log.DebugFormat("[ARCHIVER]: Saving {0} assets", assetUuids.Count);
|
||||||
|
|
||||||
// Asynchronously request all the assets required to perform this archive operation
|
|
||||||
AssetsRequest ar = new AssetsRequest(
|
AssetsRequest ar = new AssetsRequest(
|
||||||
new AssetsArchiver(m_archiveWriter), assetUuids,
|
new AssetsArchiver(m_archiveWriter), assetUuids,
|
||||||
m_rootScene.AssetService, m_rootScene.UserAccountService,
|
m_rootScene.AssetService, m_rootScene.UserAccountService,
|
||||||
m_rootScene.RegionInfo.ScopeID, options, ReceivedAllAssets);
|
m_rootScene.RegionInfo.ScopeID, options, null);
|
||||||
|
|
||||||
// WorkManager.RunInThread(o => ar.Execute(), null, "Archive Assets Request");
|
|
||||||
ar.Execute();
|
ar.Execute();
|
||||||
// CloseArchive() will be called from ReceivedAllAssets()
|
assetUuids = null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[ARCHIVER]: Not saving assets since --noassets was specified");
|
m_log.DebugFormat("[ARCHIVER]: Not saving assets since --noassets was specified");
|
||||||
CloseArchive(string.Empty);
|
// CloseArchive(string.Empty);
|
||||||
}
|
}
|
||||||
|
CloseArchive(string.Empty);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -236,7 +234,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
{
|
{
|
||||||
SceneObjectGroup sceneObject = (SceneObjectGroup)entity;
|
SceneObjectGroup sceneObject = (SceneObjectGroup)entity;
|
||||||
|
|
||||||
if (!sceneObject.IsDeleted && !sceneObject.IsAttachment)
|
if (!sceneObject.IsDeleted && !sceneObject.IsAttachment && !sceneObject.IsTemporary && !sceneObject.inTransit)
|
||||||
{
|
{
|
||||||
if (!CanUserArchiveObject(scene.RegionInfo.EstateSettings.EstateOwner, sceneObject, FilterContent, permissionsModule))
|
if (!CanUserArchiveObject(scene.RegionInfo.EstateSettings.EstateOwner, sceneObject, FilterContent, permissionsModule))
|
||||||
{
|
{
|
||||||
|
@ -571,7 +569,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
foreach (SceneObjectGroup sceneObject in sceneObjects)
|
foreach (SceneObjectGroup sceneObject in sceneObjects)
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType());
|
//m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType());
|
||||||
|
if(sceneObject.IsDeleted || sceneObject.inTransit)
|
||||||
|
continue;
|
||||||
string serializedObject = serializer.SerializeGroupToXml2(sceneObject, m_options);
|
string serializedObject = serializer.SerializeGroupToXml2(sceneObject, m_options);
|
||||||
string objectPath = string.Format("{0}{1}", regionDir, ArchiveHelpers.CreateObjectPath(sceneObject));
|
string objectPath = string.Format("{0}{1}", regionDir, ArchiveHelpers.CreateObjectPath(sceneObject));
|
||||||
m_archiveWriter.WriteFile(objectPath, serializedObject);
|
m_archiveWriter.WriteFile(objectPath, serializedObject);
|
||||||
|
|
Loading…
Reference in New Issue