From 759bd721dfd38e2ce02048f378ee025bcb175f93 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sat, 19 Jul 2025 03:41:24 -0700 Subject: [PATCH] core/log: stop trying to store detailed logs after write fail Not stopping will cause the logger's write buffer to fill until OOM if writing fails. --- src/core/logging.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/logging.cpp b/src/core/logging.cpp index 7f95e46f..cb3a2142 100644 --- a/src/core/logging.cpp +++ b/src/core/logging.cpp @@ -457,10 +457,14 @@ void ThreadLogging::onMessage(const LogMessage& msg, bool showInSparse) { this->fileStream << Qt::endl; } - if (this->detailedWriter.write(msg)) { - this->detailedFile->flush(); - } else if (this->detailedFile != nullptr) { - qCCritical(logLogging) << "Detailed logger failed to write. Ending detailed logs."; + if (!this->detailedWriter.write(msg) || (this->detailedFile && !this->detailedFile->flush())) { + if (this->detailedFile) { + qCCritical(logLogging) << "Detailed logger failed to write. Ending detailed logs."; + } + + this->detailedWriter.setDevice(nullptr); + this->detailedFile->close(); + this->detailedFile = nullptr; } }