From 9fbcaa5b9a6b3bfe762f5bb34951fbf7f99ecc1b Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Mon, 29 Feb 2016 12:58:50 -0800 Subject: MAINT-5693: Request server bake even if we think we are about to request a stale version. The receiver should know if it will throw out the results. Added some additional logging to help track what's going on. --- indra/newview/llappearancemgr.cpp | 87 ++++++++++++++++++++------------------- indra/newview/llvoavatar.cpp | 1 + 2 files changed, 46 insertions(+), 42 deletions(-) (limited to 'indra') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index ec0b7c9a8e..963317affd 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3371,6 +3371,32 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro() { BoolSetter inFlight(mIsServerBakeOutstanding); + if (!gAgent.getRegion()) + { + LL_WARNS("Avatar") << "Region not set, cannot request server appearance update" << LL_ENDL; + return; + } + if (gAgent.getRegion()->getCentralBakeVersion() == 0) + { + LL_WARNS("Avatar") << "Region does not support baking" << LL_ENDL; + return; + } + + std::string url = gAgent.getRegion()->getCapability("UpdateAvatarAppearance"); + if (url.empty()) + { + LL_WARNS("Agent") << "Could not retrieve region capability \"UpdateAvatarAppearance\"" << LL_ENDL; + return; + } + + //---------------- + if (gAgentAvatarp->isEditingAppearance()) + { + LL_WARNS("Avatar") << "Avatar editing appearance, not sending request." << LL_ENDL; + // don't send out appearance updates if in appearance editing mode + return; + } + do { #if 0 @@ -3379,54 +3405,31 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro() LL_WARNS("Avatar") << "START: Server Bake request #" << r_count << "!" << LL_ENDL; #endif - // If we have already received an update for this or higher cof version, ignore. + // If we have already received an update for this or higher cof version, + // put a warning in the log but request anyway. S32 cofVersion = getCOFVersion(); S32 lastRcv = gAgentAvatarp->mLastUpdateReceivedCOFVersion; S32 lastReq = gAgentAvatarp->mLastUpdateRequestCOFVersion; mNewServerBakeRequested = false; - //---------------- - // move out of coroutine - if (!gAgent.getRegion()) - { - LL_WARNS("Avatar") << "Region not set, cannot request server appearance update" << LL_ENDL; - return; - } - if (gAgent.getRegion()->getCentralBakeVersion() == 0) - { - LL_WARNS("Avatar") << "Region does not support baking" << LL_ENDL; - } - std::string url = gAgent.getRegion()->getCapability("UpdateAvatarAppearance"); - if (url.empty()) - { - LL_WARNS("Agent") << "Could not retrieve region capability \"UpdateAvatarAppearance\"" << LL_ENDL; - } - - //---------------- - if (gAgentAvatarp->isEditingAppearance()) - { - LL_WARNS("Avatar") << "Avatar editing appearance, not sending request." << LL_ENDL; - // don't send out appearance updates if in appearance editing mode - return; - } + LL_INFOS("Avatar") << "Requesting COF version " << cofVersion << + " (Last Received:" << lastRcv << ")" << + " (Last Requested:" << lastReq << ")" << LL_ENDL; - LL_DEBUGS("Avatar") << "COF version=" << cofVersion << - " last_rcv=" << lastRcv << - " last_req=" << lastReq << LL_ENDL; - - if (cofVersion < lastRcv) - { - LL_WARNS("Avatar") << "Have already received update for cof version " << lastRcv - << " will not request for " << cofVersion << LL_ENDL; - return; - } - if (lastReq >= cofVersion) - { - LL_WARNS("Avatar") << "Request already in flight for cof version " << lastReq - << " will not request for " << cofVersion << LL_ENDL; - return; - } + if ((cofVersion != LLViewerInventoryCategory::VERSION_UNKNOWN)) + { + if (cofVersion < lastRcv) + { + LL_WARNS("Avatar") << "Have already received update for cof version " << lastRcv + << " but re-requesting for " << cofVersion << LL_ENDL; + } + if (lastReq >= cofVersion) + { + LL_WARNS("Avatar") << "Request already in flight for cof version " << lastReq + << " re-requesting for " << cofVersion << LL_ENDL; + } + } // Actually send the request. LL_DEBUGS("Avatar") << "Will send request for cof_version " << cofVersion << LL_ENDL; @@ -3496,7 +3499,7 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro() #endif // if someone requested a server bake before the previous one was finished - // repeate the process. + // repeat the process. if (mNewServerBakeRequested) { LL_WARNS("Avatar") << "New bake request received while processing previous one. Re-requesting." << LL_ENDL; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 0f5add3891..17722e31ca 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7432,6 +7432,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) } // No backsies zone - if we get here, the message should be valid and usable, will be processed. + LL_INFOS("Avatar") << "Processing appearance message version " << this_update_cof_version << LL_ENDL; // Note: // RequestAgentUpdateAppearanceResponder::onRequestRequested() -- cgit v1.2.3