diff options
author | Justin Clarke Casey | 2007-12-15 19:42:23 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2007-12-15 19:42:23 +0000 |
commit | c63369017f0ac8e204f79978f20d5c2abdf5bef2 (patch) | |
tree | 97b26f9efc262bdf0d691e84bf19f2175124984b | |
parent | * Added support for multiple terrain blocks to be edited at the same time (diff) | |
download | opensim-SC_OLD-c63369017f0ac8e204f79978f20d5c2abdf5bef2.zip opensim-SC_OLD-c63369017f0ac8e204f79978f20d5c2abdf5bef2.tar.gz opensim-SC_OLD-c63369017f0ac8e204f79978f20d5c2abdf5bef2.tar.bz2 opensim-SC_OLD-c63369017f0ac8e204f79978f20d5c2abdf5bef2.tar.xz |
* Make inventory operations sync rather than async. This is to alleviate race conditions such as that in mantis #190
* Make inventory messages more verbose. Hopefully they aren't now too verbose
* This may resolve some grid instability but it's likely there's much more out there.
4 files changed, 53 insertions, 39 deletions
diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index 6ae1d82..150a262 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs | |||
@@ -31,6 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Text; | 31 | using System.Text; |
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using OpenSim.Framework.Communications; | 33 | using OpenSim.Framework.Communications; |
34 | using OpenSim.Framework.Console; | ||
34 | using libsecondlife; | 35 | using libsecondlife; |
35 | 36 | ||
36 | namespace OpenSim.Grid.InventoryServer | 37 | namespace OpenSim.Grid.InventoryServer |
@@ -105,9 +106,10 @@ namespace OpenSim.Grid.InventoryServer | |||
105 | 106 | ||
106 | public InventoryCollection GetUserInventory(Guid rawUserID) | 107 | public InventoryCollection GetUserInventory(Guid rawUserID) |
107 | { | 108 | { |
108 | Console.WriteLine("Request for Inventory for " + rawUserID.ToString()); | ||
109 | LLUUID userID = new LLUUID(rawUserID); | 109 | LLUUID userID = new LLUUID(rawUserID); |
110 | 110 | ||
111 | MainLog.Instance.Verbose("INVENTORY", "Request for inventory for " + userID.ToStringHyphenated()); | ||
112 | |||
111 | InventoryCollection invCollection = new InventoryCollection(); | 113 | InventoryCollection invCollection = new InventoryCollection(); |
112 | List<InventoryFolderBase> folders; | 114 | List<InventoryFolderBase> folders; |
113 | List<InventoryItemBase> allItems; | 115 | List<InventoryItemBase> allItems; |
@@ -124,7 +126,9 @@ namespace OpenSim.Grid.InventoryServer | |||
124 | { | 126 | { |
125 | LLUUID userID = new LLUUID(rawUserID); | 127 | LLUUID userID = new LLUUID(rawUserID); |
126 | 128 | ||
127 | Console.WriteLine("Creating New Set of Inventory Folders for " + userID.ToStringHyphenated()); | 129 | MainLog.Instance.Verbose( |
130 | "INVENTORY", "Creating new set of inventory folders for " + userID.ToStringHyphenated()); | ||
131 | |||
128 | CreateNewUserInventory(userID); | 132 | CreateNewUserInventory(userID); |
129 | return true; | 133 | return true; |
130 | } | 134 | } |
@@ -145,27 +149,49 @@ namespace OpenSim.Grid.InventoryServer | |||
145 | AddItem(item); | 149 | AddItem(item); |
146 | } | 150 | } |
147 | 151 | ||
148 | public bool AddInventoryFolder( InventoryFolderBase folder) | 152 | public bool AddInventoryFolder(InventoryFolderBase folder) |
149 | { | 153 | { |
154 | // Right now, this actions act more like an update/insert combination than a simple create. | ||
155 | MainLog.Instance.Verbose( | ||
156 | "INVENTORY", | ||
157 | "Updating in " + folder.parentID.ToStringHyphenated() | ||
158 | + ", folder " + folder.name); | ||
159 | |||
150 | AddNewInventoryFolder(folder.agentID, folder); | 160 | AddNewInventoryFolder(folder.agentID, folder); |
151 | return true; | 161 | return true; |
152 | } | 162 | } |
153 | 163 | ||
154 | public bool MoveInventoryFolder(InventoryFolderBase folder) | 164 | public bool MoveInventoryFolder(InventoryFolderBase folder) |
155 | { | 165 | { |
166 | MainLog.Instance.Verbose( | ||
167 | "INVENTORY", | ||
168 | "Moving folder " + folder.folderID | ||
169 | + " to " + folder.parentID.ToStringHyphenated()); | ||
170 | |||
156 | MoveExistingInventoryFolder(folder); | 171 | MoveExistingInventoryFolder(folder); |
157 | return true; | 172 | return true; |
158 | } | 173 | } |
159 | 174 | ||
160 | public bool AddInventoryItem( InventoryItemBase item) | 175 | public bool AddInventoryItem( InventoryItemBase item) |
161 | { | 176 | { |
162 | Console.WriteLine("creating new item for " + item.avatarID.ToString()); | 177 | // Right now, this actions act more like an update/insert combination than a simple create. |
178 | MainLog.Instance.Verbose( | ||
179 | "INVENTORY", | ||
180 | "Updating in " + item.parentFolderID.ToStringHyphenated() | ||
181 | + ", item " + item.inventoryName); | ||
182 | |||
163 | AddNewInventoryItem(item.avatarID, item); | 183 | AddNewInventoryItem(item.avatarID, item); |
164 | return true; | 184 | return true; |
165 | } | 185 | } |
166 | 186 | ||
167 | public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) | 187 | public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) |
168 | { | 188 | { |
189 | // extra spaces to align with other inventory messages | ||
190 | MainLog.Instance.Verbose( | ||
191 | "INVENTORY", | ||
192 | "Deleting in " + item.parentFolderID.ToStringHyphenated() | ||
193 | + ", item " + item.inventoryName); | ||
194 | |||
169 | DeleteItem(item); | 195 | DeleteItem(item); |
170 | } | 196 | } |
171 | 197 | ||
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 02db6d0..ccba1de 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -60,7 +60,7 @@ namespace OpenSim.Grid.UserServer | |||
60 | public override void CustomiseResponse(LoginResponse response, UserProfileData theUser) | 60 | public override void CustomiseResponse(LoginResponse response, UserProfileData theUser) |
61 | { | 61 | { |
62 | bool tryDefault = false; | 62 | bool tryDefault = false; |
63 | System.Console.WriteLine("Load information from the gridserver"); | 63 | MainLog.Instance.Verbose("LOGIN", "Load information from the gridserver"); |
64 | RegionProfileData SimInfo = new RegionProfileData(); | 64 | RegionProfileData SimInfo = new RegionProfileData(); |
65 | try | 65 | try |
66 | { | 66 | { |
@@ -69,7 +69,7 @@ namespace OpenSim.Grid.UserServer | |||
69 | m_config.GridSendKey, m_config.GridRecvKey); | 69 | m_config.GridSendKey, m_config.GridRecvKey); |
70 | 70 | ||
71 | // Customise the response | 71 | // Customise the response |
72 | System.Console.WriteLine("Home Location"); | 72 | MainLog.Instance.Verbose("LOGIN", "Home Location"); |
73 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + | 73 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + |
74 | (SimInfo.regionLocY * 256).ToString() + "], " + | 74 | (SimInfo.regionLocY * 256).ToString() + "], " + |
75 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + | 75 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + |
@@ -128,7 +128,11 @@ namespace OpenSim.Grid.UserServer | |||
128 | // Load information from the gridserver | 128 | // Load information from the gridserver |
129 | 129 | ||
130 | ulong defaultHandle = (((ulong)m_config.DefaultX * 256) << 32) | ((ulong) m_config.DefaultY * 256); | 130 | ulong defaultHandle = (((ulong)m_config.DefaultX * 256) << 32) | ((ulong) m_config.DefaultY * 256); |
131 | MainLog.Instance.Warn("Home region not available: sending to default region " + defaultHandle.ToString()); | 131 | |
132 | MainLog.Instance.Warn( | ||
133 | "LOGIN", | ||
134 | "Home region not available: sending to default region " + defaultHandle.ToString()); | ||
135 | |||
132 | SimInfo = new RegionProfileData(); | 136 | SimInfo = new RegionProfileData(); |
133 | try | 137 | try |
134 | { | 138 | { |
@@ -137,7 +141,7 @@ namespace OpenSim.Grid.UserServer | |||
137 | m_config.GridSendKey, m_config.GridRecvKey); | 141 | m_config.GridSendKey, m_config.GridRecvKey); |
138 | 142 | ||
139 | // Customise the response | 143 | // Customise the response |
140 | System.Console.WriteLine("Home Location"); | 144 | MainLog.Instance.Verbose("LOGIN", "Home Location"); |
141 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + | 145 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + |
142 | (SimInfo.regionLocY * 256).ToString() + "], " + | 146 | (SimInfo.regionLocY * 256).ToString() + "], " + |
143 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + | 147 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + |
@@ -189,7 +193,7 @@ namespace OpenSim.Grid.UserServer | |||
189 | catch (Exception e) | 193 | catch (Exception e) |
190 | { | 194 | { |
191 | MainLog.Instance.Warn("LOGIN", "Default region also not available"); | 195 | MainLog.Instance.Warn("LOGIN", "Default region also not available"); |
192 | MainLog.Instance.Verbose("LOGIN", e.ToString()); | 196 | MainLog.Instance.Warn("LOGIN", e.ToString()); |
193 | } | 197 | } |
194 | 198 | ||
195 | } | 199 | } |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs index 4f5d9ab..709a227 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs | |||
@@ -117,45 +117,26 @@ namespace OpenSim.Region.Communications.OGS1 | |||
117 | 117 | ||
118 | public void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) | 118 | public void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) |
119 | { | 119 | { |
120 | try | 120 | SynchronousRestObjectPoster.BeginPostObject<InventoryFolderBase, bool>( |
121 | { | 121 | "POST", _inventoryServerUrl + "/NewFolder/", folder); |
122 | RestObjectPoster.BeginPostObject<InventoryFolderBase>(_inventoryServerUrl + "/NewFolder/", folder); | ||
123 | } | ||
124 | catch (Exception) | ||
125 | { | ||
126 | } | ||
127 | } | 122 | } |
128 | 123 | ||
129 | public void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder) | 124 | public void MoveInventoryFolder(LLUUID userID, InventoryFolderBase folder) |
130 | { | 125 | { |
131 | try | 126 | SynchronousRestObjectPoster.BeginPostObject<InventoryFolderBase, bool>( |
132 | { | 127 | "POST", _inventoryServerUrl + "/MoveFolder/", folder); |
133 | RestObjectPoster.BeginPostObject<InventoryFolderBase>(_inventoryServerUrl + "/MoveFolder/", folder); | ||
134 | } | ||
135 | catch (Exception) | ||
136 | { | ||
137 | } | ||
138 | } | 128 | } |
129 | |||
139 | public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) | 130 | public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) |
140 | { | 131 | { |
141 | try | 132 | SynchronousRestObjectPoster.BeginPostObject<InventoryItemBase, bool>( |
142 | { | 133 | "POST", _inventoryServerUrl + "/NewItem/", item); |
143 | RestObjectPoster.BeginPostObject<InventoryItemBase>(_inventoryServerUrl + "/NewItem/", item); | ||
144 | } | ||
145 | catch (Exception) | ||
146 | { | ||
147 | } | ||
148 | } | 134 | } |
149 | 135 | ||
150 | public void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) | 136 | public void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) |
151 | { | 137 | { |
152 | try | 138 | SynchronousRestObjectPoster.BeginPostObject<InventoryItemBase, bool>( |
153 | { | 139 | "POST", _inventoryServerUrl + "/DeleteItem/", item); |
154 | RestObjectPoster.BeginPostObject<InventoryItemBase>(_inventoryServerUrl + "/DeleteItem/", item); | ||
155 | } | ||
156 | catch (Exception) | ||
157 | { | ||
158 | } | ||
159 | } | 140 | } |
160 | 141 | ||
161 | public void CreateNewUserInventory(LLUUID user) | 142 | public void CreateNewUserInventory(LLUUID user) |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 710e443..7026fea 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -238,7 +238,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
238 | 238 | ||
239 | public void MoveInventoryItem(IClientAPI remoteClient,LLUUID folderID, LLUUID itemID, int length, string newName) | 239 | public void MoveInventoryItem(IClientAPI remoteClient,LLUUID folderID, LLUUID itemID, int length, string newName) |
240 | { | 240 | { |
241 | MainLog.Instance.Verbose("INVENTORY", "Moving item for " + remoteClient.AgentId.ToStringHyphenated()); | 241 | MainLog.Instance.Verbose( |
242 | "INVENTORY", | ||
243 | "Moving item for " + remoteClient.AgentId.ToStringHyphenated()); | ||
244 | |||
242 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 245 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
243 | if (userInfo == null) | 246 | if (userInfo == null) |
244 | { | 247 | { |