From 0e62a92a7d5c0fb19dd24e9c75759c113932b542 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 23 Jul 2020 16:39:17 +0100 Subject: no-op change to force new DRTVWR-476 build --- indra/edit-me-to-trigger-new-build.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt index fd40910d9e..3f2ff2d6cc 100644 --- a/indra/edit-me-to-trigger-new-build.txt +++ b/indra/edit-me-to-trigger-new-build.txt @@ -2,3 +2,4 @@ + -- cgit v1.2.3 From b107e9218a07f8b17b12d59cfde6398a638a9165 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 24 Jul 2020 21:46:49 +0100 Subject: no-op change to trigger rebuild --- indra/edit-me-to-trigger-new-build.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt index 3f2ff2d6cc..e69de29bb2 100644 --- a/indra/edit-me-to-trigger-new-build.txt +++ b/indra/edit-me-to-trigger-new-build.txt @@ -1,5 +0,0 @@ - - - - - -- cgit v1.2.3 From cca777fdf51c0737a6c597a48c71c674f73ed7c7 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 24 Jul 2020 23:40:00 +0300 Subject: SL-13679 Event pump DupListenerName crash at login --- indra/llmessage/llcoproceduremanager.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp index a7bd836c4d..42c19e3b1c 100644 --- a/indra/llmessage/llcoproceduremanager.cpp +++ b/indra/llmessage/llcoproceduremanager.cpp @@ -280,11 +280,14 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size): mHTTPPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID), mCoroMapping() { - // store in our LLTempBoundListener so that when the LLCoprocedurePool is - // destroyed, we implicitly disconnect from this LLEventPump - mStatusListener = LLEventPumps::instance().obtain("LLApp").listen( - poolName, - [pendingCoprocs=mPendingCoprocs, poolName](const LLSD& status) + try + { + // store in our LLTempBoundListener so that when the LLCoprocedurePool is + // destroyed, we implicitly disconnect from this LLEventPump + // Monitores application status + mStatusListener = LLEventPumps::instance().obtain("LLApp").listen( + poolName + "_pool", // Make sure it won't repeat names from lleventcoro + [pendingCoprocs = mPendingCoprocs, poolName](const LLSD& status) { auto& statsd = status["status"]; if (statsd.asString() != "running") @@ -298,6 +301,19 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size): } return false; }); + } + catch (const LLEventPump::DupListenerName &) + { + // This shounldn't be possible since LLCoprocedurePool is supposed to have unique names, + // yet it somehow did happen, as result pools got '_pool' suffix and this catch. + // + // If this somehow happens again it is better to crash later on shutdown due to pump + // not stopping coroutine and see warning in logs than on startup or during login. + LL_WARNS("CoProcMgr") << "Attempted to register dupplicate listener name: " << poolName + << "_pool. Failed to start listener." << LL_ENDL; + + llassert(0); // Fix Me! Ignoring missing listener! + } for (size_t count = 0; count < mPoolSize; ++count) { -- cgit v1.2.3 From 77f5a06a1e45f2aeb2f511675bcab7422b6f330d Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Mon, 27 Jul 2020 20:33:52 +0300 Subject: SL-13688 Reverted viewer-manager to pre-tools build --- autobuild.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 738c77b30b..283eeabbeb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3204,9 +3204,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - d15ad6b86c0e1ef4a1fc46478da65929 + c5ab9d9d7482e48cd76f4bf391900a8c url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54837/510043/viewer_manager-2.0.538967-darwin64-538967.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/43369/385585/viewer_manager-2.0.531000-darwin64-531000.tar.bz2 name darwin64 @@ -3228,9 +3228,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 856d1e4b60ef57135ecd99cd608e76bd + 6b10d7407686d9e12e63576256581e3e url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54960/511732/viewer_manager-2.0.538967-windows-538967.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/43370/385592/viewer_manager-2.0.531000-windows-531000.tar.bz2 name windows @@ -3241,7 +3241,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors source_type hg version - 2.0.538967 + 2.0.531000 vlc-bin -- cgit v1.2.3 From 6bafe47e5cd6694c092dfc7cafc97c83046ebd55 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 30 Jul 2020 14:34:58 +0300 Subject: Revert part of SL-11216 due to reverting VVM This reverts commit 31d9930a0ff7da5a6312a8f47037052cd2d06bdb. --- indra/newview/llstartup.cpp | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 4b65ead236..38ed022c44 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2301,29 +2301,13 @@ void login_callback(S32 option, void *userdata) void show_release_notes_if_required() { static bool release_notes_shown = false; - // We happen to know that instantiating LLVersionInfo implicitly - // instantiates the LLEventMailDrop named "relnotes", which we (might) use - // below. If viewer release notes stop working, might be because that - // LLEventMailDrop got moved out of LLVersionInfo and hasn't yet been - // instantiated. if (!release_notes_shown && (LLVersionInfo::instance().getChannelAndVersion() != gLastRunVersion) && LLVersionInfo::instance().getViewerMaturity() != LLVersionInfo::TEST_VIEWER // don't show Release Notes for the test builds && gSavedSettings.getBOOL("UpdaterShowReleaseNotes") && !gSavedSettings.getBOOL("FirstLoginThisInstall")) { - // Instantiate a "relnotes" listener which assumes any arriving event - // is the release notes URL string. Since "relnotes" is an - // LLEventMailDrop, this listener will be invoked whether or not the - // URL has already been posted. If so, it will fire immediately; - // otherwise it will fire whenever the URL is (later) posted. Either - // way, it will display the release notes as soon as the URL becomes - // available. - LLEventPumps::instance().obtain("relnotes").listen( - "showrelnotes", - [](const LLSD& url){ - LLWeb::loadURLInternal(url.asString()); - return false; - }); + LLSD info(LLAppViewer::instance()->getViewerInfo()); + LLWeb::loadURLInternal(info["VIEWER_RELEASE_NOTES_URL"]); release_notes_shown = true; } } -- cgit v1.2.3 From 8103d13047da4d196c7542843807a25098f1ecda Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 30 Jul 2020 12:38:00 +0300 Subject: SL-13704 Release notes link not loading in ToolsUpdate2 release --- indra/newview/llappviewer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c1fd09a17b..9401481e8c 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3098,8 +3098,15 @@ LLSD LLAppViewer::getViewerInfo() const // return a URL to the release notes for this viewer, such as: // https://releasenotes.secondlife.com/viewer/2.1.0.123456.html - std::string url = versionInfo.getReleaseNotes(); - info["VIEWER_RELEASE_NOTES_URL"] = url.empty()? LLTrans::getString("RetrievingData") : url; + std::string url = versionInfo.getReleaseNotes(); // VVM supplied + if (url.empty()) + { + url = LLTrans::getString("RELEASE_NOTES_BASE_URL"); + if (!LLStringUtil::endsWith(url, "/")) + url += "/"; + url += LLURI::escape(versionInfo.getVersion()) + ".html"; + } + info["VIEWER_RELEASE_NOTES_URL"] = url; // Position LLViewerRegion* region = gAgent.getRegion(); -- cgit v1.2.3 From 135a85ec62d1bf437ec2d6f485e33e9ceb0c71ab Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 30 Jul 2020 21:07:35 +0300 Subject: SL-13626 Fix asset storage coroutine shutdown --- indra/newview/llviewerassetstorage.cpp | 13 ++++++++++++- indra/newview/llviewerassetstorage.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index e0b64403ef..22269a9208 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -49,6 +49,8 @@ /// LLViewerAssetRequest ///---------------------------------------------------------------------------- +static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage"; + /** * @brief Local class to encapsulate asset fetch requests with a timestamp. * @@ -127,6 +129,15 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager * { } +LLViewerAssetStorage::~LLViewerAssetStorage() +{ + if (!LLCoprocedureManager::wasDeleted()) + { + // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. + LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL); + } +} + // virtual void LLViewerAssetStorage::storeAssetData( const LLTransactionID& tid, @@ -399,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp( bool is_temp = false; LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); - LLCoprocedureManager::instance().enqueueCoprocedure("AssetStorage","LLViewerAssetStorage::assetRequestCoro", + LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data)); } } diff --git a/indra/newview/llviewerassetstorage.h b/indra/newview/llviewerassetstorage.h index cefe215431..ef01d179b7 100644 --- a/indra/newview/llviewerassetstorage.h +++ b/indra/newview/llviewerassetstorage.h @@ -43,6 +43,8 @@ public: LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *xfer, LLVFS *vfs, LLVFS *static_vfs); + ~LLViewerAssetStorage(); + virtual void storeAssetData( const LLTransactionID& tid, LLAssetType::EType atype, -- cgit v1.2.3 From e8422ec9d74e06ca7d2405a89d0e50adab1a36b0 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 31 Jul 2020 00:14:14 +0300 Subject: SL-13626 Fixed spelling error --- indra/newview/llviewerassetstorage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index 22269a9208..b295fa2977 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -49,7 +49,7 @@ /// LLViewerAssetRequest ///---------------------------------------------------------------------------- -static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage"; +static const std::string VIEWER_ASSET_STORAGE_CORO_POOL = "VAssetStorage"; /** * @brief Local class to encapsulate asset fetch requests with a timestamp. @@ -134,7 +134,7 @@ LLViewerAssetStorage::~LLViewerAssetStorage() if (!LLCoprocedureManager::wasDeleted()) { // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. - LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL); + LLCoprocedureManager::instance().close(VIEWER_ASSET_STORAGE_CORO_POOL); } } @@ -410,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp( bool is_temp = false; LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); - LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", + LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STORAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data)); } } -- cgit v1.2.3 From 89cde15fb8c52071805af78e61848e743f2ab2f1 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 10 Aug 2020 16:51:50 -0400 Subject: Increment viewer version to 6.4.7 following promotion of DRTVWR-476 --- indra/newview/VIEWER_VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index 3d05e8cfb4..3c43d71599 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -6.4.6 +6.4.7 -- cgit v1.2.3