From b4355e456405ee7ac1e20bb6e29f3ad351b708a3 Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Tue, 19 Aug 2008 07:04:47 +0000
Subject: * This reverts a change where m_regions[RegionHandle] was replaced
 instead of removed in LocalBackEndServices   It used to be like the change
 above a long long time ago but we found that it caused intermittent neighbor
 connectivity issues.   I added comments above it so that it's looked at more
 closely next time.

---
 OpenSim/Region/Communications/Local/LocalBackEndServices.cs | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
index 7501967..c0e6722 100644
--- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
@@ -102,8 +102,13 @@ namespace OpenSim.Region.Communications.Local
             else
             {
                 // Already in our list, so the region went dead and restarted.
-                // replace the old regioninfo
-                m_regions[regionInfo.RegionHandle] = regionInfo;
+                // don't replace the old regioninfo..    this might be a locking issue..  however we need to 
+                // remove it and let it add normally below or we get extremely strange and intermittant
+                // connectivity errors.    
+                // Don't change this line below to 'm_regions[regionInfo.RegionHandle] = regionInfo' unless you
+                // *REALLY* know what you are doing here.
+                m_regions.Remove(regionInfo.RegionHandle);
+
                 m_log.Warn("[INTERREGION STANDALONE]: Region registered twice. Region went down and came back up.");
 
                 RegionCommsListener regionHost = new RegionCommsListener();
-- 
cgit v1.1