From 3b3c85d1f378fdc83c7f613d5ee269b5db0db125 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Date: Sat, 13 Sep 2025 00:06:47 +0300
Subject: #4651 Try distinguishing freezes from crashes
---
indra/newview/llappviewerwin32.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
(limited to 'indra/newview/llappviewerwin32.cpp')
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 8477bd3044..c29c9a4919 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -172,6 +172,18 @@ namespace
<< '/' << loc.mV[1]
<< '/' << loc.mV[2])));
}
+
+ if (!LLAppViewer::instance()->isSecondInstance())
+ {
+ std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME);
+ if (!LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB))
+ {
+ // If marker doesn't exist, create a marker with 'other' code for next launch
+ // otherwise don't override existing file
+ // Any unmarked crashes will be considered as freezes
+ LLAppViewer::instance()->createErrorMarker(LAST_EXEC_OTHER_CRASH);
+ }
+ }
} // MDSCB_EXCEPTIONCODE
return false;
--
cgit v1.3
From 892fb2d6e2ffc92636f381d3e817f9c5a71657dc Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Date: Tue, 16 Sep 2025 19:44:45 +0300
Subject: #4651 Fix marker presence check
---
indra/newview/llappviewer.cpp | 6 ++++++
indra/newview/llappviewer.h | 1 +
indra/newview/llappviewerwin32.cpp | 15 ++++++---------
3 files changed, 13 insertions(+), 9 deletions(-)
(limited to 'indra/newview/llappviewerwin32.cpp')
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 253c1268d3..62a1aa9fb6 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -5403,6 +5403,12 @@ void LLAppViewer::createErrorMarker(eLastExecEvent error_code) const
}
}
+bool LLAppViewer::errorMarkerExists() const
+{
+ std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME);
+ return LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB);
+}
+
void LLAppViewer::outOfMemorySoftQuit()
{
if (!mQuitRequested)
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 24d55a00fe..fdaa14a77d 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -250,6 +250,7 @@ public:
// Writes an error code into the error_marker file for use on next startup.
void createErrorMarker(eLastExecEvent error_code) const;
+ bool errorMarkerExists() const;
// Attempt a 'soft' quit with disconnect and saving of settings/cache.
// Intended to be thread safe.
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index c29c9a4919..929cb8b4d5 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -173,16 +173,13 @@ namespace
<< '/' << loc.mV[2])));
}
- if (!LLAppViewer::instance()->isSecondInstance())
+ LLAppViewer* app = LLAppViewer::instance();
+ if (!app->isSecondInstance() && !app->errorMarkerExists())
{
- std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME);
- if (!LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB))
- {
- // If marker doesn't exist, create a marker with 'other' code for next launch
- // otherwise don't override existing file
- // Any unmarked crashes will be considered as freezes
- LLAppViewer::instance()->createErrorMarker(LAST_EXEC_OTHER_CRASH);
- }
+ // If marker doesn't exist, create a marker with 'other' code for next launch
+ // otherwise don't override existing file
+ // Any unmarked crashes will be considered as freezes
+ app->createErrorMarker(LAST_EXEC_OTHER_CRASH);
}
} // MDSCB_EXCEPTIONCODE
--
cgit v1.3
From 7991ae892ef0f717636c0fe3c0eff0a5f92e6bb8 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Date: Tue, 2 Dec 2025 00:44:56 +0200
Subject: #5084 Ressurect Watchdog
---
indra/newview/app_settings/settings.xml | 19 +++++++++++----
indra/newview/llappviewer.cpp | 42 ++++++++++++++++++---------------
indra/newview/llappviewer.h | 8 ++++---
indra/newview/llappviewerwin32.cpp | 11 +++++++--
indra/newview/llwatchdog.cpp | 12 +++++++++-
5 files changed, 63 insertions(+), 29 deletions(-)
(limited to 'indra/newview/llappviewerwin32.cpp')
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 3dbb5dca1f..fe31a00ba3 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4484,13 +4484,24 @@
MainloopTimeoutDefault
+ MainloopTimeoutStarted
+
MapScale