From ee88ebf9e924882d0ac5baf0908fc9d6f437cfa2 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Mon, 13 Apr 2020 16:48:25 +0300
Subject: [PATCH] SL-13029 Fixed load order

---
 indra/newview/llenvironment.cpp | 2 --
 indra/newview/llstartup.cpp     | 6 +++++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp
index 7cd9503e4d9..0e1c4f94346 100644
--- a/indra/newview/llenvironment.cpp
+++ b/indra/newview/llenvironment.cpp
@@ -851,8 +851,6 @@ void LLEnvironment::initSingleton()
     }
 
     LLEventPumps::instance().obtain(PUMP_EXPERIENCE).listen(LISTENER_NAME, [this](LLSD message) { listenExperiencePump(message); return false; });
-
-    loadFromSettings();
 }
 
 void LLEnvironment::cleanupSingleton()
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 8093a3a589e..a1d1e85492b 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1878,7 +1878,11 @@ bool idle_startup()
 		}
 
 		display_startup();
-        
+
+        // Load stored local environment if needed. Only should be done once at least
+        // initial region data got loaded to avoid race condition with region's environment
+        LLEnvironment::instance().loadFromSettings();
+
         // *TODO : Uncomment that line once the whole grid migrated to SLM and suppress it from LLAgent::handleTeleportFinished() (llagent.cpp)
         //check_merchant_status();
 
-- 
GitLab