aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
authorDan Lake2012-07-18 13:07:07 -0700
committerDan Lake2012-07-18 13:07:07 -0700
commitdd85d7d981a93b44c264695020768f8b7399ab31 (patch)
treee5d31df36914e3e330c9b7333d200145a57d2bd8 /OpenSim/Region/Framework/Scenes/Scene.cs
parentMissing parameter in log error message was throwing exception (diff)
parentClose() the ScenePresence after we've removed it from the scene graph, to cut... (diff)
downloadopensim-SC_OLD-dd85d7d981a93b44c264695020768f8b7399ab31.zip
opensim-SC_OLD-dd85d7d981a93b44c264695020768f8b7399ab31.tar.gz
opensim-SC_OLD-dd85d7d981a93b44c264695020768f8b7399ab31.tar.bz2
opensim-SC_OLD-dd85d7d981a93b44c264695020768f8b7399ab31.tar.xz
Merge branch 'master' of git://opensimulator.org/git/opensim
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs26
1 files changed, 16 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 3e9583c..de2b192 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3317,24 +3317,30 @@ namespace OpenSim.Region.Framework.Scenes
3317 if (AgentTransactionsModule != null) 3317 if (AgentTransactionsModule != null)
3318 AgentTransactionsModule.RemoveAgentAssetTransactions(agentID); 3318 AgentTransactionsModule.RemoveAgentAssetTransactions(agentID);
3319 3319
3320 avatar.Close();
3321
3322 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode); 3320 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode);
3323 } 3321 }
3324 catch (Exception e) 3322 catch (Exception e)
3325 { 3323 {
3326 m_log.Error( 3324 m_log.Error(
3327 string.Format("[SCENE]: Exception removing {0} from {1}, ", avatar.Name, RegionInfo.RegionName), e); 3325 string.Format("[SCENE]: Exception removing {0} from {1}. Cleaning up. Exception ", avatar.Name, Name), e);
3328 } 3326 }
3329 finally 3327 finally
3330 { 3328 {
3331 // Always clean these structures up so that any failure above doesn't cause them to remain in the 3329 try
3332 // scene with possibly bad effects (e.g. continually timing out on unacked packets and triggering 3330 {
3333 // the same cleanup exception continually. 3331 // Always clean these structures up so that any failure above doesn't cause them to remain in the
3334 // TODO: This should probably extend to the whole method, but we don't want to also catch the NRE 3332 // scene with possibly bad effects (e.g. continually timing out on unacked packets and triggering
3335 // since this would hide the underlying failure and other associated problems. 3333 // the same cleanup exception continually.
3336 m_sceneGraph.RemoveScenePresence(agentID); 3334 m_sceneGraph.RemoveScenePresence(agentID);
3337 m_clientManager.Remove(agentID); 3335 m_clientManager.Remove(agentID);
3336
3337 avatar.Close();
3338 }
3339 catch (Exception e)
3340 {
3341 m_log.Error(
3342 string.Format("[SCENE]: Exception in final clean up of {0} in {1}. Exception ", avatar.Name, Name), e);
3343 }
3338 } 3344 }
3339 3345
3340 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)); 3346 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false));