summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-04-30 01:39:30 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-05 02:49:24 +0300
commitfd4533261e46c080591b06cec030c464e5fe9a90 (patch)
tree99482bb4e1206b390fa387e2ffe8e372d5065b2c
parent5a1ca24fa9378c57de16b6443e4e9dde7799b6cb (diff)
#5084 Improve watchdog's behavior #2
-rw-r--r--indra/llcommon/llapp.h2
-rw-r--r--indra/llcommon/llwatchdog.cpp9
-rw-r--r--indra/newview/llappviewerwin32.cpp12
-rw-r--r--indra/newview/llappviewerwin32.h2
4 files changed, 14 insertions, 11 deletions
diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h
index fef7dc80b3..3a855bc480 100644
--- a/indra/llcommon/llapp.h
+++ b/indra/llcommon/llapp.h
@@ -285,7 +285,7 @@ public:
#ifdef LL_WINDOWS
virtual bool reportCrashToBugsplat(void* pExcepInfo /*EXCEPTION_POINTERS*/) { return false; }
- virtual bool reportCustomToBugsplat(const std::string& desription) { return false; }
+ virtual bool reportCustomToBugsplat(const std::string& description) { return false; }
#endif
public:
diff --git a/indra/llcommon/llwatchdog.cpp b/indra/llcommon/llwatchdog.cpp
index 1622aeb180..66b565c763 100644
--- a/indra/llcommon/llwatchdog.cpp
+++ b/indra/llcommon/llwatchdog.cpp
@@ -191,6 +191,7 @@ void LLWatchdog::remove(LLWatchdogEntry* e)
{
lockThread();
mSuspects.erase(e);
+ mFrozeList.erase(e);
unlockThread();
}
@@ -284,8 +285,9 @@ void LLWatchdog::run()
// Sets watchdog marker file
mCreateMarkerFnc(false);
// If it's mainloop and it somehow recovers, it will re-add itself
- mSuspects.erase(*result);
- mFrozeList.insert(*result);
+ LLWatchdogEntry* froze_entry = *result;
+ mSuspects.erase(result);
+ mFrozeList.insert(froze_entry);
LL_WARNS() << description << LL_ENDL;
}
else
@@ -307,8 +309,9 @@ void LLWatchdog::run()
mCreateMarkerFnc(false);
// Already reported, don't report again.
// If it's mainloop and it somehow recovers, it will re-add itself
+ LLWatchdogEntry* froze_entry = *result;
mSuspects.erase(result);
- mFrozeList.insert(*result);
+ mFrozeList.insert(froze_entry);
}
}
}
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 6b26127925..2e4e9e29d5 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -119,7 +119,7 @@ namespace
// MiniDmpSender pointer. As things stand, though, we must define an
// actual function and store the pointer statically.
static MiniDmpSender *sBugSplatSender = nullptr;
- static std::string sBugsplatDesriptionField;
+ static std::string sBugsplatDescriptionField;
bool bugsplatSendLog(UINT nCode, LPVOID lpVal1, LPVOID lpVal2)
{
@@ -156,15 +156,15 @@ namespace
WCSTR(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "settings_per_account.xml")));
}
- if (!sBugsplatDesriptionField.empty())
+ if (!sBugsplatDescriptionField.empty())
{
// Can be set by watchdog or other code that detects a problem
// and wants to add some context to the crash report.
// Will be visible in the BugSplat web UI.
- sBugSplatSender->setDefaultUserDescription(WCSTR(LLError::getFatalMessage()));
- // This type of crash is not nessesarily a crash, or final.
+ sBugSplatSender->setDefaultUserDescription(WCSTR(sBugsplatDescriptionField));
+ // This type of crash is not necessarily a crash, or final.
// Prepare for the next one.
- sBugsplatDesriptionField.clear();
+ sBugsplatDescriptionField.clear();
}
else
{
@@ -878,7 +878,7 @@ bool LLAppViewerWin32::reportCustomToBugsplat(const std::string &description)
#if defined(LL_BUGSPLAT)
if (sBugSplatSender)
{
- sBugsplatDesriptionField = description;
+ sBugsplatDescriptionField = description;
__try
{
diff --git a/indra/newview/llappviewerwin32.h b/indra/newview/llappviewerwin32.h
index b31fa49cb2..53177f7f95 100644
--- a/indra/newview/llappviewerwin32.h
+++ b/indra/newview/llappviewerwin32.h
@@ -44,7 +44,7 @@ public:
bool cleanup() override;
bool reportCrashToBugsplat(void* pExcepInfo) override;
- bool reportCustomToBugsplat(const std::string& desription) override;
+ bool reportCustomToBugsplat(const std::string& description) override;
protected:
bool initWindow() override; // Override to initialize the viewer's window.