diff options
Diffstat (limited to '')
12 files changed, 103 insertions, 87 deletions
diff --git a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs index a41f9f8..0780936 100644 --- a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs +++ b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs | |||
@@ -55,42 +55,40 @@ namespace OpenSim.Data.MySQL | |||
55 | AuthenticationData ret = new AuthenticationData(); | 55 | AuthenticationData ret = new AuthenticationData(); |
56 | ret.Data = new Dictionary<string, object>(); | 56 | ret.Data = new Dictionary<string, object>(); |
57 | 57 | ||
58 | using (MySqlCommand cmd = new MySqlCommand("select * from `" + m_Realm + "` where UUID = ?principalID")) | 58 | MySqlCommand cmd = new MySqlCommand("select * from `" + m_Realm + "` where UUID = ?principalID"); |
59 | |||
60 | cmd.Parameters.AddWithValue("?principalID", principalID.ToString()); | ||
61 | |||
62 | IDataReader result = ExecuteReader(cmd); | ||
63 | |||
64 | if (result.Read()) | ||
59 | { | 65 | { |
60 | cmd.Parameters.AddWithValue("?principalID", principalID.ToString()); | 66 | ret.PrincipalID = principalID; |
67 | |||
68 | if (m_ColumnNames == null) | ||
69 | { | ||
70 | m_ColumnNames = new List<string>(); | ||
61 | 71 | ||
62 | using (IDataReader result = ExecuteReader(cmd)) | 72 | DataTable schemaTable = result.GetSchemaTable(); |
73 | foreach (DataRow row in schemaTable.Rows) | ||
74 | m_ColumnNames.Add(row["ColumnName"].ToString()); | ||
75 | } | ||
76 | |||
77 | foreach (string s in m_ColumnNames) | ||
63 | { | 78 | { |
64 | if (result.Read()) | 79 | if (s == "UUID") |
65 | { | 80 | continue; |
66 | ret.PrincipalID = principalID; | 81 | |
67 | 82 | ret.Data[s] = result[s].ToString(); | |
68 | if (m_ColumnNames == null) | ||
69 | { | ||
70 | m_ColumnNames = new List<string>(); | ||
71 | |||
72 | DataTable schemaTable = result.GetSchemaTable(); | ||
73 | foreach (DataRow row in schemaTable.Rows) | ||
74 | m_ColumnNames.Add(row["ColumnName"].ToString()); | ||
75 | } | ||
76 | |||
77 | foreach (string s in m_ColumnNames) | ||
78 | { | ||
79 | if (s == "UUID") | ||
80 | continue; | ||
81 | |||
82 | ret.Data[s] = result[s].ToString(); | ||
83 | } | ||
84 | |||
85 | CloseDBConnection(cmd); | ||
86 | return ret; | ||
87 | } | ||
88 | else | ||
89 | { | ||
90 | CloseDBConnection(cmd); | ||
91 | return null; | ||
92 | } | ||
93 | } | 83 | } |
84 | |||
85 | CloseDBConnection(result, cmd); | ||
86 | return ret; | ||
87 | } | ||
88 | else | ||
89 | { | ||
90 | CloseDBConnection(result, cmd); | ||
91 | return null; | ||
94 | } | 92 | } |
95 | } | 93 | } |
96 | 94 | ||
diff --git a/OpenSim/Data/MySQL/MySQLFramework.cs b/OpenSim/Data/MySQL/MySQLFramework.cs index f37e9bc..ccd1ab0 100644 --- a/OpenSim/Data/MySQL/MySQLFramework.cs +++ b/OpenSim/Data/MySQL/MySQLFramework.cs | |||
@@ -40,7 +40,9 @@ namespace OpenSim.Data.MySQL | |||
40 | /// </summary> | 40 | /// </summary> |
41 | public class MySqlFramework | 41 | public class MySqlFramework |
42 | { | 42 | { |
43 | private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | 43 | private static readonly log4net.ILog m_log = |
44 | log4net.LogManager.GetLogger( | ||
45 | System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | 46 | ||
45 | protected MySqlConnection m_Connection; | 47 | protected MySqlConnection m_Connection; |
46 | 48 | ||
@@ -81,7 +83,8 @@ namespace OpenSim.Data.MySQL | |||
81 | errorSeen = true; | 83 | errorSeen = true; |
82 | 84 | ||
83 | m_Connection.Close(); | 85 | m_Connection.Close(); |
84 | MySqlConnection newConnection = (MySqlConnection)((ICloneable)m_Connection).Clone(); | 86 | MySqlConnection newConnection = |
87 | (MySqlConnection)((ICloneable)m_Connection).Clone(); | ||
85 | m_Connection.Dispose(); | 88 | m_Connection.Dispose(); |
86 | m_Connection = newConnection; | 89 | m_Connection = newConnection; |
87 | m_Connection.Open(); | 90 | m_Connection.Open(); |
@@ -102,15 +105,18 @@ namespace OpenSim.Data.MySQL | |||
102 | 105 | ||
103 | protected IDataReader ExecuteReader(MySqlCommand cmd) | 106 | protected IDataReader ExecuteReader(MySqlCommand cmd) |
104 | { | 107 | { |
105 | MySqlConnection newConnection = (MySqlConnection)((ICloneable)m_Connection).Clone(); | 108 | MySqlConnection newConnection = |
109 | (MySqlConnection)((ICloneable)m_Connection).Clone(); | ||
106 | newConnection.Open(); | 110 | newConnection.Open(); |
107 | 111 | ||
108 | cmd.Connection = newConnection; | 112 | cmd.Connection = newConnection; |
109 | return cmd.ExecuteReader(); | 113 | return cmd.ExecuteReader(); |
110 | } | 114 | } |
111 | 115 | ||
112 | protected void CloseDBConnection(MySqlCommand cmd) | 116 | protected void CloseDBConnection(IDataReader reader, MySqlCommand cmd) |
113 | { | 117 | { |
118 | reader.Close(); | ||
119 | cmd.Connection.Close(); | ||
114 | cmd.Connection.Dispose(); | 120 | cmd.Connection.Dispose(); |
115 | } | 121 | } |
116 | } | 122 | } |
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index 3fe27d5..3b561d1 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs | |||
@@ -173,7 +173,7 @@ namespace OpenSim.Data.MySQL | |||
173 | retList.Add(ret); | 173 | retList.Add(ret); |
174 | } | 174 | } |
175 | 175 | ||
176 | CloseDBConnection(cmd); | 176 | CloseDBConnection(result, cmd); |
177 | } | 177 | } |
178 | 178 | ||
179 | return retList; | 179 | return retList; |
diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs index 38a6f55..0bbc3f5 100644 --- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs +++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs | |||
@@ -64,48 +64,46 @@ namespace OpenSim.Data.MySQL | |||
64 | if (scopeID != UUID.Zero) | 64 | if (scopeID != UUID.Zero) |
65 | command += " and ScopeID = ?scopeID"; | 65 | command += " and ScopeID = ?scopeID"; |
66 | 66 | ||
67 | using (MySqlCommand cmd = new MySqlCommand(command)) | 67 | MySqlCommand cmd = new MySqlCommand(command); |
68 | |||
69 | cmd.Parameters.AddWithValue("?principalID", principalID.ToString()); | ||
70 | cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); | ||
71 | |||
72 | IDataReader result = ExecuteReader(cmd); | ||
73 | |||
74 | if (result.Read()) | ||
68 | { | 75 | { |
69 | cmd.Parameters.AddWithValue("?principalID", principalID.ToString()); | 76 | ret.PrincipalID = principalID; |
70 | cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); | 77 | UUID scope; |
78 | UUID.TryParse(result["ScopeID"].ToString(), out scope); | ||
79 | ret.ScopeID = scope; | ||
71 | 80 | ||
72 | using (IDataReader result = ExecuteReader(cmd)) | 81 | if (m_ColumnNames == null) |
73 | { | 82 | { |
74 | if (result.Read()) | 83 | m_ColumnNames = new List<string>(); |
75 | { | 84 | |
76 | ret.PrincipalID = principalID; | 85 | DataTable schemaTable = result.GetSchemaTable(); |
77 | UUID scope; | 86 | foreach (DataRow row in schemaTable.Rows) |
78 | UUID.TryParse(result["ScopeID"].ToString(), out scope); | 87 | m_ColumnNames.Add(row["ColumnName"].ToString()); |
79 | ret.ScopeID = scope; | ||
80 | |||
81 | if (m_ColumnNames == null) | ||
82 | { | ||
83 | m_ColumnNames = new List<string>(); | ||
84 | |||
85 | DataTable schemaTable = result.GetSchemaTable(); | ||
86 | foreach (DataRow row in schemaTable.Rows) | ||
87 | m_ColumnNames.Add(row["ColumnName"].ToString()); | ||
88 | } | ||
89 | |||
90 | foreach (string s in m_ColumnNames) | ||
91 | { | ||
92 | if (s == "UUID") | ||
93 | continue; | ||
94 | if (s == "ScopeID") | ||
95 | continue; | ||
96 | |||
97 | ret.Data[s] = result[s].ToString(); | ||
98 | } | ||
99 | |||
100 | CloseDBConnection(cmd); | ||
101 | return ret; | ||
102 | } | ||
103 | else | ||
104 | { | ||
105 | CloseDBConnection(cmd); | ||
106 | return null; | ||
107 | } | ||
108 | } | 88 | } |
89 | |||
90 | foreach (string s in m_ColumnNames) | ||
91 | { | ||
92 | if (s == "UUID") | ||
93 | continue; | ||
94 | if (s == "ScopeID") | ||
95 | continue; | ||
96 | |||
97 | ret.Data[s] = result[s].ToString(); | ||
98 | } | ||
99 | |||
100 | CloseDBConnection(result, cmd); | ||
101 | return ret; | ||
102 | } | ||
103 | else | ||
104 | { | ||
105 | CloseDBConnection(result, cmd); | ||
106 | return null; | ||
109 | } | 107 | } |
110 | } | 108 | } |
111 | 109 | ||
diff --git a/OpenSim/Framework/Communications/RestClient.cs b/OpenSim/Framework/Communications/RestClient.cs index 7a73506..d98f47d 100644 --- a/OpenSim/Framework/Communications/RestClient.cs +++ b/OpenSim/Framework/Communications/RestClient.cs | |||
@@ -318,11 +318,11 @@ namespace OpenSim.Framework.Communications | |||
318 | HttpWebResponse errorResponse = e.Response as HttpWebResponse; | 318 | HttpWebResponse errorResponse = e.Response as HttpWebResponse; |
319 | if (null != errorResponse && HttpStatusCode.NotFound == errorResponse.StatusCode) | 319 | if (null != errorResponse && HttpStatusCode.NotFound == errorResponse.StatusCode) |
320 | { | 320 | { |
321 | m_log.Warn("[ASSET] Asset not found (404)"); | 321 | m_log.Warn("[REST CLIENT] Resource not found (404)"); |
322 | } | 322 | } |
323 | else | 323 | else |
324 | { | 324 | { |
325 | m_log.Error("[ASSET] Error fetching asset from asset server"); | 325 | m_log.Error("[REST CLIENT] Error fetching resource from server " + _request.Address.ToString()); |
326 | m_log.Debug(e.ToString()); | 326 | m_log.Debug(e.ToString()); |
327 | } | 327 | } |
328 | 328 | ||
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs index bb9a4b2..879cc70 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Asset/AssetServiceInConnectorModule.cs | |||
@@ -98,7 +98,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Asset | |||
98 | 98 | ||
99 | m_log.Info("[RegionAssetService]: Starting..."); | 99 | m_log.Info("[RegionAssetService]: Starting..."); |
100 | 100 | ||
101 | Object[] args = new Object[] { m_Config, MainServer.Instance }; | 101 | Object[] args = new Object[] { m_Config, MainServer.Instance, string.Empty }; |
102 | 102 | ||
103 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:AssetServiceConnector", args); | 103 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:AssetServiceConnector", args); |
104 | } | 104 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs index c326818..54c6d89 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs | |||
@@ -98,7 +98,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory | |||
98 | 98 | ||
99 | m_log.Info("[RegionInventoryService]: Starting..."); | 99 | m_log.Info("[RegionInventoryService]: Starting..."); |
100 | 100 | ||
101 | Object[] args = new Object[] { m_Config, MainServer.Instance }; | 101 | Object[] args = new Object[] { m_Config, MainServer.Instance, String.Empty }; |
102 | 102 | ||
103 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:InventoryServiceInConnector", args); | 103 | ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:InventoryServiceInConnector", args); |
104 | } | 104 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs index 44e850b..6c89ac8 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs | |||
@@ -61,6 +61,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid | |||
61 | 61 | ||
62 | private void OnRegionUp(GridRegion otherRegion) | 62 | private void OnRegionUp(GridRegion otherRegion) |
63 | { | 63 | { |
64 | // This shouldn't happen | ||
65 | if (otherRegion == null) | ||
66 | return; | ||
67 | |||
64 | m_log.DebugFormat("[REGION CACHE]: (on region {0}) Region {1} is up @ {2}-{3}", | 68 | m_log.DebugFormat("[REGION CACHE]: (on region {0}) Region {1} is up @ {2}-{3}", |
65 | m_scene.RegionInfo.RegionName, otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); | 69 | m_scene.RegionInfo.RegionName, otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); |
66 | 70 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 30c2223..b25be8e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -137,6 +137,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
137 | protected IAssetService m_AssetService = null; | 137 | protected IAssetService m_AssetService = null; |
138 | protected IAuthorizationService m_AuthorizationService = null; | 138 | protected IAuthorizationService m_AuthorizationService = null; |
139 | 139 | ||
140 | private Object m_heartbeatLock = new Object(); | ||
141 | |||
140 | public IAssetService AssetService | 142 | public IAssetService AssetService |
141 | { | 143 | { |
142 | get | 144 | get |
@@ -940,6 +942,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
940 | /// <param name="e"></param> | 942 | /// <param name="e"></param> |
941 | private void Heartbeat(object sender) | 943 | private void Heartbeat(object sender) |
942 | { | 944 | { |
945 | if (!Monitor.TryEnter(m_heartbeatLock)) | ||
946 | return; | ||
947 | |||
943 | try | 948 | try |
944 | { | 949 | { |
945 | Update(); | 950 | Update(); |
@@ -950,6 +955,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
950 | catch (ThreadAbortException) | 955 | catch (ThreadAbortException) |
951 | { | 956 | { |
952 | } | 957 | } |
958 | finally | ||
959 | { | ||
960 | Monitor.Pulse(m_heartbeatLock); | ||
961 | Monitor.Exit(m_heartbeatLock); | ||
962 | } | ||
953 | } | 963 | } |
954 | 964 | ||
955 | /// <summary> | 965 | /// <summary> |
@@ -960,6 +970,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
960 | int maintc = 0; | 970 | int maintc = 0; |
961 | while (!shuttingdown) | 971 | while (!shuttingdown) |
962 | { | 972 | { |
973 | //#if DEBUG | ||
974 | // int w = 0, io = 0; | ||
975 | // ThreadPool.GetAvailableThreads(out w, out io); | ||
976 | // if ((w < 10) || (io < 10)) | ||
977 | // m_log.DebugFormat("[WARNING]: ThreadPool reaching exhaustion. workers = {0}; io = {1}", w, io); | ||
978 | //#endif | ||
963 | maintc = Environment.TickCount; | 979 | maintc = Environment.TickCount; |
964 | 980 | ||
965 | TimeSpan SinceLastFrame = DateTime.Now - m_lastupdate; | 981 | TimeSpan SinceLastFrame = DateTime.Now - m_lastupdate; |
diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs index 9d9735e..0964caa 100644 --- a/OpenSim/Server/Base/ServerUtils.cs +++ b/OpenSim/Server/Base/ServerUtils.cs | |||
@@ -260,7 +260,7 @@ namespace OpenSim.Server.Base | |||
260 | 260 | ||
261 | public static Dictionary<string, object> ParseXmlResponse(string data) | 261 | public static Dictionary<string, object> ParseXmlResponse(string data) |
262 | { | 262 | { |
263 | m_log.DebugFormat("[XXX]: received xml string: {0}", data); | 263 | //m_log.DebugFormat("[XXX]: received xml string: {0}", data); |
264 | 264 | ||
265 | Dictionary<string, object> ret = new Dictionary<string, object>(); | 265 | Dictionary<string, object> ret = new Dictionary<string, object>(); |
266 | 266 | ||
diff --git a/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs b/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs index ca45263..3c92209 100644 --- a/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/InventoryServerInConnector.cs | |||
@@ -77,6 +77,7 @@ namespace OpenSim.Server.Handlers.Inventory | |||
77 | m_doLookup = serverConfig.GetBoolean("SessionAuthentication", false); | 77 | m_doLookup = serverConfig.GetBoolean("SessionAuthentication", false); |
78 | 78 | ||
79 | AddHttpHandlers(server); | 79 | AddHttpHandlers(server); |
80 | m_log.Debug("[INVENTORY HANDLER]: handlers initialized"); | ||
80 | } | 81 | } |
81 | 82 | ||
82 | protected virtual void AddHttpHandlers(IHttpServer m_httpServer) | 83 | protected virtual void AddHttpHandlers(IHttpServer m_httpServer) |
diff --git a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs index 5443891..e047f71 100644 --- a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs | |||
@@ -416,13 +416,6 @@ namespace OpenSim.Services.Connectors | |||
416 | e.Source, e.Message); | 416 | e.Source, e.Message); |
417 | } | 417 | } |
418 | 418 | ||
419 | foreach (InventoryItemBase item in items) | ||
420 | { | ||
421 | InventoryItemBase itm = this.QueryItem(userID, item, sessionID); | ||
422 | itm.Name = item.Name; | ||
423 | itm.Folder = item.Folder; | ||
424 | this.UpdateItem(userID, itm, sessionID); | ||
425 | } | ||
426 | } | 419 | } |
427 | 420 | ||
428 | private void MoveItemsCompleted(IAsyncResult iar) | 421 | private void MoveItemsCompleted(IAsyncResult iar) |