From 89a3b6f55624e1bd79ad9c889e6bf3087f2f7031 Mon Sep 17 00:00:00 2001 From: Ross Barnes-Brown <128988672+Quinn-Elara@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:43:50 +0100 Subject: [PATCH 1/2] Fix CTD on teleport Fix a CTD encountered upon teleport. --- indra/newview/llviewerregion.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 7de74ab19f..98c6da667c 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -390,17 +390,27 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle) LL_DEBUGS("AppInit", "Capabilities", "Teleport") << "received caps for handle " << regionHandle << " region name " << regionp->getName() << LL_ENDL; - regionp->setCapabilitiesReceived(true); + // setCapabilitiesReceived moved to postToMainCoro below break; } while (true); - if (regionp && regionp->isCapabilityAvailable("ServerReleaseNotes") && - regionp->getReleaseNotesRequested()) - { // *HACK: we're waiting for the ServerReleaseNotes - regionp->showReleaseNotes(); - } + LLAppViewer::instance()->postToMainCoro( + [regionHandle]() + { + LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle); + if (!regionp) + { + return; + } + regionp->setCapabilitiesReceived(true); + if (regionp->isCapabilityAvailable("ServerReleaseNotes") && + regionp->getReleaseNotesRequested()) + { // *HACK: we're waiting for the ServerReleaseNotes + regionp->showReleaseNotes(); + } + }); } From c828a5664b201d8687e58211b86c033c2f8bab58 Mon Sep 17 00:00:00 2001 From: Ross Barnes-Brown <128988672+Quinn-Elara@users.noreply.github.com> Date: Thu, 9 Jul 2026 00:33:35 +0100 Subject: [PATCH 2/2] Address review comments --- indra/newview/llviewerregion.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 98c6da667c..8735be9c06 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -397,20 +397,24 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle) while (true); LLAppViewer::instance()->postToMainCoro( - [regionHandle]() + [regionHandle]() + { + if (!LLWorld::instanceExists()) { - LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle); - if (!regionp) - { - return; - } - regionp->setCapabilitiesReceived(true); - if (regionp->isCapabilityAvailable("ServerReleaseNotes") && - regionp->getReleaseNotesRequested()) - { // *HACK: we're waiting for the ServerReleaseNotes - regionp->showReleaseNotes(); - } - }); + return; + } + LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle); + if (!regionp) + { + return; + } + regionp->setCapabilitiesReceived(true); + if (regionp->isCapabilityAvailable("ServerReleaseNotes") && + regionp->getReleaseNotesRequested()) + { // *HACK: we're waiting for the ServerReleaseNotes + regionp->showReleaseNotes(); + } + }); }