diff options
author | Justin Clarke Casey | 2009-05-15 20:20:55 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-05-15 20:20:55 +0000 |
commit | c11e047410fdabb5c53ebdb7cec637a177254aeb (patch) | |
tree | a59b59b3840090dc7ab4d774fd2acae8a65f3dab | |
parent | * Change default sqlite asset db back to Asset.db instead of AssetStorage.db (diff) | |
download | opensim-SC-c11e047410fdabb5c53ebdb7cec637a177254aeb.zip opensim-SC-c11e047410fdabb5c53ebdb7cec637a177254aeb.tar.gz opensim-SC-c11e047410fdabb5c53ebdb7cec637a177254aeb.tar.bz2 opensim-SC-c11e047410fdabb5c53ebdb7cec637a177254aeb.tar.xz |
* Resolve bug where save oar would never complete if any assets were missing
Diffstat (limited to '')
5 files changed, 20 insertions, 17 deletions
diff --git a/OpenSim/Framework/AssetBase.cs b/OpenSim/Framework/AssetBase.cs index 4e43cb7..0551533 100644 --- a/OpenSim/Framework/AssetBase.cs +++ b/OpenSim/Framework/AssetBase.cs | |||
@@ -150,6 +150,11 @@ namespace OpenSim.Framework | |||
150 | get { return m_metadata; } | 150 | get { return m_metadata; } |
151 | set { m_metadata = value; } | 151 | set { m_metadata = value; } |
152 | } | 152 | } |
153 | |||
154 | public override string ToString() | ||
155 | { | ||
156 | return FullID.ToString(); | ||
157 | } | ||
153 | } | 158 | } |
154 | 159 | ||
155 | public class AssetMetadata | 160 | public class AssetMetadata |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs index b167ce2..20eb393 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs | |||
@@ -85,9 +85,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
85 | m_log.DebugFormat("[ARCHIVER]: Could not find asset {0}", uuid); | 85 | m_log.DebugFormat("[ARCHIVER]: Could not find asset {0}", uuid); |
86 | } | 86 | } |
87 | 87 | ||
88 | m_log.InfoFormat( | 88 | // m_log.InfoFormat( |
89 | "[ARCHIVER]: Received {0} of {1} assets requested", | 89 | // "[ARCHIVER]: Received {0} of {1} assets requested", |
90 | assetsFoundUuids.Count, assetsFoundUuids.Count + assetsNotFoundUuids.Count); | 90 | // assetsFoundUuids.Count, assetsFoundUuids.Count + assetsNotFoundUuids.Count); |
91 | 91 | ||
92 | m_log.InfoFormat("[ARCHIVER]: Creating archive file. This may take some time."); | 92 | m_log.InfoFormat("[ARCHIVER]: Creating archive file. This may take some time."); |
93 | 93 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs index 0c01cae..e2b08ae 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs | |||
@@ -144,8 +144,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
144 | 144 | ||
145 | m_assetsWritten++; | 145 | m_assetsWritten++; |
146 | 146 | ||
147 | //m_log.DebugFormat("[ARCHIVER]: Added asset {0}", m_assetsWritten); | ||
148 | |||
147 | if (m_assetsWritten % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL == 0) | 149 | if (m_assetsWritten % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL == 0) |
148 | m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", m_assetsWritten); | 150 | m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", m_assetsWritten); |
149 | } | 151 | } |
150 | } | 152 | } |
151 | } | 153 | } |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index 6cd52ab..97f9b18 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs | |||
@@ -97,15 +97,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
97 | 97 | ||
98 | foreach (UUID uuid in m_uuids) | 98 | foreach (UUID uuid in m_uuids) |
99 | { | 99 | { |
100 | m_assetCache.Get(uuid.ToString(), this, AssetReceived); | 100 | m_assetCache.Get(uuid.ToString(), this, AssetRequestCallback); |
101 | } | ||
102 | } | ||
103 | |||
104 | protected void AssetReceived(string id, object sender, AssetBase asset) | ||
105 | { | ||
106 | if (asset != null) | ||
107 | { | ||
108 | AssetRequestCallback(asset.FullID, asset); | ||
109 | } | 101 | } |
110 | } | 102 | } |
111 | 103 | ||
@@ -114,24 +106,24 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
114 | /// </summary> | 106 | /// </summary> |
115 | /// <param name="assetID"></param> | 107 | /// <param name="assetID"></param> |
116 | /// <param name="asset"></param> | 108 | /// <param name="asset"></param> |
117 | public void AssetRequestCallback(UUID assetID, AssetBase asset) | 109 | public void AssetRequestCallback(string id, object sender, AssetBase asset) |
118 | { | 110 | { |
119 | //m_log.DebugFormat("[ARCHIVER]: Received callback for asset {0}", assetID); | 111 | //m_log.DebugFormat("[ARCHIVER]: Received callback for asset {0}", assetID); |
120 | 112 | ||
121 | if (asset != null) | 113 | if (asset != null) |
122 | { | 114 | { |
123 | m_foundAssetUuids.Add(assetID); | 115 | m_foundAssetUuids.Add(asset.FullID); |
124 | m_assetsArchiver.WriteAsset(asset); | 116 | m_assetsArchiver.WriteAsset(asset); |
125 | } | 117 | } |
126 | else | 118 | else |
127 | { | 119 | { |
128 | m_notFoundAssetUuids.Add(assetID); | 120 | m_notFoundAssetUuids.Add(new UUID(id)); |
129 | } | 121 | } |
130 | 122 | ||
131 | if (m_foundAssetUuids.Count + m_notFoundAssetUuids.Count == m_repliesRequired) | 123 | if (m_foundAssetUuids.Count + m_notFoundAssetUuids.Count == m_repliesRequired) |
132 | { | 124 | { |
133 | m_log.DebugFormat( | 125 | m_log.DebugFormat( |
134 | "[ARCHIVER]: Successfully received {0} assets and notification of {1} missing assets", | 126 | "[ARCHIVER]: Successfully added {0} assets ({1} assets missing)", |
135 | m_foundAssetUuids.Count, m_notFoundAssetUuids.Count); | 127 | m_foundAssetUuids.Count, m_notFoundAssetUuids.Count); |
136 | 128 | ||
137 | // We want to stop using the asset cache thread asap | 129 | // We want to stop using the asset cache thread asap |
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs index bc6d752..af3a746 100644 --- a/OpenSim/Services/AssetService/AssetService.cs +++ b/OpenSim/Services/AssetService/AssetService.cs | |||
@@ -98,6 +98,8 @@ namespace OpenSim.Services.AssetService | |||
98 | 98 | ||
99 | public bool Get(string id, Object sender, AssetRetrieved handler) | 99 | public bool Get(string id, Object sender, AssetRetrieved handler) |
100 | { | 100 | { |
101 | //m_log.DebugFormat("[AssetService]: Got request for {0}", id); | ||
102 | |||
101 | UUID assetID; | 103 | UUID assetID; |
102 | 104 | ||
103 | if (!UUID.TryParse(id, out assetID)) | 105 | if (!UUID.TryParse(id, out assetID)) |
@@ -105,6 +107,8 @@ namespace OpenSim.Services.AssetService | |||
105 | 107 | ||
106 | AssetBase asset = m_Database.FetchAsset(assetID); | 108 | AssetBase asset = m_Database.FetchAsset(assetID); |
107 | 109 | ||
110 | //m_log.DebugFormat("[AssetService]: Got asset {0}", asset); | ||
111 | |||
108 | handler(id, sender, asset); | 112 | handler(id, sender, asset); |
109 | 113 | ||
110 | return true; | 114 | return true; |