From c6b1aca74fab532a6e8cdb731cae8d9ea9c1b0bc Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 16 Jun 2021 21:35:11 +0300 Subject: [PATCH 1/5] SL-15406 Removed text below initial login screen screenshots --- .../default/xui/en/panel_login_first.xml | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_login_first.xml b/indra/newview/skins/default/xui/en/panel_login_first.xml index 726e713595..5568ccb792 100644 --- a/indra/newview/skins/default/xui/en/panel_login_first.xml +++ b/indra/newview/skins/default/xui/en/panel_login_first.xml @@ -234,32 +234,6 @@ left_pad="32" name="image_right" top="0" /> - - Your first step is Learning Island. Find the exit portal! - - - Then explore Social Island and meet other new residents! - Date: Wed, 23 Jun 2021 18:32:57 +0300 Subject: [PATCH 2/5] SL-15292 waitForChannel crash #2 --- indra/newview/llvoicevivox.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 8dd061728f..c383750f60 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -1583,6 +1583,12 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession) { result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, SESSION_JOIN_TIMEOUT, timeoutResult); + if (sShuttingDown) + { + mIsJoiningSession = false; + return false; + } + LL_INFOS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL; if (result.has("session")) { @@ -1821,7 +1827,7 @@ bool LLVivoxVoiceClient::waitForChannel() // the parcel is changed, or we have no pending audio sessions, // so try to request the parcel voice info // if we have the cap, we move to the appropriate state - requestParcelVoiceInfo(); + requestParcelVoiceInfo(); //suspends for http reply } else if (sessionNeedsRelog(mNextAudioSession)) { @@ -1833,7 +1839,7 @@ bool LLVivoxVoiceClient::waitForChannel() { sessionStatePtr_t joinSession = mNextAudioSession; mNextAudioSession.reset(); - if (!runSession(joinSession)) + if (!runSession(joinSession)) //suspends { LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL; break; @@ -1848,7 +1854,7 @@ bool LLVivoxVoiceClient::waitForChannel() } } - if (!mNextAudioSession) + if (!mNextAudioSession && !sShuttingDown) { llcoro::suspendUntilTimeout(1.0); } @@ -1921,7 +1927,12 @@ bool LLVivoxVoiceClient::runSession(const sessionStatePtr_t &session) while (mVoiceEnabled && isGatewayRunning() && !mSessionTerminateRequested && !mTuningMode) { - sendCaptureAndRenderDevices(); + sendCaptureAndRenderDevices(); // suspends + if (mSessionTerminateRequested) + { + break; + } + if (mAudioSession && mAudioSession->mParticipantsChanged) { mAudioSession->mParticipantsChanged = false; From 7cc5b01ded137769cd798229b72013a364264ded Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 23 Jun 2021 19:15:32 +0300 Subject: [PATCH 3/5] SL-15292 waitForChannel crash #3 --- indra/newview/llvoicevivox.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index c383750f60..d63a6fb1da 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -698,7 +698,7 @@ void LLVivoxVoiceClient::voiceControlCoro() gSavedSettings.getControl("VivoxVadNoiseFloor")->getSignal()->connect(boost::bind(&LLVivoxVoiceClient::onVADSettingsChange, this)); gSavedSettings.getControl("VivoxVadSensitivity")->getSignal()->connect(boost::bind(&LLVivoxVoiceClient::onVADSettingsChange, this)); - if (mTuningMode) + if (mTuningMode && !sShuttingDown) { performMicTuning(); } @@ -1272,8 +1272,11 @@ bool LLVivoxVoiceClient::loginToVivox() // tell the user there is a problem LL_WARNS("Voice") << "login " << loginresp << " will retry login in " << timeout << " seconds." << LL_ENDL; - - llcoro::suspendUntilTimeout(timeout); + + if (!sShuttingDown) + { + llcoro::suspendUntilTimeout(timeout); + } } else if (loginresp == "failed") { @@ -2159,7 +2162,7 @@ bool LLVivoxVoiceClient::performMicTuning() mIsInTuningMode = true; llcoro::suspend(); - while (mTuningMode) + while (mTuningMode && !sShuttingDown) { if (mCaptureDeviceDirty || mRenderDeviceDirty) @@ -2195,9 +2198,12 @@ bool LLVivoxVoiceClient::performMicTuning() tuningCaptureStartSendMessage(1); // 1-loop, zero, don't loop //--------------------------------------------------------------------- - llcoro::suspend(); + if (!sShuttingDown) + { + llcoro::suspend(); + } - while (mTuningMode && !mCaptureDeviceDirty && !mRenderDeviceDirty) + while (mTuningMode && !mCaptureDeviceDirty && !mRenderDeviceDirty && !sShuttingDown) { // process mic/speaker volume changes if (mTuningMicVolumeDirty || mTuningSpeakerVolumeDirty) @@ -2237,7 +2243,7 @@ bool LLVivoxVoiceClient::performMicTuning() // transition out of mic tuning tuningCaptureStopSendMessage(); - if (mCaptureDeviceDirty || mRenderDeviceDirty) + if ((mCaptureDeviceDirty || mRenderDeviceDirty) && !sShuttingDown) { llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS); } From 9451b50b2b855d6de6cc7141428575c06f46aeb0 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 23 Jun 2021 19:48:45 +0300 Subject: [PATCH 4/5] SL-15292 waitForChannel crash #4 --- indra/newview/llvoicevivox.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index d63a6fb1da..4d2eac8c09 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -703,7 +703,10 @@ void LLVivoxVoiceClient::voiceControlCoro() performMicTuning(); } - waitForChannel(); // this doesn't normally return unless relog is needed or shutting down + if (!sShuttingDown) + { + waitForChannel(); // this doesn't normally return unless relog is needed or shutting down + } LL_DEBUGS("Voice") << "lost channel RelogRequested=" << mRelogRequested << LL_ENDL; endAndDisconnectSession(); @@ -1045,7 +1048,14 @@ bool LLVivoxVoiceClient::provisionVoiceAccount() { F32 timeout = pow(PROVISION_RETRY_TIMEOUT, static_cast(retryCount)); LL_WARNS("Voice") << "Provision CAP 404. Retrying in " << timeout << " seconds." << LL_ENDL; - llcoro::suspendUntilTimeout(timeout); + if (sShuttingDown) + { + return false; + } + else + { + llcoro::suspendUntilTimeout(timeout); + } } else if (!status) { @@ -1275,6 +1285,8 @@ bool LLVivoxVoiceClient::loginToVivox() if (!sShuttingDown) { + // Todo: this is way to long, viewer can get stuck waiting during shutdown + // either make it listen to pump or split in smaller waits with checks for shutdown llcoro::suspendUntilTimeout(timeout); } } From abf8c4b364bca97d4295797a14f459d85bef1714 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 24 Jun 2021 18:37:22 +0300 Subject: [PATCH 5/5] SL-10297 windows local build fix win_crash_logger will be fully removed in D520, for now just fixing local relwithdebinfo build --- indra/cmake/bugsplat.cmake | 7 ++++++- indra/newview/viewer_manifest.py | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index 5f5cc51f63..4edc4c59cd 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -1,5 +1,10 @@ if (INSTALL_PROPRIETARY) - set(USE_BUGSPLAT ON CACHE BOOL "Use the BugSplat crash reporting system") + # Note that viewer_manifest.py makes decision based on BUGSPLAT_DB and not USE_BUGSPLAT + if (BUGSPLAT_DB) + set(USE_BUGSPLAT ON CACHE BOOL "Use the BugSplat crash reporting system") + else (BUGSPLAT_DB) + set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system") + endif (BUGSPLAT_DB) else (INSTALL_PROPRIETARY) set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system") endif (INSTALL_PROPRIETARY) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9f9821b4be..6194328759 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -683,12 +683,6 @@ class WindowsManifest(ViewerManifest): self.path("libvlccore.dll") self.path("plugins/") - if not self.args.get('bugsplat'): # don't include the win_crash_logger if we are using BugSplat - # pull in the crash logger from other projects - # tag:"crash-logger" here as a cue to the exporter - self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'], - dst="win_crash_logger.exe") - if not self.is_packaging_viewer(): self.package_file = "copied_deps"