#4651 Fix marker presence check

master
Andrey Kleshchev 2025-09-16 19:44:45 +03:00
parent 6e24218680
commit 892fb2d6e2
3 changed files with 13 additions and 9 deletions

View File

@ -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)

View File

@ -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.

View File

@ -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