#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() void LLAppViewer::outOfMemorySoftQuit()
{ {
if (!mQuitRequested) if (!mQuitRequested)

View File

@ -250,6 +250,7 @@ public:
// Writes an error code into the error_marker file for use on next startup. // Writes an error code into the error_marker file for use on next startup.
void createErrorMarker(eLastExecEvent error_code) const; void createErrorMarker(eLastExecEvent error_code) const;
bool errorMarkerExists() const;
// Attempt a 'soft' quit with disconnect and saving of settings/cache. // Attempt a 'soft' quit with disconnect and saving of settings/cache.
// Intended to be thread safe. // Intended to be thread safe.

View File

@ -173,16 +173,13 @@ namespace
<< '/' << loc.mV[2]))); << '/' << 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 marker doesn't exist, create a marker with 'other' code for next launch
if (!LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB)) // otherwise don't override existing file
{ // Any unmarked crashes will be considered as freezes
// If marker doesn't exist, create a marker with 'other' code for next launch app->createErrorMarker(LAST_EXEC_OTHER_CRASH);
// otherwise don't override existing file
// Any unmarked crashes will be considered as freezes
LLAppViewer::instance()->createErrorMarker(LAST_EXEC_OTHER_CRASH);
}
} }
} // MDSCB_EXCEPTIONCODE } // MDSCB_EXCEPTIONCODE