From f2735f43bc3e51f367b6633dd68628d6c6530659 Mon Sep 17 00:00:00 2001 From: kailixu Date: Sat, 4 Jan 2025 23:40:58 +0800 Subject: [PATCH] fix: eliminate the risk of deadlock when switching logs --- source/util/src/tlog.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/util/src/tlog.c b/source/util/src/tlog.c index 4a9f2a9937..90753ae7e8 100644 --- a/source/util/src/tlog.c +++ b/source/util/src/tlog.c @@ -411,7 +411,9 @@ static OldFileKeeper *taosOpenNewFile() { TdFilePtr pFile = taosOpenFile(name, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_TRUNC); if (pFile == NULL) { - uError("open new log file fail! reason:%s, reuse lastlog", tstrerror(terrno)); + tsLogObj.flag ^= 1; + tsLogObj.lines = tsNumOfLogLines - 1000; + uError("open new log file %s fail! reason:%s, reuse lastlog", name, tstrerror(terrno)); return NULL; } @@ -728,10 +730,7 @@ static inline void taosPrintLogImp(ELogLevel level, int32_t dflag, const char *b if (tsNumOfLogLines > 0) { TAOS_UNUSED(atomic_add_fetch_32(&tsLogObj.lines, 1)); if ((tsLogObj.lines > tsNumOfLogLines) && (tsLogObj.openInProgress == 0)) { - int32_t code = taosOpenNewLogFile(); - if (code != 0) { - uError("failed to open new log file, reason:%s", tstrerror(code)); - } + TAOS_UNUSED(taosOpenNewLogFile()); } } }