Merge pull request #18978 from taosdata/fix/TD-21288
fix: should not fsync in log level is error
This commit is contained in:
commit
03ad2087ce
|
@ -464,7 +464,9 @@ int64_t taosWriteFile(TdFilePtr pFile, const void *buf, int64_t count) {
|
|||
#if FILE_WITH_LOCK
|
||||
taosThreadRwlockWrlock(&(pFile->rwlock));
|
||||
#endif
|
||||
assert(pFile->fd >= 0); // Please check if you have closed the file.
|
||||
if (pFile->fd < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int64_t nleft = count;
|
||||
int64_t nwritten = 0;
|
||||
|
|
|
@ -445,6 +445,9 @@ static inline int32_t taosBuildLogHead(char *buffer, const char *flags) {
|
|||
static inline void taosPrintLogImp(ELogLevel level, int32_t dflag, const char *buffer, int32_t len) {
|
||||
if ((dflag & DEBUG_FILE) && tsLogObj.logHandle && tsLogObj.logHandle->pFile != NULL && osLogSpaceAvailable()) {
|
||||
taosUpdateLogNums(level);
|
||||
#if 0
|
||||
// DEBUG_FATAL and DEBUG_ERROR are duplicated
|
||||
// fsync will cause thread blocking and may also generate log misalignment in case of asyncLog
|
||||
if (tsAsyncLog && level != DEBUG_FATAL) {
|
||||
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
||||
} else {
|
||||
|
@ -453,6 +456,13 @@ static inline void taosPrintLogImp(ELogLevel level, int32_t dflag, const char *b
|
|||
taosFsyncFile(tsLogObj.logHandle->pFile);
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (tsAsyncLog) {
|
||||
taosPushLogBuffer(tsLogObj.logHandle, buffer, len);
|
||||
} else {
|
||||
taosWriteFile(tsLogObj.logHandle->pFile, buffer, len);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (tsLogObj.maxLines > 0) {
|
||||
atomic_add_fetch_32(&tsLogObj.lines, 1);
|
||||
|
|
Loading…
Reference in New Issue