From 58485a6dc766df64df9594e4188816af5a23d91d Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 16 Oct 2024 21:35:23 +0100 Subject: [PATCH 1/5] Specify build - enabled by default. --- indra/newview/app_settings/settings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f70fab11c0..979e53994a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1048,7 +1048,7 @@ Type Boolean Value - 0 + 1 FSSupportGroupChatPrefixTesting @@ -1059,7 +1059,7 @@ Type Boolean Value - 0 + 1 AutoCloseOOC From 83727b6caaf2afe66c66603f54bb4d33c4eb167f Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 16 Oct 2024 21:38:36 +0100 Subject: [PATCH 2/5] FIRE-34590 - Bugsplat due to rendering before world loaded. --- indra/newview/llappviewer.cpp | 1 + indra/newview/lldrawpoolwater.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9737f85aa4..92cac7a053 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1791,6 +1791,7 @@ bool LLAppViewer::doFrame() display(); + if (LLStartUp::getStartupState() > STATE_AGENT_WAIT) // FIRE-34590 - Bugsplat caused by updating maps before world is loaded. { LLPerfStats::RecordSceneTime T(LLPerfStats::StatType_t::RENDER_IDLE); LL_PROFILE_ZONE_NAMED_CATEGORY_APP("df Snapshot"); diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index 11e25e91b7..37de069fb6 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -152,6 +152,12 @@ void LLDrawPoolWater::renderPostDeferred(S32 pass) LLEnvironment& environment = LLEnvironment::instance(); LLSettingsWater::ptr_t pwater = environment.getCurrentWater(); LLSettingsSky::ptr_t psky = environment.getCurrentSky(); + // FIRE-34590 - Bugsplat Crash typically in startup state, due to null water. + if (!pwater || !psky) + { + LL_WARNS() << "LLDrawPoolWater::renderPostDeferred: water or sky settings not available" << LL_ENDL; + } + // LLVector3 light_dir = environment.getLightDirection(); bool sun_up = environment.getIsSunUp(); bool moon_up = environment.getIsMoonUp(); From 5ddb9e3d49e18ee18797573c9d91be98aa8c9114 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 16 Oct 2024 22:57:12 +0100 Subject: [PATCH 3/5] FIRE-34672 OPENSIM crash in surface patch gen Tangents for empty patch --- indra/newview/llvosurfacepatch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp index 87d5e202dd..226ecb027e 100644 --- a/indra/newview/llvosurfacepatch.cpp +++ b/indra/newview/llvosurfacepatch.cpp @@ -1057,7 +1057,7 @@ void LLTerrainPartition::getGeometry(LLSpatialGroup* group) } const bool has_tangents = tangents_start.get() != nullptr; - if (has_tangents) + if (has_tangents && index_offset > 0) // FIRE-34672 OPENSIM bugsplat crash { LLStrider vertices = vertices_start; LLStrider normals = normals_start; From 92e25ef738ba776d4fe1933633107ed518afe2e9 Mon Sep 17 00:00:00 2001 From: Brad Linden <46733234+brad-linden@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:20:25 -0700 Subject: [PATCH 4/5] Attempt to get better file/line info for LL_ERRS crashes in bugsplat. (#2447) secondlife/viewer#2445 --- indra/llcommon/llerror.cpp | 16 ---------------- indra/llcommon/llerror.h | 11 +++++------ 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index e04f7e53a9..f4bd6cc293 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -1659,19 +1659,3 @@ namespace LLError sLocalizedOutOfMemoryWarning = message; } } - -void crashdriver(void (*callback)(int*)) -{ - // The LLERROR_CRASH macro used to have inline code of the form: - //int* make_me_crash = NULL; - //*make_me_crash = 0; - - // But compilers are getting smart enough to recognize that, so we must - // assign to an address supplied by a separate source file. We could do - // the assignment here in crashdriver() -- but then BugSplat would group - // all LL_ERRS() crashes as the fault of this one function, instead of - // identifying the specific LL_ERRS() source line. So instead, do the - // assignment in a lambda in the caller's source. We just provide the - // nullptr target. - callback(nullptr); -} diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index e92a607076..db0d0f2f4c 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -420,9 +420,11 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG; #define LL_NEWLINE '\n' // Use this only in LL_ERRS or in a place that LL_ERRS may not be used -#define LLERROR_CRASH \ -{ \ - crashdriver([](int* ptr){ *ptr = 0; exit(*ptr); }); \ +#define LLERROR_CRASH \ +{ \ + int* make_me_crash = (int*)0xDEADBEEFDEADBEEFUL; \ + *make_me_crash = 0; \ + exit(*make_me_crash); \ } #define LL_ENDL \ @@ -524,7 +526,4 @@ LL_DEBUGS("SomeTag") performs the locking and map-searching ONCE, then caches the result in a static variable. */ -// used by LLERROR_CRASH -void crashdriver(void (*)(int*)); - #endif // LL_LLERROR_H From 7b9199f7d02499be2cce7a52a83500d5a00b5bcc Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 17 Oct 2024 01:38:00 +0100 Subject: [PATCH 5/5] Updated Havok for the LL_ERRS fix. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index e497b52f32..a03c186539 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1817,9 +1817,9 @@ archive hash - 26b0386266b7bdbf7907fa4ee8cb7b27 + 9f70048bed4c3fc487bee9e9f4276037 url - file:///opt/firestorm/llphysicsextensions_tpv-1.0.10206976532-darwin64-10206976532.tar.bz2 + file:///opt/firestorm/llphysicsextensions_tpv-1.0.11371371972-darwin64-11371371972.tar.bz2 name darwin64 @@ -1841,9 +1841,9 @@ archive hash - bd24b6c7c62922b06340ec73bd147483 + 31daa8f133168cc9ab500aa3a235b63c url - file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.10206976532-windows64-10206976532.tar.bz2 + file:///c:/cygwin/opt/firestorm/llphysicsextensions_tpv-1.0.11371371972-windows64-11371371972.tar.bz2 name windows