From 118e82e4775c88ace273d6012b5def8b9f19d08f Mon Sep 17 00:00:00 2001
From: Rider Linden <rider@lindenlab.com>
Date: Wed, 13 Apr 2016 22:40:49 +0100
Subject: [PATCH] MAINT-6305: Serialize the AIS calls by reducing the queue
 size to 1, move the bake request out of the AIS queue.

---
 indra/llmessage/llcoproceduremanager.cpp |  3 ++-
 indra/newview/app_settings/settings.xml  |  2 +-
 indra/newview/llappearancemgr.cpp        | 14 ++++++++++++++
 indra/newview/llappearancemgr.h          |  5 +++++
 indra/newview/llvoavatar.cpp             |  2 +-
 5 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index f0fe1ab01b1..d4c0788b7d5 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -36,7 +36,8 @@
 static std::map<std::string, U32> DefaultPoolSizes = 
     boost::assign::map_list_of
         (std::string("Upload"),  1)
-        (std::string("AIS"),    25);
+        (std::string("AIS"),     1);    
+        // *TODO: Rider for the moment keep AIS calls serialized otherwise the COF will tend to get out of sync.
 
 #define DEFAULT_POOL_SIZE 5
 
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index c4a8fe35324..07569aaaac6 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -14446,7 +14446,7 @@
         <key>Type</key>
             <string>U32</string>
         <key>Value</key>
-            <integer>25</integer>
+            <integer>1</integer>
         </map>
     <key>PoolSizeUpload</key>
         <map>
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index df56d7403cb..be538b3c4cb 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -3359,9 +3359,14 @@ void LLAppearanceMgr::requestServerAppearanceUpdate()
 {
     if (!mOutstandingAppearanceBakeRequest)
     {
+#ifdef APPEARANCEBAKE_AS_IN_AIS_QUEUE
         mRerequestAppearanceBake = false;
         LLCoprocedureManager::CoProcedure_t proc = boost::bind(&LLAppearanceMgr::serverAppearanceUpdateCoro, this, _1);
         LLCoprocedureManager::instance().enqueueCoprocedure("AIS", "LLAppearanceMgr::serverAppearanceUpdateCoro", proc);
+#else
+        LLCoros::instance().launch("", boost::bind(&LLAppearanceMgr::serverAppearanceUpdateCoro, this));
+
+#endif
     }
     else
     {
@@ -3369,8 +3374,17 @@ void LLAppearanceMgr::requestServerAppearanceUpdate()
     }
 }
 
+#ifdef APPEARANCEBAKE_AS_IN_AIS_QUEUE
 void LLAppearanceMgr::serverAppearanceUpdateCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &httpAdapter)
+#else
+void LLAppearanceMgr::serverAppearanceUpdateCoro()
+#endif
 {
+#ifndef APPEARANCEBAKE_AS_IN_AIS_QUEUE
+    LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t httpAdapter(
+        new LLCoreHttpUtil::HttpCoroutineAdapter("serverAppearanceUpdateCoro", LLCore::HttpRequest::DEFAULT_POLICY_ID));
+#endif
+
     mRerequestAppearanceBake = false;
     if (!gAgent.getRegion())
     {
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 74024abf678..bf181cb4add 100755
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -228,7 +228,12 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
 
 
 private:
+#ifdef APPEARANCEBAKE_AS_IN_AIS_QUEUE
     void serverAppearanceUpdateCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &httpAdapter);
+#else
+    void serverAppearanceUpdateCoro();
+#endif
+
     static void debugAppearanceUpdateCOF(const LLSD& content);
 
 	std::string		mAppearanceServiceURL;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index f11e69bae6b..21c38e9bc1e 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -7396,7 +7396,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
 
 	if( isSelf() )
 	{
-		LL_WARNS("Avatar") << "this_update_cof_version " << this_update_cof_version
+		LL_DEBUGS("Avatar") << "this_update_cof_version " << this_update_cof_version
 				<< " last_update_request_cof_version " << last_update_request_cof_version
 				<<  " my_cof_version " << LLAppearanceMgr::instance().getCOFVersion() << LL_ENDL;
 
-- 
GitLab