From 7a75444a02f02237a281565c9e6ec45a92b42b13 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 10:56:19 +0800 Subject: [PATCH 01/34] enh: add log level to each log entry --- include/libs/function/taosudf.h | 8 ++-- include/libs/qcom/query.h | 52 +++++------------------- include/util/tlog.h | 17 ++++---- source/client/inc/clientLog.h | 14 +++---- source/client/jni/jniCommon.h | 8 ++-- source/client/src/clientTmq.c | 6 +-- source/dnode/mgmt/node_util/inc/dmUtil.h | 8 ++-- source/dnode/mnode/impl/inc/mndInt.h | 8 ++-- source/dnode/mnode/sdb/inc/sdb.h | 8 ++-- source/dnode/snode/src/snode.c | 6 +-- source/dnode/vnode/src/inc/meta.h | 12 +++--- source/dnode/vnode/src/inc/sma.h | 12 +++--- source/dnode/vnode/src/inc/tq.h | 12 +++--- source/dnode/vnode/src/inc/tsdb.h | 12 +++--- source/dnode/vnode/src/inc/vnd.h | 12 +++--- source/libs/azure/inc/azInt.h | 12 +++--- source/libs/function/inc/fnLog.h | 12 +++--- source/libs/index/inc/indexInt.h | 12 +++--- source/libs/nodes/src/nodesUtilFuncs.c | 3 +- source/libs/stream/inc/streamInt.h | 12 +++--- source/libs/sync/inc/syncUtil.h | 52 ++++++++++++------------ source/libs/tdb/src/inc/tdbOs.h | 12 +++--- source/libs/tfs/inc/tfsInt.h | 12 +++--- source/libs/transport/inc/transLog.h | 8 ++-- source/libs/wal/inc/walInt.h | 8 ++-- source/util/src/ttimer.c | 44 ++++---------------- utils/tsim/inc/simInt.h | 44 ++++---------------- 27 files changed, 170 insertions(+), 256 deletions(-) diff --git a/include/libs/function/taosudf.h b/include/libs/function/taosudf.h index fd6b42f61e..ece98ac243 100644 --- a/include/libs/function/taosudf.h +++ b/include/libs/function/taosudf.h @@ -347,10 +347,10 @@ typedef int32_t (*TScriptCloseFunc)(); extern int32_t udfDebugFlag; #define udfFatal(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF FATAL ", 1, 255, __VA_ARGS__); }} #define udfError(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF ERROR ", 1, 255, __VA_ARGS__); }} - #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} - #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF ", 2, 255, __VA_ARGS__); }} - #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF ", 4, udfDebugFlag, __VA_ARGS__); }} - #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF ", 8, udfDebugFlag, __VA_ARGS__); }} + #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} + #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} + #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} + #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} #endif // clang-format on diff --git a/include/libs/qcom/query.h b/include/libs/qcom/query.h index a17e67279c..065c7f92e8 100644 --- a/include/libs/qcom/query.h +++ b/include/libs/qcom/query.h @@ -409,48 +409,16 @@ void* getTaskPoolWorkerCb(); #define IS_AUDIT_CTB_NAME(_ctbname) \ ((*(_ctbname) == 't') && (0 == strncmp(_ctbname, TSDB_AUDIT_CTB_OPERATION, TSDB_AUDIT_CTB_OPERATION_LEN))) -#define qFatal(...) \ - do { \ - if (qDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qError(...) \ - do { \ - if (qDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qWarn(...) \ - do { \ - if (qDebugFlag & DEBUG_WARN) { \ - taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qInfo(...) \ - do { \ - if (qDebugFlag & DEBUG_INFO) { \ - taosPrintLog("QRY ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qDebug(...) \ - do { \ - if (qDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qTrace(...) \ - do { \ - if (qDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("QRY ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qDebugL(...) \ - do { \ - if (qDebugFlag & DEBUG_DEBUG) { \ - taosPrintLongString("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) +// clang-format off +#define qFatal(...) { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qError(...) { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qWarn(...) { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qInfo(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qDebug(...) { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} +#define qTrace(...) { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} +#define qDebugL(...){ if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} +#define qInfoL(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +// clang-format on #define QRY_ERR_RET(c) \ do { \ diff --git a/include/util/tlog.h b/include/util/tlog.h index 60ddc29288..07b11bb16e 100644 --- a/include/util/tlog.h +++ b/include/util/tlog.h @@ -128,18 +128,19 @@ bool reportThreadSetQuit(); void writeCrashLogToFile(int signum, void *sigInfo, char *nodeType, int64_t clusterId, int64_t startTime); // clang-format off -#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} #define uError(...) { if (uDebugFlag & DEBUG_ERROR) { taosPrintLog("UTL ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} -#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL ", DEBUG_TRACE, uDebugFlag, __VA_ARGS__); }} -#define uDebugL(...){ if (uDebugFlag & DEBUG_DEBUG) { taosPrintLongString("UTL ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} -#define uInfoL(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLongString("UTL ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL DEBUG ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} +#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL TRACE ", DEBUG_TRACE, uDebugFlag, __VA_ARGS__); }} +#define uDebugL(...){ if (uDebugFlag & DEBUG_DEBUG) { taosPrintLongString("UTL DEBUG ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} +#define uInfoL(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLongString("UTL INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} #define pError(...) { taosPrintLog("APP ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define pPrint(...) { taosPrintLog("APP ", DEBUG_INFO, 255, __VA_ARGS__); } +#define pPrint(...) { taosPrintLog("APP INFO ", DEBUG_INFO, 255, __VA_ARGS__); } // clang-format on + // #define BUF_PAGE_DEBUG #ifdef __cplusplus } diff --git a/source/client/inc/clientLog.h b/source/client/inc/clientLog.h index 1a6d47d4f9..4e6c7bd3a6 100644 --- a/source/client/inc/clientLog.h +++ b/source/client/inc/clientLog.h @@ -25,14 +25,14 @@ extern "C" { // clang-format off #define tscFatal(...) do { if (cDebugFlag & DEBUG_FATAL) { taosPrintLog("TSC FATAL ", DEBUG_FATAL, cDebugFlag, __VA_ARGS__); }} while(0) #define tscError(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLog("TSC ERROR ", DEBUG_ERROR, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC INFO ", DEBUG_INFO, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC DEBUG ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC TRACE ", DEBUG_TRACE, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscPerf(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC PERF ", 0, cDebugFlag, __VA_ARGS__); }} while(0) #define tscErrorL(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLongString("TSC ERROR ", DEBUG_ERROR, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscWarnL(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLongString("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", DEBUG_INFO, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC ", DEBUG_TRACE, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscPerf(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", 0, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscWarnL(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLongString("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC DEBUG ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) #define tscLog(...) do { taosPrintLog("TSC ", 0, DEBUG_FILE, __VA_ARGS__); } while(0) #define tscLogL(...) do { taosPrintLongString("TSC ", 0, DEBUG_FILE, __VA_ARGS__); } while(0) // clang-format on diff --git a/source/client/jni/jniCommon.h b/source/client/jni/jniCommon.h index d620487ad2..f636a11aef 100644 --- a/source/client/jni/jniCommon.h +++ b/source/client/jni/jniCommon.h @@ -37,25 +37,25 @@ #define jniWarn(...) \ { \ if (jniDebugFlag & DEBUG_WARN) { \ - taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniInfo(...) \ { \ if (jniDebugFlag & DEBUG_INFO) { \ - taosPrintLog("JNI ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniDebug(...) \ { \ if (jniDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("JNI ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniTrace(...) \ { \ if (jniDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("JNI ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ } \ } diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 4adc738d35..a11f351a1e 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -24,9 +24,9 @@ #include "tref.h" #include "ttimer.h" -#define tqErrorC(...) do { if (cDebugFlag & DEBUG_ERROR || tqClientDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) -#define tqInfoC(...) do { if (cDebugFlag & DEBUG_INFO || tqClientDebugFlag & DEBUG_INFO) { taosPrintLog("TQ ", DEBUG_INFO, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) -#define tqDebugC(...) do { if (cDebugFlag & DEBUG_DEBUG || tqClientDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ ", DEBUG_DEBUG, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqErrorC(...) do { if (cDebugFlag & DEBUG_ERROR || tqClientDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqInfoC(...) do { if (cDebugFlag & DEBUG_INFO || tqClientDebugFlag & DEBUG_INFO) { taosPrintLog("TQ INFO ", DEBUG_INFO, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqDebugC(...) do { if (cDebugFlag & DEBUG_DEBUG || tqClientDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ DEBUG ", DEBUG_DEBUG, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) #define EMPTY_BLOCK_POLL_IDLE_DURATION 10 #define DEFAULT_AUTO_COMMIT_INTERVAL 5000 diff --git a/source/dnode/mgmt/node_util/inc/dmUtil.h b/source/dnode/mgmt/node_util/inc/dmUtil.h index de20f807e9..1c96b0c239 100644 --- a/source/dnode/mgmt/node_util/inc/dmUtil.h +++ b/source/dnode/mgmt/node_util/inc/dmUtil.h @@ -48,10 +48,10 @@ extern "C" { #define dFatal(...) { if (dDebugFlag & DEBUG_FATAL) { taosPrintLog("DND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define dError(...) { if (dDebugFlag & DEBUG_ERROR) { taosPrintLog("DND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", DEBUG_DEBUG, dDebugFlag, __VA_ARGS__); }} -#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", DEBUG_TRACE, dDebugFlag, __VA_ARGS__); }} +#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND DEBUG ", DEBUG_DEBUG, dDebugFlag, __VA_ARGS__); }} +#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND TRACE ", DEBUG_TRACE, dDebugFlag, __VA_ARGS__); }} #define encryptDebug(...) { \ if (toLogFile) { \ diff --git a/source/dnode/mnode/impl/inc/mndInt.h b/source/dnode/mnode/impl/inc/mndInt.h index 982a541bb3..ad95f719b2 100644 --- a/source/dnode/mnode/impl/inc/mndInt.h +++ b/source/dnode/mnode/impl/inc/mndInt.h @@ -37,10 +37,10 @@ extern "C" { // clang-format off #define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} -#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} +#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} +#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} #define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ",QID:%s", __VA_ARGS__, buf);}} #define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ",QID:%s", __VA_ARGS__, buf);}} diff --git a/source/dnode/mnode/sdb/inc/sdb.h b/source/dnode/mnode/sdb/inc/sdb.h index 114a5ca59b..1994f06a20 100644 --- a/source/dnode/mnode/sdb/inc/sdb.h +++ b/source/dnode/mnode/sdb/inc/sdb.h @@ -31,10 +31,10 @@ extern "C" { // clang-format off #define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} -#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} +#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} +#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} // clang-format on #define SDB_GET_VAL(pData, dataPos, val, pos, func, type) \ diff --git a/source/dnode/snode/src/snode.c b/source/dnode/snode/src/snode.c index 6eee8c510b..fe1b333108 100644 --- a/source/dnode/snode/src/snode.c +++ b/source/dnode/snode/src/snode.c @@ -20,9 +20,9 @@ #include "tuuid.h" // clang-format off -#define sndError(...) do { if (sndDebugFlag & DEBUG_ERROR) {taosPrintLog("SND ERROR ", DEBUG_ERROR, sndDebugFlag, __VA_ARGS__);}} while (0) -#define sndInfo(...) do { if (sndDebugFlag & DEBUG_INFO) { taosPrintLog("SND INFO ", DEBUG_INFO, sndDebugFlag, __VA_ARGS__);}} while (0) -#define sndDebug(...) do { if (sndDebugFlag & DEBUG_DEBUG) { taosPrintLog("SND ", DEBUG_DEBUG, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndError(...) do { if (sndDebugFlag & DEBUG_ERROR) { taosPrintLog("SND ERROR ", DEBUG_ERROR, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndInfo(...) do { if (sndDebugFlag & DEBUG_INFO) { taosPrintLog("SND INFO ", DEBUG_INFO, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndDebug(...) do { if (sndDebugFlag & DEBUG_DEBUG) { taosPrintLog("SND DEBUG ", DEBUG_DEBUG, sndDebugFlag, __VA_ARGS__);}} while (0) // clang-format on int32_t sndBuildStreamTask(SSnode *pSnode, SStreamTask *pTask, int64_t nextProcessVer) { diff --git a/source/dnode/vnode/src/inc/meta.h b/source/dnode/vnode/src/inc/meta.h index c05953c67d..147da7436d 100644 --- a/source/dnode/vnode/src/inc/meta.h +++ b/source/dnode/vnode/src/inc/meta.h @@ -30,12 +30,12 @@ typedef struct SMetaCache SMetaCache; // metaDebug ================== // clang-format off -#define metaFatal(...) do { if (metaDebugFlag & DEBUG_FATAL) { taosPrintLog("MTA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define metaError(...) do { if (metaDebugFlag & DEBUG_ERROR) { taosPrintLog("MTA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define metaWarn(...) do { if (metaDebugFlag & DEBUG_WARN) { taosPrintLog("MTA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define metaInfo(...) do { if (metaDebugFlag & DEBUG_INFO) { taosPrintLog("MTA ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define metaDebug(...) do { if (metaDebugFlag & DEBUG_DEBUG) { taosPrintLog("MTA ", DEBUG_DEBUG, metaDebugFlag, __VA_ARGS__); }} while(0) -#define metaTrace(...) do { if (metaDebugFlag & DEBUG_TRACE) { taosPrintLog("MTA ", DEBUG_TRACE, metaDebugFlag, __VA_ARGS__); }} while(0) +#define metaFatal(...) do { if (metaDebugFlag & DEBUG_FATAL) { taosPrintLog("MTA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define metaError(...) do { if (metaDebugFlag & DEBUG_ERROR) { taosPrintLog("MTA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define metaWarn(...) do { if (metaDebugFlag & DEBUG_WARN) { taosPrintLog("MTA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define metaInfo(...) do { if (metaDebugFlag & DEBUG_INFO) { taosPrintLog("MTA INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define metaDebug(...) do { if (metaDebugFlag & DEBUG_DEBUG) { taosPrintLog("MTA DEBUG ", DEBUG_DEBUG, metaDebugFlag, __VA_ARGS__); }} while(0) +#define metaTrace(...) do { if (metaDebugFlag & DEBUG_TRACE) { taosPrintLog("MTA TRACE ", DEBUG_TRACE, metaDebugFlag, __VA_ARGS__); }} while(0) // clang-format on // metaOpen ================== diff --git a/source/dnode/vnode/src/inc/sma.h b/source/dnode/vnode/src/inc/sma.h index 243f51ca0a..182290f77e 100644 --- a/source/dnode/vnode/src/inc/sma.h +++ b/source/dnode/vnode/src/inc/sma.h @@ -24,12 +24,12 @@ extern "C" { // smaDebug ================ // clang-format off -#define smaFatal(...) do { if (smaDebugFlag & DEBUG_FATAL) { taosPrintLog("SMA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define smaError(...) do { if (smaDebugFlag & DEBUG_ERROR) { taosPrintLog("SMA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define smaWarn(...) do { if (smaDebugFlag & DEBUG_WARN) { taosPrintLog("SMA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define smaInfo(...) do { if (smaDebugFlag & DEBUG_INFO) { taosPrintLog("SMA ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define smaDebug(...) do { if (smaDebugFlag & DEBUG_DEBUG) { taosPrintLog("SMA ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) -#define smaTrace(...) do { if (smaDebugFlag & DEBUG_TRACE) { taosPrintLog("SMA ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define smaFatal(...) do { if (smaDebugFlag & DEBUG_FATAL) { taosPrintLog("SMA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define smaError(...) do { if (smaDebugFlag & DEBUG_ERROR) { taosPrintLog("SMA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define smaWarn(...) do { if (smaDebugFlag & DEBUG_WARN) { taosPrintLog("SMA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define smaInfo(...) do { if (smaDebugFlag & DEBUG_INFO) { taosPrintLog("SMA INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define smaDebug(...) do { if (smaDebugFlag & DEBUG_DEBUG) { taosPrintLog("SMA DEBUG ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define smaTrace(...) do { if (smaDebugFlag & DEBUG_TRACE) { taosPrintLog("SMA TRACE ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define RSMA_TASK_INFO_HASH_SLOT (8) diff --git a/source/dnode/vnode/src/inc/tq.h b/source/dnode/vnode/src/inc/tq.h index cd66e82687..be0df15447 100644 --- a/source/dnode/vnode/src/inc/tq.h +++ b/source/dnode/vnode/src/inc/tq.h @@ -33,12 +33,12 @@ extern "C" { // tqDebug =================== // clang-format off -#define tqFatal(...) do { if (tqDebugFlag & DEBUG_FATAL) { taosPrintLog("TQ FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tqError(...) do { if (tqDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tqWarn(...) do { if (tqDebugFlag & DEBUG_WARN) { taosPrintLog("TQ WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tqInfo(...) do { if (tqDebugFlag & DEBUG_INFO) { taosPrintLog("TQ ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tqDebug(...) do { if (tqDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ ", DEBUG_DEBUG, tqDebugFlag, __VA_ARGS__); }} while(0) -#define tqTrace(...) do { if (tqDebugFlag & DEBUG_TRACE) { taosPrintLog("TQ ", DEBUG_TRACE, tqDebugFlag, __VA_ARGS__); }} while(0) +#define tqFatal(...) do { if (tqDebugFlag & DEBUG_FATAL) { taosPrintLog("TQ FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tqError(...) do { if (tqDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tqWarn(...) do { if (tqDebugFlag & DEBUG_WARN) { taosPrintLog("TQ WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tqInfo(...) do { if (tqDebugFlag & DEBUG_INFO) { taosPrintLog("TQ INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tqDebug(...) do { if (tqDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ DEBUG ", DEBUG_DEBUG, tqDebugFlag, __VA_ARGS__); }} while(0) +#define tqTrace(...) do { if (tqDebugFlag & DEBUG_TRACE) { taosPrintLog("TQ TRACE ", DEBUG_TRACE, tqDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define IS_OFFSET_RESET_TYPE(_t) ((_t) < 0) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 753f7cb726..1778b7cda8 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -28,12 +28,12 @@ extern "C" { // tsdbDebug ================ // clang-format off -#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TSD FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TSD ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TSD WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TSD ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSD ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) -#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TSD ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TSD FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TSD ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TSD WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TSD INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSD DEBUG ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TSD TRACE ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on typedef struct TSDBROW TSDBROW; diff --git a/source/dnode/vnode/src/inc/vnd.h b/source/dnode/vnode/src/inc/vnd.h index 7da3dcbe5a..db48f8cfa3 100644 --- a/source/dnode/vnode/src/inc/vnd.h +++ b/source/dnode/vnode/src/inc/vnd.h @@ -25,12 +25,12 @@ extern "C" { #endif // clang-format off -#define vFatal(...) do { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("VND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define vError(...) do { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("VND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define vWarn(...) do { if (vDebugFlag & DEBUG_WARN) { taosPrintLog("VND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define vInfo(...) do { if (vDebugFlag & DEBUG_INFO) { taosPrintLog("VND ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) -#define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) +#define vFatal(...) do { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("VND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define vError(...) do { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("VND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define vWarn(...) do { if (vDebugFlag & DEBUG_WARN) { taosPrintLog("VND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define vInfo(...) do { if (vDebugFlag & DEBUG_INFO) { taosPrintLog("VND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND DEBUG ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) +#define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND TRACE ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) #define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) #define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ",QID:%s", __VA_ARGS__, buf);}} while(0) diff --git a/source/libs/azure/inc/azInt.h b/source/libs/azure/inc/azInt.h index 3538e925c7..e3ea685ebb 100644 --- a/source/libs/azure/inc/azInt.h +++ b/source/libs/azure/inc/azInt.h @@ -27,12 +27,12 @@ extern "C" { #endif // clang-format off -#define azFatal(...) { if (azDebugFlag & DEBUG_FATAL) { taosPrintLog("AZR FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define azError(...) { if (azDebugFlag & DEBUG_ERROR) { taosPrintLog("AZR ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define azWarn(...) { if (azDebugFlag & DEBUG_WARN) { taosPrintLog("AZR WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define azInfo(...) { if (azDebugFlag & DEBUG_INFO) { taosPrintLog("AZR ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define azDebug(...) { if (azDebugFlag & DEBUG_DEBUG) { taosPrintLog("AZR ", DEBUG_DEBUG, azDebugFlag, __VA_ARGS__); }} -#define azTrace(...) { if (azDebugFlag & DEBUG_TRACE) { taosPrintLog("AZR ", DEBUG_TRACE, azDebugFlag, __VA_ARGS__); }} +#define azFatal(...) { if (azDebugFlag & DEBUG_FATAL) { taosPrintLog("AZR FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define azError(...) { if (azDebugFlag & DEBUG_ERROR) { taosPrintLog("AZR ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define azWarn(...) { if (azDebugFlag & DEBUG_WARN) { taosPrintLog("AZR WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define azInfo(...) { if (azDebugFlag & DEBUG_INFO) { taosPrintLog("AZR INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define azDebug(...) { if (azDebugFlag & DEBUG_DEBUG) { taosPrintLog("AZR DEBUG ", DEBUG_DEBUG, azDebugFlag, __VA_ARGS__); }} +#define azTrace(...) { if (azDebugFlag & DEBUG_TRACE) { taosPrintLog("AZR TRACE ", DEBUG_TRACE, azDebugFlag, __VA_ARGS__); }} // clang-format on #ifdef __cplusplus diff --git a/source/libs/function/inc/fnLog.h b/source/libs/function/inc/fnLog.h index 150d145f50..b2c3937363 100644 --- a/source/libs/function/inc/fnLog.h +++ b/source/libs/function/inc/fnLog.h @@ -22,12 +22,12 @@ extern "C" { #endif // clang-format off -#define fnFatal(...) { if (udfDebugFlag & DEBUG_FATAL) { taosPrintLog("UDF FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define fnError(...) { if (udfDebugFlag & DEBUG_ERROR) { taosPrintLog("UDF ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define fnWarn(...) { if (udfDebugFlag & DEBUG_WARN) { taosPrintLog("UDF WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define fnInfo(...) { if (udfDebugFlag & DEBUG_INFO) { taosPrintLog("UDF ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define fnDebug(...) { if (udfDebugFlag & DEBUG_DEBUG) { taosPrintLog("UDF ", DEBUG_DEBUG, udfDebugFlag, __VA_ARGS__); }} -#define fnTrace(...) { if (udfDebugFlag & DEBUG_TRACE) { taosPrintLog("UDF ", DEBUG_TRACE, udfDebugFlag, __VA_ARGS__); }} +#define fnFatal(...) { if (udfDebugFlag & DEBUG_FATAL) { taosPrintLog("UDF FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define fnError(...) { if (udfDebugFlag & DEBUG_ERROR) { taosPrintLog("UDF ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define fnWarn(...) { if (udfDebugFlag & DEBUG_WARN) { taosPrintLog("UDF WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define fnInfo(...) { if (udfDebugFlag & DEBUG_INFO) { taosPrintLog("UDF INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define fnDebug(...) { if (udfDebugFlag & DEBUG_DEBUG) { taosPrintLog("UDF DEBUG ", DEBUG_DEBUG, udfDebugFlag, __VA_ARGS__); }} +#define fnTrace(...) { if (udfDebugFlag & DEBUG_TRACE) { taosPrintLog("UDF TRACE ", DEBUG_TRACE, udfDebugFlag, __VA_ARGS__); }} // clang-format on #ifdef __cplusplus diff --git a/source/libs/index/inc/indexInt.h b/source/libs/index/inc/indexInt.h index 4e7c0a0ef7..19ff27cd64 100644 --- a/source/libs/index/inc/indexInt.h +++ b/source/libs/index/inc/indexInt.h @@ -32,12 +32,12 @@ extern "C" { #endif // clang-format off -#define indexFatal(...) do { if (idxDebugFlag & DEBUG_FATAL) { taosPrintLog("IDX FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while (0) -#define indexError(...) do { if (idxDebugFlag & DEBUG_ERROR) { taosPrintLog("IDX ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while (0) -#define indexWarn(...) do { if (idxDebugFlag & DEBUG_WARN) { taosPrintLog("IDX WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while (0) -#define indexInfo(...) do { if (idxDebugFlag & DEBUG_INFO) { taosPrintLog("IDX ", DEBUG_INFO, 255, __VA_ARGS__); } } while (0) -#define indexDebug(...) do { if (idxDebugFlag & DEBUG_DEBUG) { taosPrintLog("IDX ", DEBUG_DEBUG, idxDebugFlag, __VA_ARGS__);} } while (0) -#define indexTrace(...) do { if (idxDebugFlag & DEBUG_TRACE) { taosPrintLog("IDX", DEBUG_TRACE, idxDebugFlag, __VA_ARGS__);} } while (0) +#define indexFatal(...) do { if (idxDebugFlag & DEBUG_FATAL) { taosPrintLog("IDX FATAL ", DEBUG_FATAL, 255, __VA_ARGS__);}} while (0) +#define indexError(...) do { if (idxDebugFlag & DEBUG_ERROR) { taosPrintLog("IDX ERROR ", DEBUG_ERROR, 255, __VA_ARGS__);}} while (0) +#define indexWarn(...) do { if (idxDebugFlag & DEBUG_WARN) { taosPrintLog("IDX WARN ", DEBUG_WARN, 255, __VA_ARGS__);}} while (0) +#define indexInfo(...) do { if (idxDebugFlag & DEBUG_INFO) { taosPrintLog("IDX INFO ", DEBUG_INFO, 255, __VA_ARGS__);}} while (0) +#define indexDebug(...) do { if (idxDebugFlag & DEBUG_DEBUG) { taosPrintLog("IDX DEBUG ", DEBUG_DEBUG, idxDebugFlag, __VA_ARGS__);}} while (0) +#define indexTrace(...) do { if (idxDebugFlag & DEBUG_TRACE) { taosPrintLog("IDX TRACE ", DEBUG_TRACE, idxDebugFlag, __VA_ARGS__);}} while (0) // clang-format on extern void* indexQhandle; diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index 9473e75642..899e1134b1 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -970,8 +970,9 @@ int32_t nodesMakeNode(ENodeType type, SNode** ppNodeOut) { default: break; } - if (TSDB_CODE_SUCCESS != code) + if (TSDB_CODE_SUCCESS != code) { nodesError("nodesMakeNode unknown node = %s", nodesNodeName(type)); + } else *ppNodeOut = pNode; return code; diff --git a/source/libs/stream/inc/streamInt.h b/source/libs/stream/inc/streamInt.h index d9778a6a05..bc47cd4ce1 100644 --- a/source/libs/stream/inc/streamInt.h +++ b/source/libs/stream/inc/streamInt.h @@ -41,12 +41,12 @@ extern "C" { #define STREAM_TASK_QUEUE_CAPACITY_IN_SIZE (10) // clang-format off -#define stFatal(...) do { if (stDebugFlag & DEBUG_FATAL) { taosPrintLog("STM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define stError(...) do { if (stDebugFlag & DEBUG_ERROR) { taosPrintLog("STM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define stWarn(...) do { if (stDebugFlag & DEBUG_WARN) { taosPrintLog("STM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define stInfo(...) do { if (stDebugFlag & DEBUG_INFO) { taosPrintLog("STM ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define stDebug(...) do { if (stDebugFlag & DEBUG_DEBUG) { taosPrintLog("STM ", DEBUG_DEBUG, stDebugFlag, __VA_ARGS__); }} while(0) -#define stTrace(...) do { if (stDebugFlag & DEBUG_TRACE) { taosPrintLog("STM ", DEBUG_TRACE, stDebugFlag, __VA_ARGS__); }} while(0) +#define stFatal(...) do { if (stDebugFlag & DEBUG_FATAL) { taosPrintLog("STM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define stError(...) do { if (stDebugFlag & DEBUG_ERROR) { taosPrintLog("STM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define stWarn(...) do { if (stDebugFlag & DEBUG_WARN) { taosPrintLog("STM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define stInfo(...) do { if (stDebugFlag & DEBUG_INFO) { taosPrintLog("STM INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define stDebug(...) do { if (stDebugFlag & DEBUG_DEBUG) { taosPrintLog("STM DEBUG ", DEBUG_DEBUG, stDebugFlag, __VA_ARGS__); }} while(0) +#define stTrace(...) do { if (stDebugFlag & DEBUG_TRACE) { taosPrintLog("STM TRACE ", DEBUG_TRACE, stDebugFlag, __VA_ARGS__); }} while(0) // clang-format on typedef struct SStreamTmrInfo { diff --git a/source/libs/sync/inc/syncUtil.h b/source/libs/sync/inc/syncUtil.h index 7b71491f47..7c4f9b2781 100644 --- a/source/libs/sync/inc/syncUtil.h +++ b/source/libs/sync/inc/syncUtil.h @@ -27,45 +27,45 @@ extern "C" { #define sFatal(...) if (sDebugFlag & DEBUG_FATAL) { taosPrintLog("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); } #define sError(...) if (sDebugFlag & DEBUG_ERROR) { taosPrintLog("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define sWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } -#define sInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLog("SYN ", DEBUG_INFO, 255, __VA_ARGS__); } -#define sDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLog("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } -#define sTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLog("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } +#define sWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } +#define sInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLog("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); } +#define sDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } +#define sTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } #define sGTrace(param, ...) do { if (sDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) #define sGFatal(param, ...) do { if (sDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGError(param, ...) do { if (sDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf);sError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGWarn(param, ...) do { if (sDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGInfo(param, ...) do { if (sDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGDebug(param, ...) do { if (sDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGError(param, ...) do { if (sDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf);sError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGWarn(param, ...) do { if (sDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGInfo(param, ...) do { if (sDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGDebug(param, ...) do { if (sDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) #define sLFatal(...) if (sDebugFlag & DEBUG_FATAL) { taosPrintLongString("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); } #define sLError(...) if (sDebugFlag & DEBUG_ERROR) { taosPrintLongString("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define sLWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } -#define sLInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLongString("SYN ", DEBUG_INFO, 255, __VA_ARGS__); } -#define sLDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLongString("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } -#define sLTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLongString("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } +#define sLWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } +#define sLInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLongString("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); } +#define sLDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLongString("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } +#define sLTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLongString("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } -#define sNFatal(pNode, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintNodeLog("SYN FATAL ", DEBUG_FATAL, 255, true, pNode, __VA_ARGS__); } -#define sNError(pNode, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintNodeLog("SYN ERROR ", DEBUG_ERROR, 255, true, pNode, __VA_ARGS__); } -#define sNWarn(pNode, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintNodeLog("SYN WARN ", DEBUG_WARN, 255, true, pNode, __VA_ARGS__); } -#define sNInfo(pNode, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintNodeLog("SYN ", DEBUG_INFO, 255, true, pNode, __VA_ARGS__); } -#define sNDebug(pNode, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintNodeLog("SYN ", DEBUG_DEBUG, sDebugFlag, false, pNode, __VA_ARGS__); } -#define sNTrace(pNode, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintNodeLog("SYN ", DEBUG_TRACE, sDebugFlag, false, pNode, __VA_ARGS__); } +#define sNFatal(pNode, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintNodeLog("SYN FATAL ", DEBUG_FATAL, 255, true, pNode, __VA_ARGS__); } +#define sNError(pNode, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintNodeLog("SYN ERROR ", DEBUG_ERROR, 255, true, pNode, __VA_ARGS__); } +#define sNWarn(pNode, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintNodeLog("SYN WARN ", DEBUG_WARN, 255, true, pNode, __VA_ARGS__); } +#define sNInfo(pNode, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintNodeLog("SYN INFO ", DEBUG_INFO, 255, true, pNode, __VA_ARGS__); } +#define sNDebug(pNode, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintNodeLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, false, pNode, __VA_ARGS__); } +#define sNTrace(pNode, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintNodeLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, false, pNode, __VA_ARGS__); } #define sSFatal(pSender, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintSnapshotSenderLog("SYN FATAL ", DEBUG_FATAL, 255, pSender, __VA_ARGS__); } #define sSError(pSender, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintSnapshotSenderLog("SYN ERROR ", DEBUG_ERROR, 255, pSender, __VA_ARGS__); } -#define sSWarn(pSender, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotSenderLog("SYN WARN ", DEBUG_WARN, 255, pSender, __VA_ARGS__); } -#define sSInfo(pSender, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotSenderLog("SYN ", DEBUG_INFO, 255, pSender, __VA_ARGS__); } -#define sSDebug(pSender, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotSenderLog("SYN ", DEBUG_DEBUG, sDebugFlag, pSender, __VA_ARGS__); } -#define sSTrace(pSender, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotSenderLog("SYN ", DEBUG_TRACE, sDebugFlag, pSender, __VA_ARGS__); } +#define sSWarn(pSender, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotSenderLog("SYN WARN ", DEBUG_WARN, 255, pSender, __VA_ARGS__); } +#define sSInfo(pSender, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotSenderLog("SYN INFO ", DEBUG_INFO, 255, pSender, __VA_ARGS__); } +#define sSDebug(pSender, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotSenderLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, pSender, __VA_ARGS__); } +#define sSTrace(pSender, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotSenderLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, pSender, __VA_ARGS__); } #define sRFatal(pReceiver, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintSnapshotReceiverLog("SYN FATAL ", DEBUG_FATAL, 255, pReceiver, __VA_ARGS__); } #define sRError(pReceiver, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintSnapshotReceiverLog("SYN ERROR ", DEBUG_ERROR, 255, pReceiver, __VA_ARGS__); } -#define sRWarn(pReceiver, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotReceiverLog("SYN WARN ", DEBUG_WARN, 255, pReceiver, __VA_ARGS__); } -#define sRInfo(pReceiver, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_INFO, 255, pReceiver, __VA_ARGS__); } -#define sRDebug(pReceiver, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_DEBUG, sDebugFlag, pReceiver, __VA_ARGS__); } -#define sRTrace(pReceiver, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_TRACE, sDebugFlag, pReceiver, __VA_ARGS__); } +#define sRWarn(pReceiver, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotReceiverLog("SYN WARN ", DEBUG_WARN, 255, pReceiver, __VA_ARGS__); } +#define sRInfo(pReceiver, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotReceiverLog("SYN INFO ", DEBUG_INFO, 255, pReceiver, __VA_ARGS__); } +#define sRDebug(pReceiver, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotReceiverLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, pReceiver, __VA_ARGS__); } +#define sRTrace(pReceiver, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotReceiverLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, pReceiver, __VA_ARGS__); } // clang-format on diff --git a/source/libs/tdb/src/inc/tdbOs.h b/source/libs/tdb/src/inc/tdbOs.h index cd2d4ce57a..c7c282a7d8 100644 --- a/source/libs/tdb/src/inc/tdbOs.h +++ b/source/libs/tdb/src/inc/tdbOs.h @@ -30,12 +30,12 @@ extern "C" { // clang-format off extern int32_t tdbDebugFlag; -#define tdbFatal(...) do { if (tdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tdbError(...) do { if (tdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tdbWarn(...) do { if (tdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tdbInfo(...) do { if (tdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tdbDebug(...) do { if (tdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB ", DEBUG_DEBUG, tdbDebugFlag, __VA_ARGS__); }} while(0) -#define tdbTrace(...) do { if (tdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB ", DEBUG_TRACE, tdbDebugFlag, __VA_ARGS__); }} while(0) +#define tdbFatal(...) do { if (tdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tdbError(...) do { if (tdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tdbWarn(...) do { if (tdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tdbInfo(...) do { if (tdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tdbDebug(...) do { if (tdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB DEBUG ", DEBUG_DEBUG, tdbDebugFlag, __VA_ARGS__); }} while(0) +#define tdbTrace(...) do { if (tdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB TRACE ", DEBUG_TRACE, tdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on // For memory ----------------- diff --git a/source/libs/tfs/inc/tfsInt.h b/source/libs/tfs/inc/tfsInt.h index 9b4b29963e..11ee4bdf43 100644 --- a/source/libs/tfs/inc/tfsInt.h +++ b/source/libs/tfs/inc/tfsInt.h @@ -31,12 +31,12 @@ extern "C" { // For debug purpose // clang-format off -#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS ", DEBUG_DEBUG, fsDebugFlag, __VA_ARGS__); }} -#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS ", DEBUG_TRACE, fsDebugFlag, __VA_ARGS__); }} +#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS DEBUG ", DEBUG_DEBUG, fsDebugFlag, __VA_ARGS__); }} +#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS TRACE ", DEBUG_TRACE, fsDebugFlag, __VA_ARGS__); }} // clang-format on typedef struct { diff --git a/source/libs/transport/inc/transLog.h b/source/libs/transport/inc/transLog.h index ec71bbefae..8b8cc3ae72 100644 --- a/source/libs/transport/inc/transLog.h +++ b/source/libs/transport/inc/transLog.h @@ -26,10 +26,10 @@ extern "C" { #define tFatal(...) { if (rpcDebugFlag & DEBUG_FATAL) { taosPrintLog("RPC FATAL ", DEBUG_FATAL, rpcDebugFlag, __VA_ARGS__); }} #define tError(...) { if (rpcDebugFlag & DEBUG_ERROR ){ taosPrintLog("RPC ERROR ", DEBUG_ERROR, rpcDebugFlag, __VA_ARGS__); }} -#define tWarn(...) { if (rpcDebugFlag & DEBUG_WARN) { taosPrintLog("RPC WARN ", DEBUG_WARN, rpcDebugFlag, __VA_ARGS__); }} -#define tInfo(...) { if (rpcDebugFlag & DEBUG_INFO) { taosPrintLog("RPC ", DEBUG_INFO, rpcDebugFlag, __VA_ARGS__); }} -#define tDebug(...) { if (rpcDebugFlag & DEBUG_DEBUG) { taosPrintLog("RPC ", DEBUG_DEBUG, rpcDebugFlag, __VA_ARGS__); }} -#define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} +#define tWarn(...) { if (rpcDebugFlag & DEBUG_WARN) { taosPrintLog("RPC WARN ", DEBUG_WARN, rpcDebugFlag, __VA_ARGS__); }} +#define tInfo(...) { if (rpcDebugFlag & DEBUG_INFO) { taosPrintLog("RPC INFO ", DEBUG_INFO, rpcDebugFlag, __VA_ARGS__); }} +#define tDebug(...) { if (rpcDebugFlag & DEBUG_DEBUG) { taosPrintLog("RPC DEBUG ", DEBUG_DEBUG, rpcDebugFlag, __VA_ARGS__); }} +#define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC TRACE ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} #define tDump(x, y) { if (rpcDebugFlag & DEBUG_DUMP) { taosDumpData((unsigned char *)x, y); } } #define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) diff --git a/source/libs/wal/inc/walInt.h b/source/libs/wal/inc/walInt.h index 3bc69a6393..304cb52870 100644 --- a/source/libs/wal/inc/walInt.h +++ b/source/libs/wal/inc/walInt.h @@ -30,10 +30,10 @@ extern "C" { // clang-format off #define wFatal(...) { if (wDebugFlag & DEBUG_FATAL) { taosPrintLog("WAL FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define wError(...) { if (wDebugFlag & DEBUG_ERROR) { taosPrintLog("WAL ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define wWarn(...) { if (wDebugFlag & DEBUG_WARN) { taosPrintLog("WAL WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define wInfo(...) { if (wDebugFlag & DEBUG_INFO) { taosPrintLog("WAL ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define wDebug(...) { if (wDebugFlag & DEBUG_DEBUG) { taosPrintLog("WAL ", DEBUG_DEBUG, wDebugFlag, __VA_ARGS__); }} -#define wTrace(...) { if (wDebugFlag & DEBUG_TRACE) { taosPrintLog("WAL ", DEBUG_TRACE, wDebugFlag, __VA_ARGS__); }} +#define wWarn(...) { if (wDebugFlag & DEBUG_WARN) { taosPrintLog("WAL WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define wInfo(...) { if (wDebugFlag & DEBUG_INFO) { taosPrintLog("WAL INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define wDebug(...) { if (wDebugFlag & DEBUG_DEBUG) { taosPrintLog("WAL DEBUG ", DEBUG_DEBUG, wDebugFlag, __VA_ARGS__); }} +#define wTrace(...) { if (wDebugFlag & DEBUG_TRACE) { taosPrintLog("WAL TRACE ", DEBUG_TRACE, wDebugFlag, __VA_ARGS__); }} // clang-format on // meta section begin diff --git a/source/util/src/ttimer.c b/source/util/src/ttimer.c index ec300c5206..a6527ccbec 100644 --- a/source/util/src/ttimer.c +++ b/source/util/src/ttimer.c @@ -20,42 +20,14 @@ #include "tlog.h" #include "tsched.h" -#define tmrFatal(...) \ - { \ - if (tmrDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("TMR FATAL ", DEBUG_FATAL, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrError(...) \ - { \ - if (tmrDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("TMR ERROR ", DEBUG_ERROR, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrWarn(...) \ - { \ - if (tmrDebugFlag & DEBUG_WARN) { \ - taosPrintLog("TMR WARN ", DEBUG_WARN, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrInfo(...) \ - { \ - if (tmrDebugFlag & DEBUG_INFO) { \ - taosPrintLog("TMR ", DEBUG_INFO, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrDebug(...) \ - { \ - if (tmrDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("TMR ", DEBUG_DEBUG, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrTrace(...) \ - { \ - if (tmrDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("TMR ", DEBUG_TRACE, tmrDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define tmrFatal(...) { if (tmrDebugFlag & DEBUG_FATAL) { taosPrintLog("TMR FATAL ", DEBUG_FATAL, tmrDebugFlag, __VA_ARGS__); }} +#define tmrError(...) { if (tmrDebugFlag & DEBUG_ERROR) { taosPrintLog("TMR ERROR ", DEBUG_ERROR, tmrDebugFlag, __VA_ARGS__); }} +#define tmrWarn(...) { if (tmrDebugFlag & DEBUG_WARN) { taosPrintLog("TMR WARN ", DEBUG_WARN, tmrDebugFlag, __VA_ARGS__); }} +#define tmrInfo(...) { if (tmrDebugFlag & DEBUG_INFO) { taosPrintLog("TMR INFO ", DEBUG_INFO, tmrDebugFlag, __VA_ARGS__); }} +#define tmrDebug(...) { if (tmrDebugFlag & DEBUG_DEBUG) { taosPrintLog("TMR DEBUG ", DEBUG_DEBUG, tmrDebugFlag, __VA_ARGS__); }} +#define tmrTrace(...) { if (tmrDebugFlag & DEBUG_TRACE) { taosPrintLog("TMR TRACE ", DEBUG_TRACE, tmrDebugFlag, __VA_ARGS__); }} +// clang-format on #define TIMER_STATE_WAITING 0 #define TIMER_STATE_EXPIRED 1 diff --git a/utils/tsim/inc/simInt.h b/utils/tsim/inc/simInt.h index 0ad0bfdea8..c2a032ab68 100644 --- a/utils/tsim/inc/simInt.h +++ b/utils/tsim/inc/simInt.h @@ -59,42 +59,14 @@ extern "C" { #define FAILED_POSTFIX "" #endif -#define simFatal(...) \ - { \ - if (simDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("SIM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \ - } \ - } -#define simError(...) \ - { \ - if (simDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("SIM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \ - } \ - } -#define simWarn(...) \ - { \ - if (simDebugFlag & DEBUG_WARN) { \ - taosPrintLog("SIM WARN ", DEBUG_WARN, 255, __VA_ARGS__); \ - } \ - } -#define simInfo(...) \ - { \ - if (simDebugFlag & DEBUG_INFO) { \ - taosPrintLog("SIM ", DEBUG_INFO, 255, __VA_ARGS__); \ - } \ - } -#define simDebug(...) \ - { \ - if (simDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("SIM ", DEBUG_DEBUG, simDebugFlag, __VA_ARGS__); \ - } \ - } -#define simTrace(...) \ - { \ - if (simDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("SIM ", DEBUG_TRACE, simDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define simFatal(...) { if (simDebugFlag & DEBUG_FATAL) { taosPrintLog("SIM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define simError(...) { if (simDebugFlag & DEBUG_ERROR) { taosPrintLog("SIM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define simWarn(...) { if (simDebugFlag & DEBUG_WARN) { taosPrintLog("SIM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define simInfo(...) { if (simDebugFlag & DEBUG_INFO) { taosPrintLog("SIM INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define simDebug(...) { if (simDebugFlag & DEBUG_DEBUG) { taosPrintLog("SIM DEBUG ", DEBUG_DEBUG, simDebugFlag, __VA_ARGS__); }} +#define simTrace(...) { if (simDebugFlag & DEBUG_TRACE) { taosPrintLog("SIM TRACE ", DEBUG_TRACE, simDebugFlag, __VA_ARGS__); }} +// clang-format on enum { SIM_SCRIPT_TYPE_MAIN, SIM_SCRIPT_TYPE_BACKGROUND }; From 764145cead5c7c7d696a74215cea7669abc846f9 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 11:34:50 +0800 Subject: [PATCH 02/34] enh: adjust some logs --- source/libs/catalog/src/catalog.c | 2 +- source/libs/catalog/src/ctgCache.c | 28 ++++++++++++------------ source/libs/catalog/src/ctgRemote.c | 34 ++++++++++++++--------------- source/libs/catalog/src/ctgRent.c | 2 +- source/libs/catalog/src/ctgUtil.c | 12 +++++----- source/libs/qcom/src/querymsg.c | 2 +- source/libs/qworker/src/qworker.c | 4 ++-- 7 files changed, 42 insertions(+), 42 deletions(-) diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 0355babbf0..27c008278f 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -1001,7 +1001,7 @@ int32_t catalogGetDBVgVersion(SCatalog* pCtg, const char* dbFName, int32_t* vers ctgReleaseVgInfoToCache(pCtg, dbCache); - ctgDebug("Got db vgVersion from cache, dbFName:%s, vgVersion:%d", dbFName, *version); + ctgDebug("get db vgVersion from cache, dbFName:%s, vgVersion:%d", dbFName, *version); CTG_API_LEAVE(TSDB_CODE_SUCCESS); diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index c05f4704aa..761ec82dbf 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -244,7 +244,7 @@ int32_t ctgAcquireVgInfoFromCache(SCatalog *pCtg, const char *dbFName, SCtgDBCac CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("Got db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); return TSDB_CODE_SUCCESS; @@ -327,7 +327,7 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("Got db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); tbCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == tbCache) { @@ -557,7 +557,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt (*pTableMeta)->schemaExt = NULL; } - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); + ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); return TSDB_CODE_SUCCESS; } @@ -577,7 +577,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt taosHashRelease(dbCache->tbCache, tbCache); *pTb = NULL; - ctgDebug("Got ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", ctx->pName->tname, + ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", ctx->pName->tname, ctx->tbInfo.tbType, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, ctx->tbInfo.suid, &tbCache)); @@ -632,7 +632,7 @@ int32_t ctgReadTbMetaFromCache(SCatalog *pCtg, SCtgTbMetaCtx *ctx, STableMeta ** ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); + ctgDebug("get tb %s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); return TSDB_CODE_SUCCESS; @@ -669,7 +669,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, *sver = tbMeta->sversion; *tver = tbMeta->tversion; - ctgDebug("Got tb %s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, + ctgDebug("get tb %s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, dbFName, *tbType, *sver, *tver, *suid); ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); @@ -684,7 +684,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, taosHashRelease(dbCache->tbCache, tbCache); } - ctgDebug("Got ctb %s ver from cache, will continue to get its stb ver, dbFName:%s", pTableName->tname, dbFName); + ctgDebug("get ctb %s ver from cache, will continue to get its stb ver, dbFName:%s", pTableName->tname, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, *suid, &tbCache)); if (NULL == tbCache) { @@ -711,7 +711,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, + ctgDebug("get tb %s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, dbFName); return TSDB_CODE_SUCCESS; @@ -729,7 +729,7 @@ int32_t ctgReadTbTypeFromCache(SCatalog *pCtg, char *dbFName, char *tbName, int3 *tbType = tbCache->pMeta->tableType; ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); + ctgDebug("get tb %s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); return TSDB_CODE_SUCCESS; } @@ -835,7 +835,7 @@ int32_t ctgChkAuthFromCache(SCatalog *pCtg, SUserAuthInfo *pReq, bool tbNotExist *inCache = true; - ctgDebug("Got user from cache, user:%s", pReq->user); + ctgDebug("get user from cache, user:%s", pReq->user); CTG_CACHE_HIT_INC(CTG_CI_USER, 1); SCtgAuthReq req = {0}; @@ -3517,7 +3517,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3542,7 +3542,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3564,7 +3564,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", pName->tname, + ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", pName->tname, nctx.tbInfo.tbType, dbFName); char *stName = taosHashAcquire(dbCache->stbCache, &pTableMeta->suid, sizeof(pTableMeta->suid)); @@ -3877,7 +3877,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC CTG_UNLOCK(CTG_READ, &pCache->viewLock); taosHashRelease(dbCache->viewCache, pCache); - ctgDebug("Got view %s meta from cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("get view %s meta from cache, dbFName:%s", pName->tname, dbFName); res.pRes = pViewMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index ec93b7dee2..98f60ec12c 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -148,7 +148,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got qnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(out)); + qDebug("get qnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(out)); break; } case TDMT_MND_DNODE_LIST: { @@ -163,7 +163,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got dnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(*(SArray**)out)); + qDebug("get dnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(*(SArray**)out)); break; } case TDMT_MND_USE_DB: { @@ -178,7 +178,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got db vgInfo from mnode, dbFName:%s", target); + qDebug("get db vgInfo from mnode, dbFName:%s", target); break; } case TDMT_MND_GET_DB_CFG: { @@ -193,7 +193,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got db cfg from mnode, dbFName:%s", target); + qDebug("get db cfg from mnode, dbFName:%s", target); break; } case TDMT_MND_GET_INDEX: { @@ -208,7 +208,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got index from mnode, indexName:%s", target); + qDebug("get index from mnode, indexName:%s", target); break; } case TDMT_MND_GET_TABLE_INDEX: { @@ -223,7 +223,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table index from mnode, tbFName:%s", target); + qDebug("get table index from mnode, tbFName:%s", target); break; } case TDMT_MND_RETRIEVE_FUNC: { @@ -238,7 +238,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got udf from mnode, funcName:%s", target); + qDebug("get udf from mnode, funcName:%s", target); break; } case TDMT_MND_GET_USER_AUTH: { @@ -253,7 +253,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got user auth from mnode, user:%s", target); + qDebug("get user auth from mnode, user:%s", target); break; } case TDMT_MND_TABLE_META: { @@ -274,7 +274,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from mnode, tbFName:%s", target); + qDebug("get table meta from mnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_META: { @@ -295,7 +295,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from vnode, tbFName:%s", target); + qDebug("get table meta from vnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_NAME: { @@ -316,7 +316,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from vnode, tbFName:%s", target); + qDebug("get table meta from vnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_CFG: { @@ -331,7 +331,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table cfg from vnode, tbFName:%s", target); + qDebug("get table cfg from vnode, tbFName:%s", target); break; } case TDMT_MND_TABLE_CFG: { @@ -346,7 +346,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got stb cfg from mnode, tbFName:%s", target); + qDebug("get stb cfg from mnode, tbFName:%s", target); break; } case TDMT_MND_SERVER_VERSION: { @@ -361,7 +361,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got svr ver from mnode"); + qDebug("get svr ver from mnode"); break; } case TDMT_MND_VIEW_META: { @@ -380,7 +380,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got view-meta from mnode, viewFName:%s", target); + qDebug("get view-meta from mnode, viewFName:%s", target); break; } case TDMT_MND_GET_TSMA: @@ -398,7 +398,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table tsma from mnode, tbFName:%s", target); + qDebug("get table tsma from mnode, tbFName:%s", target); break; } case TDMT_VND_GET_STREAM_PROGRESS: { @@ -414,7 +414,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, } default: if (TSDB_CODE_SUCCESS != rspCode) { - qError("Got error rsp, error:%s", tstrerror(rspCode)); + qError("get error rsp, error:%s", tstrerror(rspCode)); CTG_ERR_RET(rspCode); } diff --git a/source/libs/catalog/src/ctgRent.c b/source/libs/catalog/src/ctgRent.c index 7dff496eb0..bb077f2c84 100755 --- a/source/libs/catalog/src/ctgRent.c +++ b/source/libs/catalog/src/ctgRent.c @@ -194,7 +194,7 @@ int32_t ctgMetaRentGetImpl(SCtgRentMgmt *mgmt, void **res, uint32_t *num, int32_ *num = (uint32_t)metaNum; - qDebug("Got %d meta from rent, type:%d", (int32_t)metaNum, mgmt->type); + qDebug("get %d meta from rent, type:%d", (int32_t)metaNum, mgmt->type); _return: diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 0ade1be0d6..c96fef5798 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -1196,7 +1196,7 @@ int32_t ctgGenerateVgList(SCatalog* pCtg, SHashObj* vgHash, SArray** pList, cons *pList = vgList; - ctgDebug("Got vgList from cache, vgNum:%d", vgNum); + ctgDebug("get vgList from cache, vgNum:%d", vgNum); return TSDB_CODE_SUCCESS; @@ -1293,7 +1293,7 @@ int32_t ctgGetVgInfoFromHashValue(SCatalog* pCtg, SEpSet* pMgmtEps, SDBVgInfo* d *pVgroup = *vgInfo; - ctgDebug("Got tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1327,7 +1327,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR TAOS_MEMCPY(vgInfo, &mgmtInfo, sizeof(mgmtInfo)); - ctgDebug("Got tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, + ctgDebug("get tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); if (update) { @@ -1376,7 +1376,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR TAOS_MEMCPY(vgInfo, pSrcVg, sizeof(*pSrcVg)); - ctgDebug("Got tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, + ctgDebug("get tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); if (update) { @@ -1437,7 +1437,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR *pNewVg = *vgInfo; - ctgDebug("Got tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1496,7 +1496,7 @@ int32_t ctgGetVgIdsFromHashValue(SCatalog* pCtg, SDBVgInfo* dbInfo, char* dbFNam vgId[i] = vgInfo->vgId; - ctgDebug("Got tb %s vgId:%d", tbFullName, vgInfo->vgId); + ctgDebug("get tb %s vgId:%d", tbFullName, vgInfo->vgId); } CTG_RET(code); diff --git a/source/libs/qcom/src/querymsg.c b/source/libs/qcom/src/querymsg.c index 0ee61726e3..268e4b8259 100644 --- a/source/libs/qcom/src/querymsg.c +++ b/source/libs/qcom/src/querymsg.c @@ -45,7 +45,7 @@ int32_t queryBuildUseDbOutput(SUseDbOutput *pOut, SUseDbRsp *usedbRsp) { pOut->dbVgroup->hashSuffix = usedbRsp->hashSuffix; pOut->dbVgroup->stateTs = usedbRsp->stateTs; - qDebug("Got %d vgroup for db %s, vgVersion:%d, stateTs:%" PRId64, usedbRsp->vgNum, usedbRsp->db, usedbRsp->vgVersion, + qDebug("get %d vgroup for db %s, vgVersion:%d, stateTs:%" PRId64, usedbRsp->vgNum, usedbRsp->db, usedbRsp->vgVersion, usedbRsp->stateTs); if (usedbRsp->vgNum <= 0) { diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index 1df8dcda95..2b66db772a 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -339,8 +339,8 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen, break; } - // Got data from sink - QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64 "", len); + // get data from sink + QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64, len); *dataLen += len + PAYLOAD_PREFIX_LEN; *pRawDataLen += rawLen + PAYLOAD_PREFIX_LEN; From e97b5cf4c1c26bc0f5ccf5474a9c3664b37cfe3c Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 14:26:40 +0800 Subject: [PATCH 03/34] enh: adjust log format --- source/client/src/clientEnv.c | 6 ++-- source/client/src/clientImpl.c | 42 +++++++++++----------- source/client/src/clientMain.c | 18 +++++----- source/client/src/clientRawBlockWrite.c | 2 +- source/client/src/clientTmq.c | 14 ++++---- source/dnode/mgmt/node_util/inc/dmUtil.h | 12 +++---- source/dnode/mnode/impl/inc/mndInt.h | 12 +++---- source/dnode/vnode/src/inc/vnd.h | 12 +++---- source/dnode/vnode/src/tq/tq.c | 6 ++-- source/dnode/vnode/src/tq/tqRead.c | 4 +-- source/dnode/vnode/src/tq/tqUtil.c | 4 +-- source/dnode/vnode/src/tqCommon/tqCommon.c | 2 +- source/libs/catalog/src/catalog.c | 2 +- source/libs/catalog/src/ctgAsync.c | 2 +- source/libs/catalog/src/ctgCache.c | 22 ++++++------ source/libs/catalog/src/ctgRemote.c | 2 +- source/libs/catalog/src/ctgUtil.c | 6 ++-- source/libs/nodes/inc/nodesUtil.h | 12 +++---- source/libs/parser/inc/parUtil.h | 12 +++---- source/libs/parser/src/parInsertSql.c | 4 +-- source/libs/qworker/inc/qwInt.h | 20 +++++------ source/libs/qworker/src/qwDbg.c | 2 +- source/libs/scheduler/inc/schInt.h | 14 ++++---- source/libs/scheduler/src/schJob.c | 2 +- source/libs/scheduler/src/schRemote.c | 4 +-- source/libs/scheduler/src/schTask.c | 8 ++--- source/libs/stream/src/streamCheckStatus.c | 2 +- source/libs/stream/src/streamDispatch.c | 2 +- source/libs/transport/inc/transLog.h | 12 +++---- source/libs/transport/src/transCli.c | 4 +-- 30 files changed, 133 insertions(+), 133 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 11bdb16eca..29d8e2614f 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -94,7 +94,7 @@ static int32_t registerRequest(SRequestObj *pRequest, STscObj *pTscObj) { int32_t total = atomic_add_fetch_64((int64_t *)&pSummary->totalRequests, 1); int32_t currentInst = atomic_add_fetch_64((int64_t *)&pSummary->currentRequests, 1); tscDebug("0x%" PRIx64 " new Request from connObj:0x%" PRIx64 - ", current:%d, app current:%d, total:%d,QID:0x%" PRIx64, + ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, pRequest->self, pRequest->pTscObj->id, num, currentInst, total, pRequest->requestId); } @@ -255,7 +255,7 @@ static void deregisterRequest(SRequestObj *pRequest) { int32_t reqType = SLOW_LOG_TYPE_OTHERS; int64_t duration = taosGetTimestampUs() - pRequest->metric.start; - tscDebug("0x%" PRIx64 " free Request from connObj: 0x%" PRIx64 ",QID:0x%" PRIx64 + tscDebug("0x%" PRIx64 " free Request from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 " elapsed:%.2f ms, " "current:%d, app current:%d", pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst); @@ -299,7 +299,7 @@ static void deregisterRequest(SRequestObj *pRequest) { checkSlowLogExceptDb(pRequest, pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogExceptDb)) { (void)atomic_add_fetch_64((int64_t *)&pActivity->numOfSlowQueries, 1); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogScope & reqType) { - taosPrintSlowLog("PID:%d, Conn:%u,QID:0x%" PRIx64 ", Start:%" PRId64 " us, Duration:%" PRId64 "us, SQL:%s", + taosPrintSlowLog("PID:%d, Conn:%u, QID:0x%" PRIx64 ", Start:%" PRId64 "us, Duration:%" PRId64 "us, SQL:%s", taosGetPId(), pTscObj->connId, pRequest->requestId, pRequest->metric.start, duration, pRequest->sqlstr); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsEnableMonitor) { diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index c2a199e9c1..338290433e 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -245,7 +245,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, int32_t err = taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self, sizeof((*pRequest)->self)); if (err) { - tscError("%" PRId64 " failed to add to request container,QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", + tscError("%" PRId64 " failed to add to request container, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -256,7 +256,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, if (tsQueryUseNodeAllocator && !qIsInsertValuesSql((*pRequest)->sqlstr, (*pRequest)->sqlLen)) { if (TSDB_CODE_SUCCESS != nodesCreateAllocator((*pRequest)->requestId, tsQueryNodeChunkSize, &((*pRequest)->allocatorRefId))) { - tscError("%" PRId64 " failed to create node allocator,QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, + tscError("%" PRId64 " failed to create node allocator, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -264,7 +264,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, } } - tscDebugL("0x%" PRIx64 " SQL: %s,QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); + tscDebugL("0x%" PRIx64 " SQL:%s, QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } @@ -381,10 +381,10 @@ void asyncExecLocalCmd(SRequestObj* pRequest, SQuery* pQuery) { if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("0x%" PRIx64 " fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); } @@ -1030,7 +1030,7 @@ int32_t handleQueryExecRsp(SRequestObj* pRequest) { break; } default: - tscError("0x%" PRIx64 ", invalid exec result for request type %d,QID:0x%" PRIx64, pRequest->self, pRequest->type, + tscError("0x%" PRIx64 ", invalid exec result for request type %d, QID:0x%" PRIx64, pRequest->self, pRequest->type, pRequest->requestId); code = TSDB_CODE_APP_ERROR; } @@ -1075,7 +1075,7 @@ void returnToUser(SRequestObj* pRequest) { (void)releaseRequest(pRequest->relation.userRefId); return; } else { - tscError("0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.userRefId, pRequest->requestId); } } @@ -1146,7 +1146,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { SSDataBlock* pBlock = NULL; pRequest->code = createResultBlock(res, rowNum, &pBlock); if (TSDB_CODE_SUCCESS != pRequest->code) { - tscError("0x%" PRIx64 ", create result block failed,QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, + tscError("0x%" PRIx64 ", create result block failed, QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, tstrerror(pRequest->code)); returnToUser(pRequest); return; @@ -1157,7 +1157,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { continuePostSubQuery(pNextReq, pBlock); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } @@ -1176,7 +1176,7 @@ void handlePostSubQuery(SSqlCallbackWrapper* pWrapper) { continuePostSubQuery(pNextReq, NULL); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } } @@ -1208,14 +1208,14 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { } taosMemoryFree(pResult); - tscDebug("0x%" PRIx64 " enter scheduler exec cb, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscDebug("0x%" PRIx64 " enter scheduler exec cb, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); if (code != TSDB_CODE_SUCCESS && NEED_CLIENT_HANDLE_ERROR(code) && pRequest->sqlstr != NULL) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%s, tryCount:%d,QID:0x%" PRIx64, pRequest->self, + tscDebug("0x%" PRIx64 " client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->retry, pRequest->requestId); if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("0x%" PRIx64 " remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } restartAsyncQuery(pRequest, code); return; @@ -1224,7 +1224,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type)); if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("0x%" PRIx64 " remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } } @@ -1322,7 +1322,7 @@ void launchQueryImpl(SRequestObj* pRequest, SQuery* pQuery, bool keepQuery, void if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { int ret = removeMeta(pRequest->pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type)); if (TSDB_CODE_SUCCESS != ret) { - tscError("0x%" PRIx64 " remove meta failed,code:%d,QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); + tscError("0x%" PRIx64 " remove meta failed,code:%d, QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); } } @@ -1659,7 +1659,7 @@ int32_t taosConnectImpl(const char* user, const char* auth, const char* db, __ta *pTscObj = NULL; return terrno; } else { - tscDebug("0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p,QID:0x%" PRIx64, (*pTscObj)->id, + tscDebug("0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, (*pTscObj)->connId, (*pTscObj)->pAppInfo->pTransporter, pRequest->requestId); destroyRequest(pRequest); } @@ -1789,7 +1789,7 @@ int32_t doProcessMsgFromServerImpl(SRpcMsg* pMsg, SEpSet* pEpSet) { char tbuf[40] = {0}; TRACE_TO_STR(trace, tbuf); - tscDebug("processMsgFromServer handle %p, message: %s, size:%d, code: %s,QID:%s", pMsg->info.handle, + tscDebug("processMsgFromServer handle %p, message: %s, size:%d, code: %s, QID:%s", pMsg->info.handle, TMSG_INFO(pMsg->msgType), pMsg->contLen, tstrerror(pMsg->code), tbuf); if (pSendInfo->requestObjRefId != 0) { @@ -2000,7 +2000,7 @@ void* doFetchRows(SRequestObj* pRequest, bool setupOneRowPtr, bool convertUcs4) return NULL; } - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResInfo->numOfRows, pResInfo->totalRows, pResInfo->completed, pRequest->requestId); STscObj* pTscObj = pRequest->pTscObj; @@ -3024,7 +3024,7 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { SReqResultInfo* pResultInfo = &pRequest->body.resInfo; - tscDebug("0x%" PRIx64 " enter scheduler fetch cb, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscDebug("0x%" PRIx64 " enter scheduler fetch cb, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); pResultInfo->pData = pResult; @@ -3047,10 +3047,10 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { setQueryResultFromRsp(pResultInfo, (const SRetrieveTableRsp*)pResultInfo->pData, pResultInfo->convertUcs4); if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), + tscError("0x%" PRIx64 " fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 184f73c664..cf253a24ca 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -1157,7 +1157,7 @@ static void doAsyncQueryFromAnalyse(SMetaData *pResultMeta, void *param, int32_t SRequestObj *pRequest = pWrapper->pRequest; SQuery *pQuery = pRequest->pQuery; - qDebug("0x%" PRIx64 " start to semantic analysis,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + qDebug("0x%" PRIx64 " start to semantic analysis, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); int64_t analyseStart = taosGetTimestampUs(); pRequest->metric.ctgCostUs = analyseStart - pRequest->metric.ctgStart; @@ -1276,14 +1276,14 @@ void handleQueryAnslyseRes(SSqlCallbackWrapper *pWrapper, SMetaData *pResultMeta pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d,QID:0x%" PRIx64, + tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); restartAsyncQuery(pRequest, code); return; } // return to app directly - tscError("0x%" PRIx64 " error occurs, code:%s, return to user app,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("0x%" PRIx64 " error occurs, code:%s, return to user app, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); pRequest->code = code; returnToUser(pRequest); @@ -1333,7 +1333,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c SQuery *pQuery = pRequest->pQuery; pRequest->metric.ctgCostUs += taosGetTimestampUs() - pRequest->metric.ctgStart; - qDebug("0x%" PRIx64 " start to continue parse,QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, + qDebug("0x%" PRIx64 " start to continue parse, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, tstrerror(code)); if (code == TSDB_CODE_SUCCESS) { @@ -1346,7 +1346,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1363,7 +1363,7 @@ void continueInsertFromCsv(SSqlCallbackWrapper *pWrapper, SRequestObj *pRequest) } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1484,7 +1484,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1492,11 +1492,11 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d,QID:0x%" PRIx64, + tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); code = refreshMeta(pRequest->pTscObj, pRequest); if (code != 0) { - tscWarn("0x%" PRIx64 " refresh meta failed, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscWarn("0x%" PRIx64 " refresh meta failed, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); } pRequest->prevCode = code; diff --git a/source/client/src/clientRawBlockWrite.c b/source/client/src/clientRawBlockWrite.c index cf40e109e7..b43507c2a6 100644 --- a/source/client/src/clientRawBlockWrite.c +++ b/source/client/src/clientRawBlockWrite.c @@ -47,7 +47,7 @@ } \ } while (0) -#define LOG_ID_TAG "connId:0x%" PRIx64 ",QID:0x%" PRIx64 +#define LOG_ID_TAG "connId:0x%" PRIx64 ", QID:0x%" PRIx64 #define LOG_ID_VALUE *(int64_t*)taos, pRequest->requestId #define TMQ_META_VERSION "1.0" diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index a11f351a1e..5052681279 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1474,7 +1474,7 @@ static int32_t askEp(tmq_t* pTmq, void* param, bool sync, bool updateEpSet) { pParam = NULL; SEpSet epSet = getEpSet_s(&pTmq->pTscObj->pAppInfo->mgmtEp); - tqDebugC("consumer:0x%" PRIx64 " ask ep from mnode,QID:0x%" PRIx64, pTmq->consumerId, sendInfo->requestId); + tqDebugC("consumer:0x%" PRIx64 " ask ep from mnode, QID:0x%" PRIx64, pTmq->consumerId, sendInfo->requestId); code = asyncSendMsgToServer(pTmq->pTscObj->pAppInfo->pTransporter, &epSet, NULL, sendInfo); END: @@ -2102,7 +2102,7 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { goto END; } rspType = ((SMqRspHead*)pMsg->pData)->mqMsgType; - tqDebugC("consumer:0x%" PRIx64 " recv poll rsp, vgId:%d, type %d(%s),QID:0x%" PRIx64, tmq->consumerId, vgId, rspType, tmqMsgTypeStr[rspType], requestId); + tqDebugC("consumer:0x%" PRIx64 " recv poll rsp, vgId:%d, type %d(%s), QID:0x%" PRIx64, tmq->consumerId, vgId, rspType, tmqMsgTypeStr[rspType], requestId); pRspWrapper->tmqRspType = rspType; pRspWrapper->pollRsp.reqId = requestId; @@ -2123,7 +2123,7 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { taosFreeQitem(pRspWrapper); tqErrorC("consumer:0x%" PRIx64 " put poll res into mqueue failed, code:%d", tmq->consumerId, code); } else { - tqDebugC("consumer:0x%" PRIx64 " put poll res into mqueue, type:%d(%s), vgId:%d, total in queue:%d,QID:0x%" PRIx64, + tqDebugC("consumer:0x%" PRIx64 " put poll res into mqueue, type:%d(%s), vgId:%d, total in queue:%d, QID:0x%" PRIx64, tmq ? tmq->consumerId : 0, rspType, tmqMsgTypeStr[rspType], vgId, taosQueueItemSize(tmq->mqueue), requestId); } } @@ -2297,7 +2297,7 @@ static int32_t doTmqPollImpl(tmq_t* pTmq, SMqClientTopic* pTopic, SMqClientVg* p char offsetFormatBuf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(offsetFormatBuf, tListLen(offsetFormatBuf), &pVg->offsetInfo.endOffset); code = asyncSendMsgToServer(pTmq->pTscObj->pAppInfo->pTransporter, &pVg->epSet, NULL, sendInfo); - tqDebugC("consumer:0x%" PRIx64 " send poll to %s vgId:%d, code:%d, epoch %d, req:%s,QID:0x%" PRIx64, pTmq->consumerId, + tqDebugC("consumer:0x%" PRIx64 " send poll to %s vgId:%d, code:%d, epoch %d, req:%s, QID:0x%" PRIx64, pTmq->consumerId, pTopic->topicName, pVg->vgId, code, pTmq->epoch, offsetFormatBuf, req.reqId); TSDB_CHECK_CODE(code, lino, END); @@ -2523,7 +2523,7 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ tFormatOffset(buf, TSDB_OFFSET_LEN, &pollRspWrapper->rspOffset); if (pollRspWrapper->dataRsp.blockNum == 0) { tqDebugC("consumer:0x%" PRIx64 " empty block received, vgId:%d, offset:%s, vg total:%" PRId64 - ", total:%" PRId64 ",QID:0x%" PRIx64, + ", total:%" PRId64 ", QID:0x%" PRIx64, tmq->consumerId, pVg->vgId, buf, pVg->numOfRows, tmq->totalRows, pollRspWrapper->reqId); pVg->emptyBlockReceiveTs = taosGetTimestampMs(); } else { @@ -2551,7 +2551,7 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ } } tqDebugC("consumer:0x%" PRIx64 " process poll rsp, vgId:%d, offset:%s, blocks:%d, rows:%" PRId64 - ", vg total:%" PRId64 ", total:%" PRId64 ",QID:0x%" PRIx64, + ", vg total:%" PRId64 ", total:%" PRId64 ", QID:0x%" PRIx64, tmq->consumerId, pVg->vgId, buf, pRspObj->dataRsp.blockNum, numOfRows, pVg->numOfRows, tmq->totalRows, pollRspWrapper->reqId); } @@ -3551,7 +3551,7 @@ int32_t tmq_get_topic_assignment(tmq_t* tmq, const char* pTopicName, tmq_topic_a char offsetFormatBuf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(offsetFormatBuf, tListLen(offsetFormatBuf), &pClientVg->offsetInfo.beginOffset); - tqInfoC("consumer:0x%" PRIx64 " %s retrieve wal info vgId:%d, epoch %d, req:%s,QID:0x%" PRIx64, tmq->consumerId, + tqInfoC("consumer:0x%" PRIx64 " %s retrieve wal info vgId:%d, epoch %d, req:%s, QID:0x%" PRIx64, tmq->consumerId, pTopic->topicName, pClientVg->vgId, tmq->epoch, offsetFormatBuf, req.reqId); code = asyncSendMsgToServer(tmq->pTscObj->pAppInfo->pTransporter, &pClientVg->epSet, NULL, sendInfo); if (code != 0) { diff --git a/source/dnode/mgmt/node_util/inc/dmUtil.h b/source/dnode/mgmt/node_util/inc/dmUtil.h index 1c96b0c239..fc880ec055 100644 --- a/source/dnode/mgmt/node_util/inc/dmUtil.h +++ b/source/dnode/mgmt/node_util/inc/dmUtil.h @@ -83,12 +83,12 @@ extern "C" { }\ } -#define dGFatal(param, ...) {if (dDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dFatal(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGError(param, ...) {if (dDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dError(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGWarn(param, ...) {if (dDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dWarn(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGInfo(param, ...) {if (dDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dInfo(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGDebug(param, ...) {if (dDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dDebug(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGTrace(param, ...) {if (dDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dTrace(param ",QID:%s", __VA_ARGS__, buf);}} +#define dGFatal(param, ...) {if (dDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dFatal(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGError(param, ...) {if (dDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dError(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGWarn(param, ...) {if (dDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dWarn(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGInfo(param, ...) {if (dDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dInfo(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGDebug(param, ...) {if (dDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dDebug(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGTrace(param, ...) {if (dDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dTrace(param ", QID:%s", __VA_ARGS__, buf);}} // clang-format on diff --git a/source/dnode/mnode/impl/inc/mndInt.h b/source/dnode/mnode/impl/inc/mndInt.h index ad95f719b2..8c85536276 100644 --- a/source/dnode/mnode/impl/inc/mndInt.h +++ b/source/dnode/mnode/impl/inc/mndInt.h @@ -42,12 +42,12 @@ extern "C" { #define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} #define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} -#define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGWarn(param, ...) { if (mDebugFlag & DEBUG_WARN){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mWarn (param ",QID:%s", __VA_ARGS__, buf);}} -#define mGInfo(param, ...) { if (mDebugFlag & DEBUG_INFO){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mInfo (param ",QID:%s", __VA_ARGS__, buf);}} -#define mGDebug(param, ...) { if (mDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mDebug(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGTrace(param, ...) { if (mDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mTrace(param ",QID:%s", __VA_ARGS__, buf);}} +#define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGWarn(param, ...) { if (mDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); mWarn (param ", QID:%s", __VA_ARGS__, buf);}} +#define mGInfo(param, ...) { if (mDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); mInfo (param ", QID:%s", __VA_ARGS__, buf);}} +#define mGDebug(param, ...) { if (mDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mDebug(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGTrace(param, ...) { if (mDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mTrace(param ", QID:%s", __VA_ARGS__, buf);}} // clang-format on #define SYSTABLE_SCH_TABLE_NAME_LEN ((TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE) diff --git a/source/dnode/vnode/src/inc/vnd.h b/source/dnode/vnode/src/inc/vnd.h index db48f8cfa3..850d0b036e 100644 --- a/source/dnode/vnode/src/inc/vnd.h +++ b/source/dnode/vnode/src/inc/vnd.h @@ -32,12 +32,12 @@ extern "C" { #define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND DEBUG ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) #define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND TRACE ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) -#define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGError(param, ...) do { if (vDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vError(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGWarn(param, ...) do { if (vDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vWarn(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGInfo(param, ...) do { if (vDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vInfo(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGDebug(param, ...) do { if (vDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vDebug(param ",QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGError(param, ...) do { if (vDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGWarn(param, ...) do { if (vDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGInfo(param, ...) do { if (vDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGDebug(param, ...) do { if (vDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) // clang-format on diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index b9de5dce52..5df4f852c2 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -202,7 +202,7 @@ void tqPushEmptyDataRsp(STqHandle* pHandle, int32_t vgId) { dataRsp.blockNum = 0; char buf[TSDB_OFFSET_LEN] = {0}; (void)tFormatOffset(buf, TSDB_OFFSET_LEN, &dataRsp.reqOffset); - tqInfo("tqPushEmptyDataRsp to consumer:0x%" PRIx64 " vgId:%d, offset:%s,QID:0x%" PRIx64, req.consumerId, vgId, buf, + tqInfo("tqPushEmptyDataRsp to consumer:0x%" PRIx64 " vgId:%d, offset:%s, QID:0x%" PRIx64, req.consumerId, vgId, buf, req.reqId); code = tqSendDataRsp(pHandle, pHandle->msg, &req, &dataRsp, TMQ_MSG_TYPE__POLL_DATA_RSP, vgId); @@ -225,7 +225,7 @@ int32_t tqSendDataRsp(STqHandle* pHandle, const SRpcMsg* pMsg, const SMqPollReq* (void)tFormatOffset(buf1, TSDB_OFFSET_LEN, &(pRsp->reqOffset)); (void)tFormatOffset(buf2, TSDB_OFFSET_LEN, &(pRsp->rspOffset)); - tqDebug("tmq poll vgId:%d consumer:0x%" PRIx64 " (epoch %d) start to send rsp, block num:%d, req:%s, rsp:%s,QID:0x%" PRIx64, + tqDebug("tmq poll vgId:%d consumer:0x%" PRIx64 " (epoch %d) start to send rsp, block num:%d, req:%s, rsp:%s, QID:0x%" PRIx64, vgId, pReq->consumerId, pReq->epoch, pRsp->blockNum, buf1, buf2, pReq->reqId); return tqDoSendDataRsp(&pMsg->info, pRsp, pReq->epoch, pReq->consumerId, type, sver, ever); @@ -477,7 +477,7 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) { char buf[TSDB_OFFSET_LEN] = {0}; (void)tFormatOffset(buf, TSDB_OFFSET_LEN, &reqOffset); - tqDebug("tmq poll: consumer:0x%" PRIx64 " (epoch %d), subkey %s, recv poll req vgId:%d, req:%s,QID:0x%" PRIx64, + tqDebug("tmq poll: consumer:0x%" PRIx64 " (epoch %d), subkey %s, recv poll req vgId:%d, req:%s, QID:0x%" PRIx64, consumerId, req.epoch, pHandle->subKey, vgId, buf, req.reqId); code = tqExtractDataForMq(pTq, pHandle, &req, pMsg); diff --git a/source/dnode/vnode/src/tq/tqRead.c b/source/dnode/vnode/src/tq/tqRead.c index ee705ed374..3cb03701f2 100644 --- a/source/dnode/vnode/src/tq/tqRead.c +++ b/source/dnode/vnode/src/tq/tqRead.c @@ -222,12 +222,12 @@ int32_t tqFetchLog(STQ* pTq, STqHandle* pHandle, int64_t* fetchOffset, uint64_t while (offset <= appliedVer) { if (walFetchHead(pHandle->pWalReader, offset) < 0) { tqDebug("tmq poll: consumer:0x%" PRIx64 ", (epoch %d) vgId:%d offset %" PRId64 - ", no more log to return,QID:0x%" PRIx64 " 0x%" PRIx64, + ", no more log to return, QID:0x%" PRIx64 " 0x%" PRIx64, pHandle->consumerId, pHandle->epoch, vgId, offset, reqId, id); goto END; } - tqDebug("vgId:%d, consumer:0x%" PRIx64 " taosx get msg ver %" PRId64 ", type: %s,QID:0x%" PRIx64 " 0x%" PRIx64, + tqDebug("vgId:%d, consumer:0x%" PRIx64 " taosx get msg ver %" PRId64 ", type: %s, QID:0x%" PRIx64 " 0x%" PRIx64, vgId, pHandle->consumerId, offset, TMSG_INFO(pHandle->pWalReader->pHead->head.msgType), reqId, id); if (pHandle->pWalReader->pHead->head.msgType == TDMT_VND_SUBMIT) { diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index bc8b8504c4..f92cd6d972 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -190,10 +190,10 @@ end: char buf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(buf, TSDB_OFFSET_LEN, &dataRsp.rspOffset); if (code != 0){ - tqError("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s,QID:0x%" PRIx64 " error msg:%s, line:%d", + tqError("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s, QID:0x%" PRIx64 " error msg:%s, line:%d", consumerId, pHandle->subKey, vgId, dataRsp.blockNum, buf, pRequest->reqId, tstrerror(code), lino); } else { - tqDebug("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s,QID:0x%" PRIx64 " success", + tqDebug("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s, QID:0x%" PRIx64 " success", consumerId, pHandle->subKey, vgId, dataRsp.blockNum, buf, pRequest->reqId); } diff --git a/source/dnode/vnode/src/tqCommon/tqCommon.c b/source/dnode/vnode/src/tqCommon/tqCommon.c index 0c4a3932b7..fe4b2ae8f1 100644 --- a/source/dnode/vnode/src/tqCommon/tqCommon.c +++ b/source/dnode/vnode/src/tqCommon/tqCommon.c @@ -461,7 +461,7 @@ int32_t tqStreamTaskProcessRetrieveReq(SStreamMeta* pMeta, SRpcMsg* pMsg) { } // enqueue - tqDebug("s-task:%s (vgId:%d level:%d) recv retrieve req from task:0x%x(vgId:%d),QID:0x%" PRIx64, pTask->id.idStr, + tqDebug("s-task:%s (vgId:%d level:%d) recv retrieve req from task:0x%x(vgId:%d), QID:0x%" PRIx64, pTask->id.idStr, pTask->pMeta->vgId, pTask->info.taskLevel, req.srcTaskId, req.srcNodeId, req.reqId); // if task is in ck status, set current ck failed diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 27c008278f..b70c018110 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -917,7 +917,7 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { if (ctg && (*ctg)) { *catalogHandle = *ctg; CTG_STAT_HIT_INC(CTG_CI_CLUSTER, 1); - qDebug("got catalog handle from cache, clusterId:0x%" PRIx64 ", CTG:%p", clusterId, *ctg); + qDebug("CTG:%p, get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 917d9feed6..03a2a342c7 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -873,7 +873,7 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const *job = taosMemoryCalloc(1, sizeof(SCtgJob)); if (NULL == *job) { - ctgError("failed to calloc, size:%d,QID:0x%" PRIx64, (int32_t)sizeof(SCtgJob), pConn->requestId); + ctgError("failed to calloc, size:%d, QID:0x%" PRIx64, (int32_t)sizeof(SCtgJob), pConn->requestId); CTG_ERR_RET(terrno); } diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index 761ec82dbf..cf397df3fb 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -280,14 +280,14 @@ int32_t ctgAcquireTbMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("tb %s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); goto _return; } *pDb = dbCache; *pTb = pCache; - ctgDebug("tb %s meta got in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType); @@ -338,14 +338,14 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_LOCK(CTG_READ, &tbCache->metaLock); if (NULL == tbCache->pMeta) { - ctgDebug("tb %s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); CTG_META_NHIT_INC(); goto _return; } *pTb = tbCache; - ctgDebug("tb %s meta got in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); CTG_META_HIT_INC(tbCache->pMeta->tableType); @@ -557,7 +557,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt (*pTableMeta)->schemaExt = NULL; } - ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); return TSDB_CODE_SUCCESS; } @@ -632,7 +632,7 @@ int32_t ctgReadTbMetaFromCache(SCatalog *pCtg, SCtgTbMetaCtx *ctx, STableMeta ** ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb %s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); + ctgDebug("get tb:%s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); return TSDB_CODE_SUCCESS; @@ -669,7 +669,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, *sver = tbMeta->sversion; *tver = tbMeta->tversion; - ctgDebug("get tb %s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, + ctgDebug("get tb:%s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, dbFName, *tbType, *sver, *tver, *suid); ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); @@ -711,7 +711,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb %s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, + ctgDebug("get tb:%s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, dbFName); return TSDB_CODE_SUCCESS; @@ -729,7 +729,7 @@ int32_t ctgReadTbTypeFromCache(SCatalog *pCtg, char *dbFName, char *tbName, int3 *tbType = tbCache->pMeta->tableType; ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb %s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); + ctgDebug("get tb:%s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); return TSDB_CODE_SUCCESS; } @@ -3517,7 +3517,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3542,7 +3542,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("get tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index 98f60ec12c..251f8b806c 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -562,7 +562,7 @@ int32_t ctgAsyncSendMsg(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob* pJob, CTG_ERR_JRET(code); } - ctgDebug("ctg req msg sent,QID:0x%" PRIx64 ", msg type:%d, %s", pJob->queryId, msgType, TMSG_INFO(msgType)); + ctgDebug("ctg req msg sent, QID:0x%" PRIx64 ", msg type:%d, %s", pJob->queryId, msgType, TMSG_INFO(msgType)); return TSDB_CODE_SUCCESS; _return: diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index c96fef5798..9fba087da3 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -1293,7 +1293,7 @@ int32_t ctgGetVgInfoFromHashValue(SCatalog* pCtg, SEpSet* pMgmtEps, SDBVgInfo* d *pVgroup = *vgInfo; - ctgDebug("get tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1437,7 +1437,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR *pNewVg = *vgInfo; - ctgDebug("get tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1496,7 +1496,7 @@ int32_t ctgGetVgIdsFromHashValue(SCatalog* pCtg, SDBVgInfo* dbInfo, char* dbFNam vgId[i] = vgInfo->vgId; - ctgDebug("get tb %s vgId:%d", tbFullName, vgInfo->vgId); + ctgDebug("get tb:%s vgId:%d", tbFullName, vgInfo->vgId); } CTG_RET(code); diff --git a/source/libs/nodes/inc/nodesUtil.h b/source/libs/nodes/inc/nodesUtil.h index e092c18834..320a20c533 100644 --- a/source/libs/nodes/inc/nodesUtil.h +++ b/source/libs/nodes/inc/nodesUtil.h @@ -20,12 +20,12 @@ extern "C" { #endif -#define nodesFatal(...) qFatal("NODES: " __VA_ARGS__) -#define nodesError(...) qError("NODES: " __VA_ARGS__) -#define nodesWarn(...) qWarn("NODES: " __VA_ARGS__) -#define nodesInfo(...) qInfo("NODES: " __VA_ARGS__) -#define nodesDebug(...) qDebug("NODES: " __VA_ARGS__) -#define nodesTrace(...) qTrace("NODES: " __VA_ARGS__) +#define nodesFatal(...) qFatal("NODES:" __VA_ARGS__) +#define nodesError(...) qError("NODES:" __VA_ARGS__) +#define nodesWarn(...) qWarn ("NODES:" __VA_ARGS__) +#define nodesInfo(...) qInfo ("NODES:" __VA_ARGS__) +#define nodesDebug(...) qDebug("NODES:" __VA_ARGS__) +#define nodesTrace(...) qTrace("NODES:" __VA_ARGS__) #define NODES_ERR_RET(c) \ do { \ diff --git a/source/libs/parser/inc/parUtil.h b/source/libs/parser/inc/parUtil.h index aec5fb4cd6..bbd977854d 100644 --- a/source/libs/parser/inc/parUtil.h +++ b/source/libs/parser/inc/parUtil.h @@ -26,12 +26,12 @@ extern "C" { #include "parToken.h" #include "query.h" -#define parserFatal(param, ...) qFatal("PARSER: " param, ##__VA_ARGS__) -#define parserError(param, ...) qError("PARSER: " param, ##__VA_ARGS__) -#define parserWarn(param, ...) qWarn("PARSER: " param, ##__VA_ARGS__) -#define parserInfo(param, ...) qInfo("PARSER: " param, ##__VA_ARGS__) -#define parserDebug(param, ...) qDebug("PARSER: " param, ##__VA_ARGS__) -#define parserTrace(param, ...) qTrace("PARSER: " param, ##__VA_ARGS__) +#define parserFatal(param, ...) qFatal("PARSER:" param, ##__VA_ARGS__) +#define parserError(param, ...) qError("PARSER:" param, ##__VA_ARGS__) +#define parserWarn(param, ...) qWarn ("PARSER:" param, ##__VA_ARGS__) +#define parserInfo(param, ...) qInfo ("PARSER:" param, ##__VA_ARGS__) +#define parserDebug(param, ...) qDebug("PARSER:" param, ##__VA_ARGS__) +#define parserTrace(param, ...) qTrace("PARSER:" param, ##__VA_ARGS__) #define ROWTS_PSEUDO_COLUMN_NAME "_rowts" #define C0_PSEUDO_COLUMN_NAME "_c0" diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index 5ff6e4f555..70dc3011b0 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -3194,14 +3194,14 @@ static int32_t buildInsertCatalogReq(SInsertParseContext* pCxt, SVnodeModifyOpSt static int32_t setNextStageInfo(SInsertParseContext* pCxt, SQuery* pQuery, SCatalogReq* pCatalogReq) { SVnodeModifyOpStmt* pStmt = (SVnodeModifyOpStmt*)pQuery->pRoot; if (pCxt->missCache) { - parserDebug("0x%" PRIx64 " %d rows of %d tables have been inserted before cache miss", pCxt->pComCxt->requestId, + parserDebug("0x%" PRIx64 " %d rows of %d tables will insert before cache miss", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_PARSE; return buildInsertCatalogReq(pCxt, pStmt, pCatalogReq); } - parserDebug("0x%" PRIx64 " %d rows of %d tables have been inserted", pCxt->pComCxt->requestId, pStmt->totalRowsNum, + parserDebug("0x%" PRIx64 " %d rows of %d tables will insert", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_SCHEDULE; diff --git a/source/libs/qworker/inc/qwInt.h b/source/libs/qworker/inc/qwInt.h index 6474a1ab30..1d46dc6c61 100644 --- a/source/libs/qworker/inc/qwInt.h +++ b/source/libs/qworker/inc/qwInt.h @@ -414,29 +414,29 @@ extern SQueryMgmt gQueryMgmt; #define QW_SCH_DLOG(param, ...) qDebug("QW:%p clientId:%" PRIx64 " " param, mgmt, clientId, __VA_ARGS__) #define QW_TASK_ELOG(param, ...) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_WLOG(param, ...) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_DLOG(param, ...) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_DLOGL(param, ...) \ - qDebugL("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_ELOG_E(param) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_TASK_WLOG_E(param) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_TASK_DLOG_E(param) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_SCH_TASK_ELOG(param, ...) \ - qError("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, \ + qError("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, \ qId, cId, tId, eId, __VA_ARGS__) #define QW_SCH_TASK_WLOG(param, ...) \ - qWarn("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, qId, \ + qWarn("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, qId, \ cId, tId, eId, __VA_ARGS__) #define QW_SCH_TASK_DLOG(param, ...) \ - qDebug("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, \ + qDebug("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, \ qId, cId, tId, eId, __VA_ARGS__) #define QW_LOCK_DEBUG(...) \ diff --git a/source/libs/qworker/src/qwDbg.c b/source/libs/qworker/src/qwDbg.c index f4015ea28d..2777425365 100644 --- a/source/libs/qworker/src/qwDbg.c +++ b/source/libs/qworker/src/qwDbg.c @@ -192,7 +192,7 @@ void qwDbgDumpJobsInfo(void) { int32_t sessionIdx = 0; SQWSessionInfo* pSession = (SQWSessionInfo*)taosHashIterate(pJob->pSessions, NULL); while (NULL != pSession) { - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d the %dth remain session", + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d the %dth remain session", pSession->qId, pSession->sId, pSession->cId, pSession->tId, pSession->eId, sessionIdx++); pSession = (SQWSessionInfo*)taosHashIterate(pJob->pSessions, pSession); diff --git a/source/libs/scheduler/inc/schInt.h b/source/libs/scheduler/inc/schInt.h index cdbeb2a2e0..ddae00bd18 100644 --- a/source/libs/scheduler/inc/schInt.h +++ b/source/libs/scheduler/inc/schInt.h @@ -462,23 +462,23 @@ extern SSchedulerMgmt schMgmt; (_task)->profile.endTs = us; \ } while (0) -#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ",SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) -#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ", SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) #define SCH_TASK_ELOG(param, ...) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOG(param, ...) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_TLOG(param, ...) \ - qTrace("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qTrace("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOGL(param, ...) \ - qDebugL("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_WLOG(param, ...) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_SET_ERRNO(_err) \ diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index 25052d2c15..ce2930819e 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -1246,7 +1246,7 @@ int32_t schProcessOnCbBegin(SSchJob **job, SSchTask **task, uint64_t qId, int64_ (void)schAcquireJob(rId, &pJob); if (NULL == pJob) { - qWarn("QID:0x%" PRIx64 ",TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, qId, tId, rId); + qWarn("QID:0x%" PRIx64 ", TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, qId, tId, rId); SCH_ERR_RET(TSDB_CODE_QRY_JOB_NOT_EXIST); } diff --git a/source/libs/scheduler/src/schRemote.c b/source/libs/scheduler/src/schRemote.c index ec9913d6ac..b18decfff2 100644 --- a/source/libs/scheduler/src/schRemote.c +++ b/source/libs/scheduler/src/schRemote.c @@ -511,7 +511,7 @@ _return: int32_t schHandleDropCallback(void *param, SDataBuf *pMsg, int32_t code) { SSchTaskCallbackParam *pParam = (SSchTaskCallbackParam *)param; - qDebug("QID:0x%" PRIx64 ",SID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 " drop task rsp received, code:0x%x", + qDebug("QID:0x%" PRIx64 ", SID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " drop task rsp received, code:0x%x", pParam->queryId, pParam->seriousId, pParam->clientId, pParam->taskId, code); // called if drop task rsp received code (void)rpcReleaseHandle(pMsg->handle, TAOS_CONN_CLIENT, 0); // ignore error @@ -528,7 +528,7 @@ int32_t schHandleDropCallback(void *param, SDataBuf *pMsg, int32_t code) { int32_t schHandleNotifyCallback(void *param, SDataBuf *pMsg, int32_t code) { SSchTaskCallbackParam *pParam = (SSchTaskCallbackParam *)param; - qDebug("QID:0x%" PRIx64 ",SID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 " task notify rsp received, code:0x%x", + qDebug("QID:0x%" PRIx64 ", SID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " task notify rsp received, code:0x%x", pParam->queryId, pParam->seriousId, pParam->clientId, pParam->taskId, code); if (pMsg) { taosMemoryFreeClear(pMsg->pData); diff --git a/source/libs/scheduler/src/schTask.c b/source/libs/scheduler/src/schTask.c index 0e76e21aff..a4edda8d60 100644 --- a/source/libs/scheduler/src/schTask.c +++ b/source/libs/scheduler/src/schTask.c @@ -1014,7 +1014,7 @@ int32_t schProcessOnTaskStatusRsp(SQueryNodeEpId *pEpId, SArray *pStatusList) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d task status in server: %s", pStatus->queryId, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d task status in server: %s", pStatus->queryId, pStatus->clientId, pStatus->taskId, pStatus->execId, jobTaskStatusStr(pStatus->status)); if (schProcessOnCbBegin(&pJob, &pTask, pStatus->queryId, pStatus->refId, pStatus->taskId)) { @@ -1061,13 +1061,13 @@ int32_t schHandleExplainRes(SArray *pExplainRes) { continue; } - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ", begin to handle LOCAL explain rsp msg", + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", begin to handle LOCAL explain rsp msg", localRsp->qId, localRsp->cId, localRsp->tId); pJob = NULL; (void)schAcquireJob(localRsp->rId, &pJob); if (NULL == pJob) { - qWarn("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, + qWarn("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " job no exist, may be dropped, refId:0x%" PRIx64, localRsp->qId, localRsp->cId, localRsp->tId, localRsp->rId); SCH_ERR_JRET(TSDB_CODE_QRY_JOB_NOT_EXIST); } @@ -1087,7 +1087,7 @@ int32_t schHandleExplainRes(SArray *pExplainRes) { (void)schReleaseJob(pJob->refId); - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ", end to handle LOCAL explain rsp msg, code:%x", + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", end to handle LOCAL explain rsp msg, code:%x", localRsp->qId, localRsp->cId, localRsp->tId, code); SCH_ERR_JRET(code); diff --git a/source/libs/stream/src/streamCheckStatus.c b/source/libs/stream/src/streamCheckStatus.c index f880526541..ebb13654b7 100644 --- a/source/libs/stream/src/streamCheckStatus.c +++ b/source/libs/stream/src/streamCheckStatus.c @@ -471,7 +471,7 @@ int32_t streamTaskUpdateCheckInfo(STaskCheckInfo* pInfo, int32_t taskId, int32_t } streamMutexUnlock(&pInfo->checkInfoLock); - stError("s-task:%s unexpected check rsp msg, invalid downstream task:0x%x,QID:%" PRIx64 " discarded", id, taskId, + stError("s-task:%s unexpected check rsp msg, invalid downstream task:0x%x, QID:%" PRIx64 " discarded", id, taskId, reqId); return TSDB_CODE_FAILED; } diff --git a/source/libs/stream/src/streamDispatch.c b/source/libs/stream/src/streamDispatch.c index 41773ee42d..0aa9d6fbb4 100644 --- a/source/libs/stream/src/streamDispatch.c +++ b/source/libs/stream/src/streamDispatch.c @@ -134,7 +134,7 @@ int32_t streamTaskBroadcastRetrieveReq(SStreamTask* pTask, SStreamRetrieveReq* r stError("s-task:%s (child %d) failed to send retrieve req to task:0x%x (vgId:%d) QID:0x%" PRIx64 " code:%s", pTask->id.idStr, pTask->info.selfChildId, pEpInfo->taskId, pEpInfo->nodeId, req->reqId, tstrerror(code)); } else { - stDebug("s-task:%s (child %d) send retrieve req to task:0x%x (vgId:%d),QID:0x%" PRIx64, pTask->id.idStr, + stDebug("s-task:%s (child %d) send retrieve req to task:0x%x (vgId:%d), QID:0x%" PRIx64, pTask->id.idStr, pTask->info.selfChildId, pEpInfo->taskId, pEpInfo->nodeId, req->reqId); } } diff --git a/source/libs/transport/inc/transLog.h b/source/libs/transport/inc/transLog.h index 8b8cc3ae72..81306931cc 100644 --- a/source/libs/transport/inc/transLog.h +++ b/source/libs/transport/inc/transLog.h @@ -32,12 +32,12 @@ extern "C" { #define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC TRACE ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} #define tDump(x, y) { if (rpcDebugFlag & DEBUG_DUMP) { taosDumpData((unsigned char *)x, y); } } -#define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define tGFatal(param, ...) do {if (rpcDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tFatal(param ",QID:%s", __VA_ARGS__, buf); }} while (0) -#define tGError(param, ...) do { if (rpcDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tError(param ",QID:%s", __VA_ARGS__, buf);} } while(0) -#define tGWarn(param, ...) do { if (rpcDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tWarn(param ",QID:%s", __VA_ARGS__, buf); }} while(0) -#define tGInfo(param, ...) do { if (rpcDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tInfo(param ",QID:%s", __VA_ARGS__, buf); }} while(0) -#define tGDebug(param,...) do {if (rpcDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tDebug(param ",QID:%s", __VA_ARGS__, buf); }} while(0) +#define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGFatal(param, ...) do {if (rpcDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGError(param, ...) do { if (rpcDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGWarn(param, ...) do { if (rpcDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGInfo(param, ...) do { if (rpcDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGDebug(param,...) do {if (rpcDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) // clang-format on diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 3b84fc4574..4236d4e171 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -3765,7 +3765,7 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { if (pConn->heap != NULL) { p = pConn->heap; - tTrace("conn %p add to heap cache for key:%s,status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, + tTrace("conn %p add to heap cache for key:%s, status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); } else { code = getOrCreateHeap(pConnHeapCacahe, pConn->dstAddr, &p); @@ -3781,7 +3781,7 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { } code = transHeapInsert(p, pConn); - tTrace("conn %p add to heap cache for key:%s,status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, + tTrace("conn %p add to heap cache for key:%s, status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); return code; } From 92f8f3690dd8e4635557f4e0534d54912b46094b Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 15:25:38 +0800 Subject: [PATCH 04/34] enh: adjust log format --- source/client/src/clientEnv.c | 8 ++--- source/client/src/clientImpl.c | 50 +++++++++++++++---------------- source/client/src/clientMain.c | 20 ++++++------- source/libs/catalog/src/catalog.c | 2 +- 4 files changed, 39 insertions(+), 41 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 29d8e2614f..a890c3d0ad 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -93,8 +93,7 @@ static int32_t registerRequest(SRequestObj *pRequest, STscObj *pTscObj) { int32_t total = atomic_add_fetch_64((int64_t *)&pSummary->totalRequests, 1); int32_t currentInst = atomic_add_fetch_64((int64_t *)&pSummary->currentRequests, 1); - tscDebug("0x%" PRIx64 " new Request from connObj:0x%" PRIx64 - ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", new from connObj:0x%" PRIx64 ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, pRequest->self, pRequest->pTscObj->id, num, currentInst, total, pRequest->requestId); } @@ -255,9 +254,8 @@ static void deregisterRequest(SRequestObj *pRequest) { int32_t reqType = SLOW_LOG_TYPE_OTHERS; int64_t duration = taosGetTimestampUs() - pRequest->metric.start; - tscDebug("0x%" PRIx64 " free Request from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 - " elapsed:%.2f ms, " - "current:%d, app current:%d", + tscDebug("req:0x%" PRIx64 ", free from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 + " elapsed:%.2f ms, current:%d, app current:%d", pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst); if (TSDB_CODE_SUCCESS == nodesSimAcquireAllocator(pRequest->allocatorRefId)) { diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 338290433e..82228d7547 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -227,7 +227,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, (*pRequest)->sqlstr = taosMemoryMalloc(sqlLen + 1); if ((*pRequest)->sqlstr == NULL) { - tscError("0x%" PRIx64 " failed to prepare sql string buffer, %s", (*pRequest)->self, sql); + tscError("req:0x%" PRIx64 ", failed to prepare sql string buffer, %s", (*pRequest)->self, sql); destroyRequest(*pRequest); *pRequest = NULL; return terrno; @@ -245,7 +245,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, int32_t err = taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self, sizeof((*pRequest)->self)); if (err) { - tscError("%" PRId64 " failed to add to request container, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", + tscError("req:0x%" PRId64 ", failed to add to request container, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -256,7 +256,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, if (tsQueryUseNodeAllocator && !qIsInsertValuesSql((*pRequest)->sqlstr, (*pRequest)->sqlLen)) { if (TSDB_CODE_SUCCESS != nodesCreateAllocator((*pRequest)->requestId, tsQueryNodeChunkSize, &((*pRequest)->allocatorRefId))) { - tscError("%" PRId64 " failed to create node allocator, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, + tscError("req:0x%" PRId64 ", failed to create node allocator, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -264,7 +264,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, } } - tscDebugL("0x%" PRIx64 " SQL:%s, QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); + tscDebugL("req:0x%" PRIx64 ", SQL:%s, QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } @@ -381,10 +381,10 @@ void asyncExecLocalCmd(SRequestObj* pRequest, SQuery* pQuery) { if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); } @@ -1030,7 +1030,7 @@ int32_t handleQueryExecRsp(SRequestObj* pRequest) { break; } default: - tscError("0x%" PRIx64 ", invalid exec result for request type %d, QID:0x%" PRIx64, pRequest->self, pRequest->type, + tscError("req:0x%" PRIx64 ", invalid exec result for request type %d, QID:0x%" PRIx64, pRequest->self, pRequest->type, pRequest->requestId); code = TSDB_CODE_APP_ERROR; } @@ -1075,7 +1075,7 @@ void returnToUser(SRequestObj* pRequest) { (void)releaseRequest(pRequest->relation.userRefId); return; } else { - tscError("0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.userRefId, pRequest->requestId); } } @@ -1146,7 +1146,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { SSDataBlock* pBlock = NULL; pRequest->code = createResultBlock(res, rowNum, &pBlock); if (TSDB_CODE_SUCCESS != pRequest->code) { - tscError("0x%" PRIx64 ", create result block failed, QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, + tscError("req:0x%" PRIx64 ", create result block failed, QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, tstrerror(pRequest->code)); returnToUser(pRequest); return; @@ -1157,7 +1157,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { continuePostSubQuery(pNextReq, pBlock); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } @@ -1176,7 +1176,7 @@ void handlePostSubQuery(SSqlCallbackWrapper* pWrapper) { continuePostSubQuery(pNextReq, NULL); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } } @@ -1208,14 +1208,14 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { } taosMemoryFree(pResult); - tscDebug("0x%" PRIx64 " enter scheduler exec cb, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", enter scheduler exec cb, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); if (code != TSDB_CODE_SUCCESS && NEED_CLIENT_HANDLE_ERROR(code) && pRequest->sqlstr != NULL) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, + tscDebug("re:0x%" PRIx64 ", client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->retry, pRequest->requestId); if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } restartAsyncQuery(pRequest, code); return; @@ -1224,7 +1224,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type)); if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } } @@ -1322,7 +1322,7 @@ void launchQueryImpl(SRequestObj* pRequest, SQuery* pQuery, bool keepQuery, void if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { int ret = removeMeta(pRequest->pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type)); if (TSDB_CODE_SUCCESS != ret) { - tscError("0x%" PRIx64 " remove meta failed,code:%d, QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed,code:%d, QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); } } @@ -1370,7 +1370,7 @@ static int32_t asyncExecSchQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaDat code = qCreateQueryPlan(&cxt, &pDag, pMnodeList); } if (code) { - tscError("0x%" PRIx64 " failed to create query plan, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", failed to create query plan, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); } else { pRequest->body.subplanNum = pDag->numOfSubplans; @@ -1414,7 +1414,7 @@ static int32_t asyncExecSchQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaDat taosArrayDestroy(pNodeList); } else { qDestroyQueryPlan(pDag); - tscDebug("0x%" PRIx64 " plan not executed, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", plan not executed, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1472,7 +1472,7 @@ void launchAsyncQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaData* pResultM doRequestCallback(pRequest, 0); break; default: - tscError("0x%" PRIx64 " invalid execMode %d", pRequest->self, pQuery->execMode); + tscError("req:0x%" PRIx64 ", invalid execMode %d", pRequest->self, pQuery->execMode); doRequestCallback(pRequest, -1); break; } @@ -1796,7 +1796,7 @@ int32_t doProcessMsgFromServerImpl(SRpcMsg* pMsg, SEpSet* pEpSet) { SRequestObj* pRequest = (SRequestObj*)taosAcquireRef(clientReqRefPool, pSendInfo->requestObjRefId); if (pRequest) { if (pRequest->self != pSendInfo->requestObjRefId) { - tscError("doProcessMsgFromServer pRequest->self:%" PRId64 " != pSendInfo->requestObjRefId:%" PRId64, + tscError("doProcessMsgFromServer req:0x%" PRId64 " != pSendInfo->requestObjRefId:0x%" PRId64, pRequest->self, pSendInfo->requestObjRefId); if (TSDB_CODE_SUCCESS != taosReleaseRef(clientReqRefPool, pSendInfo->requestObjRefId)) { @@ -2000,7 +2000,7 @@ void* doFetchRows(SRequestObj* pRequest, bool setupOneRowPtr, bool convertUcs4) return NULL; } - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResInfo->numOfRows, pResInfo->totalRows, pResInfo->completed, pRequest->requestId); STscObj* pTscObj = pRequest->pTscObj; @@ -2952,7 +2952,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s return NULL; } - tscDebug("taos_query start with sql:%s", sql); + tscDebug("connObj:0x%" PRIx64 ", taos_query start with sql:%s", *(int64_t*)taos, sql); SSyncQueryParam* param = taosMemoryCalloc(1, sizeof(SSyncQueryParam)); if (NULL == param) { @@ -3024,7 +3024,7 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { SReqResultInfo* pResultInfo = &pRequest->body.resInfo; - tscDebug("0x%" PRIx64 " enter scheduler fetch cb, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", enter scheduler fetch cb, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); pResultInfo->pData = pResult; @@ -3047,10 +3047,10 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { setQueryResultFromRsp(pResultInfo, (const SRetrieveTableRsp*)pResultInfo->pData, pResultInfo->convertUcs4); if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), + tscError("req:0x%" PRIx64 ", fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index cf253a24ca..83e588a2ff 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -1157,7 +1157,7 @@ static void doAsyncQueryFromAnalyse(SMetaData *pResultMeta, void *param, int32_t SRequestObj *pRequest = pWrapper->pRequest; SQuery *pQuery = pRequest->pQuery; - qDebug("0x%" PRIx64 " start to semantic analysis, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + qDebug("req:0x%" PRIx64 ", start to semantic analysis, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); int64_t analyseStart = taosGetTimestampUs(); pRequest->metric.ctgCostUs = analyseStart - pRequest->metric.ctgStart; @@ -1276,14 +1276,14 @@ void handleQueryAnslyseRes(SSqlCallbackWrapper *pWrapper, SMetaData *pResultMeta pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); restartAsyncQuery(pRequest, code); return; } // return to app directly - tscError("0x%" PRIx64 " error occurs, code:%s, return to user app, QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", error occurs, code:%s, return to user app, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); pRequest->code = code; returnToUser(pRequest); @@ -1333,7 +1333,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c SQuery *pQuery = pRequest->pQuery; pRequest->metric.ctgCostUs += taosGetTimestampUs() - pRequest->metric.ctgStart; - qDebug("0x%" PRIx64 " start to continue parse, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, + qDebug("req:0x%" PRIx64 ", start to continue parse, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, tstrerror(code)); if (code == TSDB_CODE_SUCCESS) { @@ -1346,7 +1346,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1363,7 +1363,7 @@ void continueInsertFromCsv(SSqlCallbackWrapper *pWrapper, SRequestObj *pRequest) } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1484,7 +1484,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1492,11 +1492,11 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); code = refreshMeta(pRequest->pTscObj, pRequest); if (code != 0) { - tscWarn("0x%" PRIx64 " refresh meta failed, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscWarn("req:0x%" PRIx64 ", refresh meta failed, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); } pRequest->prevCode = code; @@ -1511,7 +1511,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { } void restartAsyncQuery(SRequestObj *pRequest, int32_t code) { - tscInfo("restart request: %s p: %p", pRequest->sqlstr, pRequest); + tscInfo("restart request:%s p:%p", pRequest->sqlstr, pRequest); SRequestObj *pUserReq = pRequest; (void)acquireRequest(pRequest->self); while (pUserReq) { diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index b70c018110..58e7ed6b03 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -917,7 +917,7 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { if (ctg && (*ctg)) { *catalogHandle = *ctg; CTG_STAT_HIT_INC(CTG_CI_CLUSTER, 1); - qDebug("CTG:%p, get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); + qDebug("CTG:%p get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } From 56e411c451397f5a37d576cf2d4a06595c2ab1b7 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 16:00:30 +0800 Subject: [PATCH 05/34] enh: adjust log format --- source/client/inc/clientStmt.h | 10 ++++---- source/client/inc/clientStmt2.h | 8 +++--- source/client/src/clientMain.c | 2 +- source/client/src/clientStmt.c | 2 +- source/client/src/clientStmt2.c | 2 +- source/libs/catalog/inc/catalogInt.h | 24 +++++++++--------- source/libs/catalog/src/catalog.c | 2 +- source/libs/parser/inc/parUtil.h | 12 ++++----- source/libs/parser/src/parInsertSql.c | 12 ++++----- source/libs/parser/src/parInsertUtil.c | 6 ++--- source/libs/parser/src/parTranslater.c | 34 +++++++++++++------------- 11 files changed, 57 insertions(+), 57 deletions(-) diff --git a/source/client/inc/clientStmt.h b/source/client/inc/clientStmt.h index 35bfa66f72..ec61b2ff57 100644 --- a/source/client/inc/clientStmt.h +++ b/source/client/inc/clientStmt.h @@ -205,12 +205,12 @@ extern char *gStmtStatusStr[]; } \ } while (0) -#define STMT_FLOG(param, ...) qFatal("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_ELOG(param, ...) qError("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_DLOG(param, ...) qDebug("stmt:%p " param, pStmt, __VA_ARGS__) +#define STMT_FLOG(param, ...) qFatal("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_ELOG(param, ...) qError("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_DLOG(param, ...) qDebug("stmt:%p, " param, pStmt, __VA_ARGS__) -#define STMT_ELOG_E(param) qError("stmt:%p " param, pStmt) -#define STMT_DLOG_E(param) qDebug("stmt:%p " param, pStmt) +#define STMT_ELOG_E(param) qError("stmt:%p, " param, pStmt) +#define STMT_DLOG_E(param) qDebug("stmt:%p, " param, pStmt) TAOS_STMT *stmtInit(STscObj* taos, int64_t reqid, TAOS_STMT_OPTIONS* pOptions); int stmtClose(TAOS_STMT *stmt); diff --git a/source/client/inc/clientStmt2.h b/source/client/inc/clientStmt2.h index 283573803e..b95327e236 100644 --- a/source/client/inc/clientStmt2.h +++ b/source/client/inc/clientStmt2.h @@ -222,11 +222,11 @@ do { \ #define STMT_FLOG(param, ...) qFatal("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_ELOG(param, ...) qError("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_DLOG(param, ...) qDebug("stmt:%p " param, pStmt, __VA_ARGS__) +#define STMT_ELOG(param, ...) qError("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_DLOG(param, ...) qDebug("stmt:%p, " param, pStmt, __VA_ARGS__) -#define STMT_ELOG_E(param) qError("stmt:%p " param, pStmt) -#define STMT_DLOG_E(param) qDebug("stmt:%p " param, pStmt) +#define STMT_ELOG_E(param) qError("stmt:%p, " param, pStmt) +#define STMT_DLOG_E(param) qDebug("stmt:%p, " param, pStmt) */ TAOS_STMT2 *stmtInit2(STscObj *taos, TAOS_STMT2_OPTION *pOptions); int stmtClose2(TAOS_STMT2 *stmt); diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 83e588a2ff..3b9239131f 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -1469,7 +1469,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { code = pRequest->prevCode; terrno = code; pRequest->code = code; - tscDebug("call sync query cb with code: %s", tstrerror(code)); + tscDebug("req:0x%" PRIx64 ", call sync query cb with code: %s", pRequest->self, tstrerror(code)); doRequestCallback(pRequest, code); return; } diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 4f912ec077..839102883a 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -573,7 +573,7 @@ int32_t stmtRebuildDataBlock(STscStmt* pStmt, STableDataCxt* pDataBlock, STableD STMT_ERR_RET(stmtTryAddTableVgroupInfo(pStmt, &vgId)); STMT_ERR_RET(qRebuildStmtDataBlock(newBlock, pDataBlock, uid, suid, vgId, pStmt->sql.autoCreateTbl)); - STMT_DLOG("tableDataCxt rebuilt, uid:%" PRId64 ", vgId:%d", uid, vgId); + STMT_DLOG("uid:%" PRId64 ", rebuild table data context, vgId:%d", uid, vgId); return TSDB_CODE_SUCCESS; } diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index 67066e1fdd..ae56403925 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -499,7 +499,7 @@ static int32_t stmtRebuildDataBlock(STscStmt2* pStmt, STableDataCxt* pDataBlock, STMT_ERR_RET(stmtTryAddTableVgroupInfo(pStmt, &vgId)); STMT_ERR_RET(qRebuildStmtDataBlock(newBlock, pDataBlock, uid, suid, vgId, pStmt->sql.autoCreateTbl)); - STMT_DLOG("tableDataCxt rebuilt, uid:%" PRId64 ", vgId:%d", uid, vgId); + STMT_DLOG("uid:%" PRId64 ", rebuild table data context, vgId:%d", uid, vgId); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index dd553ac301..b6bc2fac07 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -827,19 +827,19 @@ typedef struct SCtgCacheItemInfo { #define CTG_CACHE_OVERFLOW(_csize, _maxsize) ((_maxsize >= 0) ? ((_csize) >= (_maxsize)*1048576L * 0.9) : false) #define CTG_CACHE_LOW(_csize, _maxsize) ((_maxsize >= 0) ? ((_csize) <= (_maxsize)*1048576L * 0.75) : true) -#define ctgFatal(param, ...) qFatal("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgError(param, ...) qError("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgWarn(param, ...) qWarn("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgInfo(param, ...) qInfo("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgDebug(param, ...) qDebug("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgTrace(param, ...) qTrace("CTG:%p " param, pCtg, __VA_ARGS__) +#define ctgFatal(param, ...) qFatal("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgError(param, ...) qError("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgWarn(param, ...) qWarn ("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgInfo(param, ...) qInfo ("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgDebug(param, ...) qDebug("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgTrace(param, ...) qTrace("CTG:%p, " param, pCtg, __VA_ARGS__) -#define ctgTaskFatal(param, ...) qFatal("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskError(param, ...) qError("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskWarn(param, ...) qWarn("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskInfo(param, ...) qInfo("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskDebug(param, ...) qDebug("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskTrace(param, ...) qTrace("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskFatal(param, ...) qFatal("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskError(param, ...) qError("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskWarn(param, ...) qWarn ("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskInfo(param, ...) qInfo ("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskDebug(param, ...) qDebug("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskTrace(param, ...) qTrace("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) #define CTG_LOCK_DEBUG(...) \ do { \ diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 58e7ed6b03..b70c018110 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -917,7 +917,7 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { if (ctg && (*ctg)) { *catalogHandle = *ctg; CTG_STAT_HIT_INC(CTG_CI_CLUSTER, 1); - qDebug("CTG:%p get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); + qDebug("CTG:%p, get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } diff --git a/source/libs/parser/inc/parUtil.h b/source/libs/parser/inc/parUtil.h index bbd977854d..ede31ec2a5 100644 --- a/source/libs/parser/inc/parUtil.h +++ b/source/libs/parser/inc/parUtil.h @@ -26,12 +26,12 @@ extern "C" { #include "parToken.h" #include "query.h" -#define parserFatal(param, ...) qFatal("PARSER:" param, ##__VA_ARGS__) -#define parserError(param, ...) qError("PARSER:" param, ##__VA_ARGS__) -#define parserWarn(param, ...) qWarn ("PARSER:" param, ##__VA_ARGS__) -#define parserInfo(param, ...) qInfo ("PARSER:" param, ##__VA_ARGS__) -#define parserDebug(param, ...) qDebug("PARSER:" param, ##__VA_ARGS__) -#define parserTrace(param, ...) qTrace("PARSER:" param, ##__VA_ARGS__) +#define parserFatal(param, ...) qFatal("PARSER " param, ##__VA_ARGS__) +#define parserError(param, ...) qError("PARSER " param, ##__VA_ARGS__) +#define parserWarn(param, ...) qWarn ("PARSER " param, ##__VA_ARGS__) +#define parserInfo(param, ...) qInfo ("PARSER " param, ##__VA_ARGS__) +#define parserDebug(param, ...) qDebug("PARSER " param, ##__VA_ARGS__) +#define parserTrace(param, ...) qTrace("PARSER " param, ##__VA_ARGS__) #define ROWTS_PSEUDO_COLUMN_NAME "_rowts" #define C0_PSEUDO_COLUMN_NAME "_c0" diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index 70dc3011b0..ada93fdf5d 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -2351,7 +2351,7 @@ static int32_t parseCsvFile(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pStmt } taosMemoryFree(pLine); - parserDebug("0x%" PRIx64 " %d rows have been parsed", pCxt->pComCxt->requestId, *pNumOfRows); + parserDebug("QID:0x%" PRIx64 ", %d rows have been parsed", pCxt->pComCxt->requestId, *pNumOfRows); if (TSDB_CODE_SUCCESS == code && 0 == (*pNumOfRows) && 0 == pStmt->totalRowsNum && (!TSDB_QUERY_HAS_TYPE(pStmt->insertType, TSDB_QUERY_TYPE_STMT_INSERT)) && !pStmt->fileProcessing) { @@ -2381,10 +2381,10 @@ static int32_t parseDataFromFileImpl(SInsertParseContext* pCxt, SVnodeModifyOpSt if (!pStmt->fileProcessing) { code = taosCloseFile(&pStmt->fp); if (TSDB_CODE_SUCCESS != code) { - parserWarn("0x%" PRIx64 " failed to close file.", pCxt->pComCxt->requestId); + parserWarn("QID:0x%" PRIx64 ", failed to close file.", pCxt->pComCxt->requestId); } } else { - parserDebug("0x%" PRIx64 " insert from csv. File is too large, do it in batches.", pCxt->pComCxt->requestId); + parserDebug("QID:0x%" PRIx64 ", insert from csv. File is too large, do it in batches.", pCxt->pComCxt->requestId); } if (pStmt->insertType != TSDB_QUERY_TYPE_FILE_INSERT) { return buildSyntaxErrMsg(&pCxt->msg, "keyword VALUES or FILE is exclusive", NULL); @@ -2676,7 +2676,7 @@ static int32_t checkTableClauseFirstToken(SInsertParseContext* pCxt, SVnodeModif if (pCxt->isStmtBind) { if (TK_NK_ID == pTbName->type || (tbNameAfterDbName != NULL && *(tbNameAfterDbName + 1) != '?')) { // In SQL statements, the table name has already been specified. - parserWarn("0x%" PRIx64 " table name is specified in sql, ignore the table name in bind param", + parserWarn("QID:0x%" PRIx64 ", table name is specified in sql, ignore the table name in bind param", pCxt->pComCxt->requestId); } } @@ -3194,14 +3194,14 @@ static int32_t buildInsertCatalogReq(SInsertParseContext* pCxt, SVnodeModifyOpSt static int32_t setNextStageInfo(SInsertParseContext* pCxt, SQuery* pQuery, SCatalogReq* pCatalogReq) { SVnodeModifyOpStmt* pStmt = (SVnodeModifyOpStmt*)pQuery->pRoot; if (pCxt->missCache) { - parserDebug("0x%" PRIx64 " %d rows of %d tables will insert before cache miss", pCxt->pComCxt->requestId, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert before cache miss", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_PARSE; return buildInsertCatalogReq(pCxt, pStmt, pCatalogReq); } - parserDebug("0x%" PRIx64 " %d rows of %d tables will insert", pCxt->pComCxt->requestId, pStmt->totalRowsNum, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_SCHEDULE; diff --git a/source/libs/parser/src/parInsertUtil.c b/source/libs/parser/src/parInsertUtil.c index 1931f0803d..127155d105 100644 --- a/source/libs/parser/src/parInsertUtil.c +++ b/source/libs/parser/src/parInsertUtil.c @@ -298,7 +298,7 @@ static int32_t createTableDataCxt(STableMeta* pTableMeta, SVCreateTbReq** pCreat } if (TSDB_CODE_SUCCESS == code) { *pOutput = pTableCxt; - qDebug("tableDataCxt created, code:%d, uid:%" PRId64 ", vgId:%d", code, pTableMeta->uid, pTableMeta->vgId); + qDebug("uid:%" PRId64 ", create table data context, code:%d, vgId:%d", pTableMeta->uid, code, pTableMeta->vgId); } else { insDestroyTableDataCxt(pTableCxt); } @@ -478,7 +478,7 @@ static int32_t fillVgroupDataCxt(STableDataCxt* pTableCxt, SVgroupDataCxt* pVgCx taosMemoryFreeClear(pTableCxt->pData); } - qDebug("add tableDataCxt uid:%" PRId64 " to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); + qDebug("uid:%" PRId64 ", add table data context to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); return code; } @@ -572,7 +572,7 @@ int32_t insGetStmtTableVgUid(SHashObj* pAllVgHash, SStbInterlaceInfo* pBuildInfo code = catalogGetTableMeta((SCatalog*)pBuildInfo->pCatalog, &conn, &sname, &pTableMeta); if (TSDB_CODE_PAR_TABLE_NOT_EXIST == code) { - parserDebug("tb %s.%s not exist", sname.dbname, sname.tname); + parserDebug("tb:%s.%s not exist", sname.dbname, sname.tname); return code; } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 2fdba9bad9..e715611df2 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -533,7 +533,7 @@ static int32_t getViewMetaImpl(SParseContext* pParCxt, SParseMetaCache* pMetaCac } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetViewMeta error, code:%s, dbName:%s, viewName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetViewMeta error, code:%s, dbName:%s, viewName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -549,7 +549,7 @@ static int32_t getTargetNameImpl(SParseContext* pParCxt, SParseMetaCache* pMetaC code = TSDB_CODE_PAR_INTERNAL_ERROR; } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -565,7 +565,7 @@ static int32_t getTargetName(STranslateContext* pCxt, const SName* pName, char* code = getTargetNameImpl(pParCxt, pCxt->pMetaCache, pName, pTbName); } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -657,7 +657,7 @@ int32_t getTargetMetaImpl(SParseContext* pParCxt, SParseMetaCache* pMetaCache, c } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -673,7 +673,7 @@ static int32_t getTargetMeta(STranslateContext* pCxt, const SName* pName, STable code = getTargetMetaImpl(pParCxt, pCxt->pMetaCache, pName, pMeta, couldBeView); } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -703,7 +703,7 @@ static int32_t getTableCfg(STranslateContext* pCxt, const SName* pName, STableCf } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogRefreshGetTableCfg error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogRefreshGetTableCfg error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -726,7 +726,7 @@ static int32_t refreshGetTableMeta(STranslateContext* pCxt, const char* pDbName, code = catalogRefreshGetTableMeta(pParCxt->pCatalog, &conn, &name, pMeta, false); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogRefreshGetTableMeta error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogRefreshGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pDbName, pTableName); } return code; @@ -749,7 +749,7 @@ static int32_t getDBVgInfoImpl(STranslateContext* pCxt, const SName* pName, SArr } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBVgList error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetDBVgList error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), fullDbName); } return code; @@ -786,7 +786,7 @@ static int32_t getTableHashVgroupImpl(STranslateContext* pCxt, const SName* pNam } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -811,7 +811,7 @@ static int32_t getDBVgVersion(STranslateContext* pCxt, const char* pDbFName, int } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBVgVersion error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetDBVgVersion error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pDbFName); } return code; @@ -842,7 +842,7 @@ static int32_t getDBCfg(STranslateContext* pCxt, const char* pDbName, SDbCfgInfo } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBCfg error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), + parserError("QID:0x%" PRIx64 ", catalogGetDBCfg error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), dbFname); } return code; @@ -871,7 +871,7 @@ static int32_t getUdfInfo(STranslateContext* pCxt, SFunctionNode* pFunc) { tFreeSFuncInfo(&funcInfo); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetUdfInfo error, code:%s, funcName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetUdfInfo error, code:%s, funcName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pFunc->functionName); } return code; @@ -896,7 +896,7 @@ static int32_t getTableIndex(STranslateContext* pCxt, const SName* pName, SArray } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " getTableIndex error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", getTableIndex error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -915,7 +915,7 @@ static int32_t getDnodeList(STranslateContext* pCxt, SArray** pDnodes) { code = catalogGetDnodeList(pParCxt->pCatalog, &conn, pDnodes); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " getDnodeList error, code:%s", pCxt->pParseCxt->requestId, tstrerror(code)); + parserError("QID:0x%" PRIx64 ", getDnodeList error, code:%s", pCxt->pParseCxt->requestId, tstrerror(code)); } return code; } @@ -933,7 +933,7 @@ static int32_t getTableTsmas(STranslateContext* pCxt, const SName* pName, SArray code = catalogGetTableTsmas(pParCxt->pCatalog, &conn, pName, ppTsmas); } if (code) - parserError("0x%" PRIx64 " get table tsma for : %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, + parserError("QID:0x%" PRIx64 ", get table tsma for : %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, pName->tname, tstrerror(code)); return code; } @@ -951,7 +951,7 @@ static int32_t getTsma(STranslateContext* pCxt, const SName* pName, STableTSMAIn code = catalogGetTsma(pParCxt->pCatalog, &conn, pName, pTsma); } if (code) - parserError("0x%" PRIx64 " get tsma for: %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, + parserError("QID:0x%" PRIx64 ", get tsma for: %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, pName->tname, tstrerror(code)); return code; } @@ -15504,7 +15504,7 @@ static int32_t fillVgroupInfo(SParseContext* pParseCxt, const SName* pName, SVgr if (code == TSDB_CODE_SUCCESS) { *pVgInfo = vg; } else { - parserError("0x%" PRIx64 " catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } From 03d507422bc51e5498c88d6100845c9b68397eeb Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 16:08:26 +0800 Subject: [PATCH 06/34] enh: adjust log format --- source/libs/catalog/src/ctgAsync.c | 62 +++++++++++++-------------- source/libs/catalog/src/ctgRemote.c | 8 ++-- source/libs/planner/src/planner.c | 6 +-- source/libs/qworker/src/qwDbg.c | 2 +- source/libs/qworker/src/qworker.c | 10 ++--- source/libs/scheduler/inc/schInt.h | 14 +++--- source/libs/scheduler/src/schJob.c | 18 ++++---- source/libs/scheduler/src/schUtil.c | 6 +-- source/libs/scheduler/src/scheduler.c | 2 +- 9 files changed, 64 insertions(+), 64 deletions(-) diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 03a2a342c7..b6c66958e3 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -77,7 +77,7 @@ int32_t ctgInitGetTbMetaTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -99,7 +99,7 @@ int32_t ctgInitGetTbMetasTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->pNames = param; ctx->pResList = taosArrayInit(pJob->tbMetaNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbMetaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbMetaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -110,7 +110,7 @@ int32_t ctgInitGetTbMetasTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbMetaNum); return TSDB_CODE_SUCCESS; @@ -138,7 +138,7 @@ int32_t ctgInitGetDbVgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -166,7 +166,7 @@ int32_t ctgInitGetDbCfgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -194,7 +194,7 @@ int32_t ctgInitGetDbInfoTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -228,7 +228,7 @@ int32_t ctgInitGetTbHashTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tableName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tableName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -250,7 +250,7 @@ int32_t ctgInitGetTbHashsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->pNames = param; ctx->pResList = taosArrayInit(pJob->tbHashNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbHashNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbHashNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -261,7 +261,7 @@ int32_t ctgInitGetTbHashsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbHashNum); return TSDB_CODE_SUCCESS; @@ -280,7 +280,7 @@ int32_t ctgInitGetQnodeTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -298,7 +298,7 @@ int32_t ctgInitGetDnodeTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -325,7 +325,7 @@ int32_t ctgInitGetIndexTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, indexFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, indexFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; @@ -353,7 +353,7 @@ int32_t ctgInitGetUdfTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, udfName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, udfName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; @@ -381,7 +381,7 @@ int32_t ctgInitGetUserTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, user:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, user:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), user->user); return TSDB_CODE_SUCCESS; @@ -399,7 +399,7 @@ int32_t ctgInitGetSvrVerTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -431,7 +431,7 @@ int32_t ctgInitGetTbIndexTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -464,7 +464,7 @@ int32_t ctgInitGetTbCfgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -497,7 +497,7 @@ int32_t ctgInitGetTbTagTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -520,7 +520,7 @@ int32_t ctgInitGetViewsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->forceFetch = p->forceFetch; ctx->pResList = taosArrayInit(pJob->viewNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->viewNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->viewNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -531,7 +531,7 @@ int32_t ctgInitGetViewsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, viewNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, viewNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->viewNum); return TSDB_CODE_SUCCESS; @@ -552,7 +552,7 @@ int32_t ctgInitGetTbTSMATask(SCtgJob* pJob, int32_t taskId, void* param) { pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tbTsmaNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbTsmaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbTsmaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -580,7 +580,7 @@ int32_t ctgInitGetTSMATask(SCtgJob* pJob, int32_t taskId, void* param) { pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tsmaNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tsmaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tsmaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -609,7 +609,7 @@ static int32_t ctgInitGetTbNamesTask(SCtgJob* pJob, int32_t taskId, void* param) pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tbNameNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbNameNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbNameNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -1478,16 +1478,16 @@ _return: int32_t ctgCallUserCb(void* param) { SCtgJob* pJob = (SCtgJob*)param; - qDebug("QID:0x%" PRIx64 " ctg start to call user cb with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); + qDebug("QID:0x%" PRIx64 ", ctg start to call user cb with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); (*pJob->userFp)(&pJob->jobRes, pJob->userParam, pJob->jobResCode); - qDebug("QID:0x%" PRIx64 " ctg end to call user cb", pJob->queryId); + qDebug("QID:0x%" PRIx64 ", ctg end to call user cb", pJob->queryId); int64_t refId = pJob->refId; int32_t code = taosRemoveRef(gCtgMgmt.jobPool, refId); if (code) { - qError("QID:0x%" PRIx64 " remove ctg job %" PRId64 " from jobPool failed, error:%s", pJob->queryId, refId, + qError("QID:0x%" PRIx64 ", remove ctg job %" PRId64 " from jobPool failed, error:%s", pJob->queryId, refId, tstrerror(code)); } @@ -1498,7 +1498,7 @@ void ctgUpdateJobErrCode(SCtgJob* pJob, int32_t errCode) { if (!NEED_CLIENT_REFRESH_VG_ERROR(errCode) || errCode == TSDB_CODE_SUCCESS) return; atomic_store_32(&pJob->jobResCode, errCode); - qDebug("QID:0x%" PRIx64 " ctg job errCode updated to %s", pJob->queryId, tstrerror(errCode)); + qDebug("QID:0x%" PRIx64 ", ctg job errCode updated to %s", pJob->queryId, tstrerror(errCode)); return; } @@ -1510,7 +1510,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { return TSDB_CODE_SUCCESS; } - qDebug("QID:0x%" PRIx64 " task %d end with res %s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); + qDebug("QID:0x%" PRIx64 ", task %d end with res %s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); pTask->code = rspCode; pTask->status = CTG_TASK_DONE; @@ -1519,7 +1519,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { int32_t taskDone = atomic_add_fetch_32(&pJob->taskDone, 1); if (taskDone < taosArrayGetSize(pJob->pTasks)) { - qDebug("QID:0x%" PRIx64 " task done: %d, total: %d", pJob->queryId, taskDone, + qDebug("QID:0x%" PRIx64 ", task done: %d, total: %d", pJob->queryId, taskDone, (int32_t)taosArrayGetSize(pJob->pTasks)); ctgUpdateJobErrCode(pJob, rspCode); @@ -4374,7 +4374,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) { CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("QID:0x%" PRIx64 " ctg launch [%dth] task", pJob->queryId, pTask->taskId); + qDebug("QID:0x%" PRIx64 ", ctg launch [%dth] task", pJob->queryId, pTask->taskId); CTG_ERR_RET((*gCtgAsyncFps[pTask->type].launchFp)(pTask)); pTask = taosArrayGet(pJob->pTasks, i); @@ -4387,7 +4387,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) { } if (taskNum <= 0) { - qDebug("QID:0x%" PRIx64 " ctg call user callback with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); + qDebug("QID:0x%" PRIx64 ", ctg call user callback with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); CTG_ERR_RET(taosAsyncExec(ctgCallUserCb, pJob, NULL)); #if CTG_BATCH_FETCH diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index 251f8b806c..e5c7750ddc 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -48,7 +48,7 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu msgNum = 0; } - ctgDebug("QID:0x%" PRIx64 " ctg got batch %d rsp %s", pJob->queryId, cbParam->batchId, + ctgDebug("QID:0x%" PRIx64 ", ctg got batch %d rsp %s", pJob->queryId, cbParam->batchId, TMSG_INFO(cbParam->reqType + 1)); SHashObj* pBatchs = taosHashInit(taskNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), false, HASH_NO_LOCK); @@ -115,7 +115,7 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu pMsgCtx->pBatchs = pBatchs; - ctgDebug("QID:0x%" PRIx64 " ctg task %d idx %d start to handle rsp %s, pBatchs: %p", pJob->queryId, pTask->taskId, + ctgDebug("QID:0x%" PRIx64 ", ctg task %d idx %d start to handle rsp %s, pBatchs: %p", pJob->queryId, pTask->taskId, pRsp->msgIdx, TMSG_INFO(taskMsg.msgType + 1), pBatchs); (void)(*gCtgAsyncFps[pTask->type].handleRspFp)( @@ -455,7 +455,7 @@ int32_t ctgHandleMsgCallback(void* param, SDataBuf* pMsg, int32_t rspCode) { CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("QID:0x%" PRIx64 " ctg task %d start to handle rsp %s", pJob->queryId, pTask->taskId, + qDebug("QID:0x%" PRIx64 ", ctg task %d start to handle rsp %s", pJob->queryId, pTask->taskId, TMSG_INFO(cbParam->reqType + 1)); #if CTG_BATCH_FETCH @@ -810,7 +810,7 @@ int32_t ctgLaunchBatchs(SCatalog* pCtg, SCtgJob* pJob, SHashObj* pBatchs) { SCtgBatch* pBatch = (SCtgBatch*)p; int32_t msgSize = 0; - ctgDebug("QID:0x%" PRIx64 " ctg start to launch batch %d", pJob->queryId, pBatch->batchId); + ctgDebug("QID:0x%" PRIx64 ", ctg start to launch batch %d", pJob->queryId, pBatch->batchId); CTG_ERR_JRET(ctgBuildBatchReqMsg(pBatch, *vgId, &msg, &msgSize)); code = ctgAsyncSendMsg(pCtg, &pBatch->conn, pJob, pBatch->pTaskIds, pBatch->batchId, pBatch->pMsgIdxs, diff --git a/source/libs/planner/src/planner.c b/source/libs/planner/src/planner.c index ee460e2610..6706d22147 100644 --- a/source/libs/planner/src/planner.c +++ b/source/libs/planner/src/planner.c @@ -37,7 +37,7 @@ static int32_t dumpQueryPlan(SQueryPlan* pPlan) { char* pStr = NULL; code = nodesNodeToString((SNode*)pPlan, false, &pStr, NULL); if (TSDB_CODE_SUCCESS == code) { - planDebugL("QID:0x%" PRIx64 " Query Plan, JsonPlan: %s", pPlan->queryId, pStr); + planDebugL("QID:0x%" PRIx64 ", Query Plan, JsonPlan: %s", pPlan->queryId, pStr); taosMemoryFree(pStr); } return code; @@ -123,7 +123,7 @@ int32_t qContinuePlanPostQuery(void* pPostPlan) { } int32_t qSetSubplanExecutionNode(SSubplan* subplan, int32_t groupId, SDownstreamSourceNode* pSource) { - planDebug("QID:0x%" PRIx64 " set subplan execution node, groupId:%d", subplan->id.queryId, groupId); + planDebug("QID:0x%" PRIx64 ", set subplan execution node, groupId:%d", subplan->id.queryId, groupId); return setSubplanExecutionNode(subplan->pNode, groupId, pSource); } @@ -143,7 +143,7 @@ static void clearSubplanExecutionNode(SPhysiNode* pNode) { } void qClearSubplanExecutionNode(SSubplan* pSubplan) { - planDebug("QID:0x%" PRIx64 " clear subplan execution node, groupId:%d", pSubplan->id.queryId, pSubplan->id.groupId); + planDebug("QID:0x%" PRIx64 ", clear subplan execution node, groupId:%d", pSubplan->id.queryId, pSubplan->id.groupId); clearSubplanExecutionNode(pSubplan->pNode); } diff --git a/source/libs/qworker/src/qwDbg.c b/source/libs/qworker/src/qwDbg.c index 2777425365..e430990c0d 100644 --- a/source/libs/qworker/src/qwDbg.c +++ b/source/libs/qworker/src/qwDbg.c @@ -187,7 +187,7 @@ void qwDbgDumpJobsInfo(void) { int32_t jobIdx = 0; SQWJobInfo* pJob = (SQWJobInfo*)taosHashIterate(gQueryMgmt.pJobInfo, NULL); while (NULL != pJob) { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " the %dth remain job", pJob->memInfo->jobId, pJob->memInfo->clientId, jobIdx++); + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " the %dth remain job", pJob->memInfo->jobId, pJob->memInfo->clientId, jobIdx++); int32_t sessionIdx = 0; SQWSessionInfo* pSession = (SQWSessionInfo*)taosHashIterate(pJob->pSessions, NULL); diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index 2b66db772a..14839b74b3 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -1699,18 +1699,18 @@ void qWorkerRetireJob(uint64_t jobId, uint64_t clientId, int32_t errCode) { SQWJobInfo *pJob = (SQWJobInfo *)taosHashGet(gQueryMgmt.pJobInfo, id, sizeof(id)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " CID:0x%" PRIx64 " fail to get job from job hash", jobId, clientId); + qError("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " fail to get job from job hash", jobId, clientId); return; } if (0 == atomic_val_compare_exchange_32(&pJob->errCode, 0, errCode) && 0 == atomic_val_compare_exchange_8(&pJob->retired, 0, 1)) { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " mark retired, errCode: 0x%x, allocSize:%" PRId64, jobId, clientId, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " mark retired, errCode: 0x%x, allocSize:%" PRId64, jobId, clientId, errCode, atomic_load_64(&pJob->memInfo->allocMemSize)); (void)qwRetireJob(pJob); } else { - qDebug("QID:0x%" PRIx64 " already retired, retired: %d, errCode: 0x%x, allocSize:%" PRId64, jobId, + qDebug("QID:0x%" PRIx64 ", already retired, retired: %d, errCode: 0x%x, allocSize:%" PRId64, jobId, atomic_load_8(&pJob->retired), atomic_load_32(&pJob->errCode), atomic_load_64(&pJob->memInfo->allocMemSize)); } } @@ -1741,10 +1741,10 @@ void qWorkerRetireJobs(int64_t retireSize, int32_t errCode) { jobNum++; - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " job mark retired in batch, retired:%d, usedSize:%" PRId64 ", retireSize:%" PRId64, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " job mark retired in batch, retired:%d, usedSize:%" PRId64 ", retireSize:%" PRId64, pJob->memInfo->jobId, pJob->memInfo->clientId, retired, aSize, retireSize); } else { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " job may already failed, errCode:%s", pJob->memInfo->jobId, pJob->memInfo->clientId, tstrerror(pJob->errCode)); + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " job may already failed, errCode:%s", pJob->memInfo->jobId, pJob->memInfo->clientId, tstrerror(pJob->errCode)); } pJob = (SQWJobInfo *)taosHashIterate(gQueryMgmt.pJobInfo, pJob); diff --git a/source/libs/scheduler/inc/schInt.h b/source/libs/scheduler/inc/schInt.h index ddae00bd18..4e44c52d70 100644 --- a/source/libs/scheduler/inc/schInt.h +++ b/source/libs/scheduler/inc/schInt.h @@ -462,23 +462,23 @@ extern SSchedulerMgmt schMgmt; (_task)->profile.endTs = us; \ } while (0) -#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ", SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) -#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) #define SCH_TASK_ELOG(param, ...) \ - qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOG(param, ...) \ - qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_TLOG(param, ...) \ - qTrace("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qTrace("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOGL(param, ...) \ - qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_WLOG(param, ...) \ - qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_SET_ERRNO(_err) \ diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index ce2930819e..e8135efce5 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -758,7 +758,7 @@ void schFreeJobImpl(void *job) { uint64_t queryId = pJob->queryId; int64_t refId = pJob->refId; - qDebug("QID:0x%" PRIx64 " begin to free sch job, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qDebug("QID:0x%" PRIx64 ", begin to free sch job, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); schDropJobAllTasks(pJob); @@ -818,7 +818,7 @@ void schFreeJobImpl(void *job) { } } - qDebug("QID:0x%" PRIx64 " sch job freed, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qDebug("QID:0x%" PRIx64 ", sch job freed, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); } int32_t schJobFetchRows(SSchJob *pJob) { @@ -853,7 +853,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { int64_t refId = -1; SSchJob *pJob = taosMemoryCalloc(1, sizeof(SSchJob)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " calloc %d failed", pReq->pDag->queryId, (int32_t)sizeof(SSchJob)); + qError("QID:0x%" PRIx64 ", calloc %d failed", pReq->pDag->queryId, (int32_t)sizeof(SSchJob)); SCH_ERR_JRET(terrno); } @@ -863,7 +863,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { if (pReq->sql) { pJob->sql = taosStrdup(pReq->sql); if (NULL == pJob->sql) { - qError("QID:0x%" PRIx64 " strdup sql %s failed", pReq->pDag->queryId, pReq->sql); + qError("QID:0x%" PRIx64 ", strdup sql %s failed", pReq->pDag->queryId, pReq->sql); SCH_ERR_JRET(terrno); } } @@ -871,7 +871,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { if (pReq->allocatorRefId > 0) { pJob->allocatorRefId = nodesMakeAllocatorWeakRef(pReq->allocatorRefId); if (pJob->allocatorRefId <= 0) { - qError("QID:0x%" PRIx64 " nodesMakeAllocatorWeakRef failed", pReq->pDag->queryId); + qError("QID:0x%" PRIx64 ", nodesMakeAllocatorWeakRef failed", pReq->pDag->queryId); SCH_ERR_JRET(terrno); } } @@ -883,11 +883,11 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { pJob->pWorkerCb = pReq->pWorkerCb; if (pReq->pNodeList == NULL || taosArrayGetSize(pReq->pNodeList) <= 0) { - qDebug("QID:0x%" PRIx64 " input exec nodeList is empty", pReq->pDag->queryId); + qDebug("QID:0x%" PRIx64 ", input exec nodeList is empty", pReq->pDag->queryId); } else { pJob->nodeList = taosArrayDup(pReq->pNodeList, NULL); if (NULL == pJob->nodeList) { - qError("QID:0x%" PRIx64 " taosArrayDup failed, origNum:%d", pReq->pDag->queryId, + qError("QID:0x%" PRIx64 ", taosArrayDup failed, origNum:%d", pReq->pDag->queryId, (int32_t)taosArrayGetSize(pReq->pNodeList)); SCH_ERR_JRET(terrno); } @@ -950,7 +950,7 @@ _return: int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 " sch job refId 0x%" PRIx64 " started", pReq->pDag->queryId, pJob->refId); + qDebug("QID:0x%" PRIx64 ", sch job refId 0x%" PRIx64 " started", pReq->pDag->queryId, pJob->refId); SCH_ERR_RET(schLaunchJob(pJob)); @@ -958,7 +958,7 @@ int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { SCH_JOB_DLOG("sync wait for rsp now, job status:%s", SCH_GET_JOB_STATUS_STR(pJob)); code = tsem_wait(&pJob->rspSem); if (code) { - qError("QID:0x%" PRIx64 " tsem_wait sync rspSem failed, error:%s", pReq->pDag->queryId, tstrerror(code)); + qError("QID:0x%" PRIx64 ", tsem_wait sync rspSem failed, error:%s", pReq->pDag->queryId, tstrerror(code)); SCH_ERR_RET(code); } } diff --git a/source/libs/scheduler/src/schUtil.c b/source/libs/scheduler/src/schUtil.c index 1eb7dd5281..7a95087c07 100644 --- a/source/libs/scheduler/src/schUtil.c +++ b/source/libs/scheduler/src/schUtil.c @@ -23,7 +23,7 @@ #include "trpc.h" FORCE_INLINE int32_t schAcquireJob(int64_t refId, SSchJob **ppJob) { - qDebug("sch acquire jobId:0x%" PRIx64, refId); + qTrace("sch acquire jobId:0x%" PRIx64, refId); *ppJob = (SSchJob *)taosAcquireRef(schMgmt.jobRef, refId); if (NULL == *ppJob) { return terrno; @@ -37,7 +37,7 @@ FORCE_INLINE int32_t schReleaseJob(int64_t refId) { return TSDB_CODE_SUCCESS; } - qDebug("sch release jobId:0x%" PRIx64, refId); + qTrace("sch release jobId:0x%" PRIx64, refId); return taosReleaseRef(schMgmt.jobRef, refId); } @@ -46,7 +46,7 @@ FORCE_INLINE int32_t schReleaseJobEx(int64_t refId, int32_t *released) { return TSDB_CODE_SUCCESS; } - qDebug("sch release ex jobId:0x%" PRIx64, refId); + qTrace("sch release ex jobId:0x%" PRIx64, refId); return taosReleaseRefEx(schMgmt.jobRef, refId, released); } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index 21659d9cd5..f99fe112de 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -224,7 +224,7 @@ int32_t schedulerValidatePlan(SQueryPlan* pPlan) { int32_t code = TSDB_CODE_SUCCESS; SSchJob *pJob = taosMemoryCalloc(1, sizeof(SSchJob)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " calloc %d failed", pPlan->queryId, (int32_t)sizeof(SSchJob)); + qError("QID:0x%" PRIx64 ", calloc %d failed", pPlan->queryId, (int32_t)sizeof(SSchJob)); SCH_ERR_RET(terrno); } From 61e0e77dcf3ac437f5fec57b411341c29ed96b97 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 16:15:21 +0800 Subject: [PATCH 07/34] enh: adjust log format --- source/libs/transport/src/transCli.c | 202 +++++++++++++-------------- source/libs/transport/src/transSvr.c | 116 +++++++-------- 2 files changed, 159 insertions(+), 159 deletions(-) diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 4236d4e171..9d8d096677 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -388,7 +388,7 @@ int32_t cliGetConnTimer(SCliThrd* pThrd, SCliConn* pConn) { tDebug("no available timer, create a timer %p", timer); int ret = uv_timer_init(pThrd->loop, timer); if (ret != 0) { - tError("conn %p failed to init timer %p since %s", pConn, timer, uv_err_name(ret)); + tError("conn:%p, failed to init timer %p since %s", pConn, timer, uv_err_name(ret)); return TSDB_CODE_THIRDPARTY_ERROR; } } @@ -400,11 +400,11 @@ void cliResetConnTimer(SCliConn* conn) { SCliThrd* pThrd = conn->hostThrd; if (conn->timer) { if (uv_is_active((uv_handle_t*)conn->timer)) { - tDebug("%s conn %p stop timer", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, stop timer", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(uv_timer_stop(conn->timer)); } if (taosArrayPush(pThrd->timerList, &conn->timer) == NULL) { - tError("%s conn %p failed to push timer %p to list since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, + tError("%s conn:%p, failed to push timer %p to list since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, tstrerror(terrno)); } conn->timer->data = NULL; @@ -435,7 +435,7 @@ void cliConnMayUpdateTimer(SCliConn* conn, int64_t timeout) { } int ret = uv_timer_start(conn->timer, cliConnTimeout__checkReq, timeout, 0); if (ret != 0) { - tError("%s conn %p failed to start timer %p since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, + tError("%s conn:%p, failed to start timer %p since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, uv_err_name(ret)); } } @@ -493,7 +493,7 @@ int8_t cliMayRecycleConn(SCliConn* conn) { SCliThrd* pThrd = conn->hostThrd; STrans* pInst = pThrd->pInst; - tTrace("%s conn %p in-process req summary:reqsToSend:%d, reqsSentOut:%d, statusTableSize:%d", + tTrace("%s conn:%p, in-process req summary:reqsToSend:%d, reqsSentOut:%d, statusTableSize:%d", CONN_GET_INST_LABEL(conn), conn, transQueueSize(&conn->reqsToSend), transQueueSize(&conn->reqsSentOut), taosHashGetSize(conn->pQTable)); @@ -503,14 +503,14 @@ int8_t cliMayRecycleConn(SCliConn* conn) { conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code == TSDB_CODE_RPC_ASYNC_IN_PROCESS) { - tDebug("%s conn %p failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, + tDebug("%s conn:%p, failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); return 1; } else { if (code != 0) { - tDebug("%s conn %p failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, + tDebug("%s conn:%p, failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); return 0; } @@ -519,10 +519,10 @@ int8_t cliMayRecycleConn(SCliConn* conn) { return 1; } else if ((transQueueSize(&conn->reqsToSend) == 0) && (transQueueSize(&conn->reqsSentOut) == 0) && (taosHashGetSize(conn->pQTable) != 0)) { - tDebug("%s conn %p do balance directly", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, do balance directly", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); } else { - tTrace("%s conn %p may do balance", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, may do balance", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); } return 0; @@ -573,12 +573,12 @@ int8_t cliMayNotifyUserOnRecvReleaseExcept(SCliConn* conn, STransMsgHead* pHead, STraceId* trace = &pHead->traceId; code = cliBuildExceptResp(pThrd, pReq, &resp); if (code != 0) { - tGWarn("%s conn %p failed to build except resp for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tGWarn("%s conn:%p, failed to build except resp for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } code = cliNotifyCb(conn, NULL, &resp); if (code != 0) { - tGWarn("%s conn %p failed to notify user for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tGWarn("%s conn:%p, failed to notify user for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } @@ -593,7 +593,7 @@ int32_t cliHandleState_mayHandleReleaseResp(SCliConn* conn, STransMsgHead* pHead int64_t qId = taosHton64(pHead->qid); STraceId* trace = &pHead->traceId; int64_t seqNum = taosHton64(pHead->seqNum); - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), conn->dst, conn->src, pHead->msgLen, seqNum, qId); @@ -602,12 +602,12 @@ int32_t cliHandleState_mayHandleReleaseResp(SCliConn* conn, STransMsgHead* pHead code = taosHashRemove(conn->pQTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("%s conn %p failed to release req:%" PRId64 " from conn", CONN_GET_INST_LABEL(conn), conn, qId); + tDebug("%s conn:%p, failed to release req:%" PRId64 " from conn", CONN_GET_INST_LABEL(conn), conn, qId); } code = taosHashRemove(pThrd->pIdConnTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("%s conn %p failed to release req:%" PRId64 " from thrd ", CONN_GET_INST_LABEL(conn), conn, qId); + tDebug("%s conn:%p, failed to release req:%" PRId64 " from thrd ", CONN_GET_INST_LABEL(conn), conn, qId); } tDebug("%s %p reqToSend:%d, sentOut:%d", CONN_GET_INST_LABEL(conn), conn, transQueueSize(&conn->reqsToSend), @@ -653,7 +653,7 @@ int32_t cliHandleState_mayCreateAhandle(SCliConn* conn, STransMsgHead* pHead, ST pCtx->st = taosGetTimestampUs(); STraceId* trace = &pHead->traceId; pResp->info.ahandle = transCtxDumpVal(pCtx, pHead->msgType); - tGDebug("%s conn %p %s received from %s, local info:%s, sid:%" PRId64 ", create ahandle %p by %s", + tGDebug("%s conn:%p, %s received from %s, local info:%s, sid:%" PRId64 ", create ahandle %p by %s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), conn->dst, conn->src, qId, pResp->info.ahandle, TMSG_INFO(pHead->msgType)); return 0; @@ -677,17 +677,17 @@ void cliHandleResp(SCliConn* conn) { int32_t msgLen = transDumpFromBuffer(&conn->readBuf, (char**)&pHead, 0); if (msgLen < 0) { taosMemoryFree(pHead); - tWarn("%s conn %p recv invalid packet", CONN_GET_INST_LABEL(conn), conn); + tWarn("%s conn:%p, recv invalid packet", CONN_GET_INST_LABEL(conn), conn); // TODO: notify cb code = pThrd->notifyExceptCb(pThrd, NULL, NULL); if (code != 0) { - tError("%s conn %p failed to notify user since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to notify user since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } return; } if ((code = transDecompressMsg((char**)&pHead, &msgLen)) < 0) { - tDebug("%s conn %p recv invalid packet, failed to decompress", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, recv invalid packet, failed to decompress", CONN_GET_INST_LABEL(conn), conn); // TODO: notify cb return; } @@ -712,7 +712,7 @@ void cliHandleResp(SCliConn* conn) { return; } if (code != 0) { - tWarn("%s conn %p recv unexpected packet, msgType:%s, seqNum:%" PRId64 ", sid:%" PRId64 + tWarn("%s conn:%p, recv unexpected packet, msgType:%s, seqNum:%" PRId64 ", sid:%" PRId64 ", the sever may sends repeated response since %s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), seq, qId, tstrerror(code)); // TODO: notify cb @@ -725,7 +725,7 @@ void cliHandleResp(SCliConn* conn) { } else { code = cliHandleState_mayUpdateStateTime(conn, pReq); if (code != 0) { - tDebug("%s conn %p failed to update state time sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tDebug("%s conn:%p, failed to update state time sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } } @@ -733,7 +733,7 @@ void cliHandleResp(SCliConn* conn) { code = cliBuildRespFromCont(pReq, &resp, pHead); STraceId* trace = &resp.info.traceId; - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, seq:%" PRId64 ", sid:%" PRId64 ", code:%s", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, seq:%" PRId64 ", sid:%" PRId64 ", code:%s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(resp.msgType), conn->dst, conn->src, pHead->msgLen, seq, qId, tstrerror(pHead->code)); code = cliNotifyCb(conn, pReq, &resp); @@ -760,7 +760,7 @@ void cliConnTimeout(uv_timer_t* handle) { } cliMayUpdateFqdnCache(pThrd->fqdn2ipCache, conn->dstAddr); - tTrace("%s conn %p failed to connect %s since conn timeout", CONN_GET_INST_LABEL(conn), conn, conn->dstAddr); + tTrace("%s conn:%p, failed to connect %s since conn timeout", CONN_GET_INST_LABEL(conn), conn, conn->dstAddr); TAOS_UNUSED(transUnrefCliHandle(conn)); } @@ -899,7 +899,7 @@ static int32_t cliGetConnFromPool(SCliThrd* pThrd, const char* key, SCliConn** p transDQCancel(((SCliThrd*)conn->hostThrd)->timeoutQueue, task); } - tDebug("conn %p get from pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); + tDebug("conn:%p, get from pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); *ppConn = conn; return 0; @@ -941,7 +941,7 @@ static void addConnToPool(void* pool, SCliConn* conn) { QUEUE_INIT(&conn->q); QUEUE_PUSH(&conn->list->conns, &conn->q); conn->list->size += 1; - tDebug("conn %p added to pool, pool size: %d, dst: %s", conn, conn->list->size, conn->dstAddr); + tDebug("conn:%p, added to pool, pool size: %d, dst: %s", conn, conn->list->size, conn->dstAddr); conn->heapMissHit = 0; @@ -961,7 +961,7 @@ static void cliAllocRecvBufferCb(uv_handle_t* handle, size_t suggested_size, uv_ SConnBuffer* pBuf = &conn->readBuf; int32_t code = transAllocBuffer(pBuf, buf); if (code < 0) { - tError("conn %p failed to alloc buffer, since %s", conn, tstrerror(code)); + tError("conn:%p, failed to alloc buffer, since %s", conn, tstrerror(code)); } } static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { @@ -975,14 +975,14 @@ static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { SCliConn* conn = handle->data; code = transSetReadOption((uv_handle_t*)handle); if (code != 0) { - tWarn("%s conn %p failed to set recv opt since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tWarn("%s conn:%p, failed to set recv opt since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } SConnBuffer* pBuf = &conn->readBuf; if (nread > 0) { pBuf->len += nread; while (transReadComplete(pBuf)) { - tTrace("%s conn %p read complete", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, read complete", CONN_GET_INST_LABEL(conn), conn); if (pBuf->invalid) { conn->broken = true; TAOS_UNUSED(transUnrefCliHandle(conn)); @@ -999,11 +999,11 @@ static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { // ref http://docs.libuv.org/en/v1.x/stream.html?highlight=uv_read_start#c.uv_read_cb // nread might be 0, which does not indicate an error or EOF. This is equivalent to EAGAIN or EWOULDBLOCK under // read(2). - tTrace("%s conn %p read empty", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, read empty", CONN_GET_INST_LABEL(conn), conn); return; } if (nread < 0) { - tDebug("%s conn %p read error:%s, ref:%d", CONN_GET_INST_LABEL(conn), conn, uv_err_name(nread), + tDebug("%s conn:%p, read error:%s, ref:%d", CONN_GET_INST_LABEL(conn), conn, uv_err_name(nread), transGetRefCount(conn)); conn->broken = true; TAOS_UNUSED(transUnrefCliHandle(conn)); @@ -1136,10 +1136,10 @@ static void cliDestroyAllQidFromThrd(SCliConn* conn) { code = taosHashRemove(pThrd->pIdConnTable, qid, sizeof(*qid)); if (code != 0) { - tDebug("%s conn %p failed to remove state %" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, *qid, + tDebug("%s conn:%p, failed to remove state %" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, *qid, tstrerror(code)); } else { - tDebug("%s conn %p destroy sid::%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, *qid); + tDebug("%s conn:%p, destroy sid::%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, *qid); } STransCtx* ctx = pIter; @@ -1163,17 +1163,17 @@ static void cliDestroy(uv_handle_t* handle) { SCliThrd* pThrd = conn->hostThrd; cliResetConnTimer(conn); - tDebug("%s conn %p try to destroy", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, try to destroy", CONN_GET_INST_LABEL(conn), conn); code = destroyAllReqs(conn); if (code != 0) { - tDebug("%s conn %p failed to all reqs since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to all reqs since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code != 0) { - tDebug("%s conn %p failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } taosMemoryFree(conn->dstAddr); @@ -1190,7 +1190,7 @@ static void cliDestroy(uv_handle_t* handle) { destroyWQ(&conn->wq); transDestroyBuffer(&conn->readBuf); - tTrace("%s conn %p destroy successfully", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, destroy successfully", CONN_GET_INST_LABEL(conn), conn); taosMemoryFree(conn); } @@ -1217,12 +1217,12 @@ static void notifyAndDestroyReq(SCliConn* pConn, SCliReq* pReq, int32_t code) { } STraceId* trace = &resp.info.traceId; - tDebug("%s conn %p notify user and destroy msg %s since %s", CONN_GET_INST_LABEL(pConn), pConn, + tDebug("%s conn:%p, notify user and destroy msg %s since %s", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msg.msgType), tstrerror(resp.code)); // handle noresp and inter manage msg if (pCtx == NULL || REQUEST_NO_RESP(&pReq->msg)) { - tDebug("%s conn %p destroy %s msg directly since %s", CONN_GET_INST_LABEL(pConn), pConn, + tDebug("%s conn:%p, destroy %s msg directly since %s", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msg.msgType), tstrerror(resp.code)); destroyReq(pReq); return; @@ -1271,7 +1271,7 @@ static void cliHandleException(SCliConn* conn) { cliResetConnTimer(conn); code = destroyAllReqs(conn); if (code != 0) { - tError("%s conn %p failed to destroy all reqs on conn since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to destroy all reqs on conn since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } cliDestroyAllQidFromThrd(conn); @@ -1288,13 +1288,13 @@ static void cliHandleException(SCliConn* conn) { conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code != 0) { - tError("%s conn %p failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } if (conn->registered) { int8_t ref = transGetRefCount(conn); if (ref == 0 && !uv_is_closing((uv_handle_t*)conn->stream)) { - // tTrace("%s conn %p fd %d,%d,%d,%p uv_closed", CONN_GET_INST_LABEL(conn), conn, conn->stream->u.fd, + // tTrace("%s conn:%p, fd %d,%d,%d,%p uv_closed", CONN_GET_INST_LABEL(conn), conn, conn->stream->u.fd, // conn->stream->io_watcher.fd, conn->stream->accepted_fd, conn->stream->queued_fds); uv_close((uv_handle_t*)conn->stream, cliDestroy); } @@ -1346,7 +1346,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { cliConnRmReqs(conn); if (status != 0) { - tDebug("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, uv_err_name(status)); + tDebug("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, uv_err_name(status)); TAOS_UNUSED(transUnrefCliHandle(conn)); return; } @@ -1355,7 +1355,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { if (conn->readerStart == 0) { code = uv_read_start((uv_stream_t*)conn->stream, cliAllocRecvBufferCb, cliRecvCb); if (code != 0) { - tDebug("%s conn %p failed to start read since%s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to start read since%s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); return; } @@ -1365,7 +1365,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { if (!cliMayRecycleConn(conn)) { code = cliBatchSend(conn, 1); if (code != 0) { - tDebug("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); } } @@ -1435,7 +1435,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { } QUEUE_PUSH(&pThrd->batchSendSet, &pConn->batchSendq); pConn->inThreadSendq = 1; - tDebug("%s conn %p batch send later", pInst->label, pConn); + tDebug("%s conn:%p, batch send later", pInst->label, pConn); return 0; } @@ -1443,7 +1443,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { int32_t totalLen = 0; if (size == 0) { - tDebug("%s conn %p not msg to send", pInst->label, pConn); + tDebug("%s conn:%p, not msg to send", pInst->label, pConn); return 0; } uv_buf_t* wb = NULL; @@ -1520,7 +1520,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { pCliMsg->sent = 1; STraceId* trace = &pCliMsg->msg.info.traceId; - tGDebug("%s conn %p %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), + tGDebug("%s conn:%p, %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msgType), pConn->dst, pConn->src, pConn->seq, pReq->info.qId); transQueuePush(&pConn->reqsSentOut, &pCliMsg->q); @@ -1536,7 +1536,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { uv_write_t* req = allocWReqFromWQ(&pConn->wq, pConn); if (req == NULL) { - tError("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(terrno)); + tError("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(terrno)); while (!QUEUE_IS_EMPTY(&reqToSend)) { queue* h = QUEUE_HEAD(&reqToSend); SCliReq* pCliMsg = QUEUE_DATA(h, SCliReq, sendQ); @@ -1550,11 +1550,11 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { SWReqsWrapper* pWreq = req->data; QUEUE_MOVE(&reqToSend, &pWreq->node); - tDebug("%s conn %p start to send msg, batch size:%d, len:%d", CONN_GET_INST_LABEL(pConn), pConn, j, totalLen); + tDebug("%s conn:%p, start to send msg, batch size:%d, len:%d", CONN_GET_INST_LABEL(pConn), pConn, j, totalLen); int32_t ret = uv_write(req, (uv_stream_t*)pConn->stream, wb, j, cliBatchSendCb); if (ret != 0) { - tError("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, uv_err_name(ret)); + tError("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, uv_err_name(ret)); while (!QUEUE_IS_EMPTY(&pWreq->node)) { queue* h = QUEUE_HEAD(&pWreq->node); SCliReq* pCliMsg = QUEUE_DATA(h, SCliReq, sendQ); @@ -1617,23 +1617,23 @@ static int32_t cliDoConn(SCliThrd* pThrd, SCliConn* conn) { addr.sin_addr.s_addr = ipaddr; addr.sin_port = (uint16_t)htons(conn->port); - tTrace("%s conn %p try to connect to %s", pInst->label, conn, conn->dstAddr); + tTrace("%s conn:%p, try to connect to %s", pInst->label, conn, conn->dstAddr); int32_t fd = taosCreateSocketWithTimeout(TRANS_CONN_TIMEOUT * 10); if (fd < 0) { TAOS_CHECK_GOTO(terrno, &lino, _exception1); } - tTrace("%s conn %p fd %d openend", pInst->label, conn, fd); + tTrace("%s conn:%p, fd %d openend", pInst->label, conn, fd); int ret = uv_tcp_open((uv_tcp_t*)conn->stream, fd); if (ret != 0) { - tError("%s conn %p failed to set stream since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to set stream since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception1); } ret = transSetConnOption((uv_tcp_t*)conn->stream, 20); if (ret != 0) { - tError("%s conn %p failed to set socket opt since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to set socket opt since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception1); return code; } @@ -1656,19 +1656,19 @@ static int32_t cliDoConn(SCliThrd* pThrd, SCliConn* conn) { transRefCliHandle(conn); ret = uv_timer_start(conn->timer, cliConnTimeout, TRANS_CONN_TIMEOUT, 0); if (ret != 0) { - tError("%s conn %p failed to start timer since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to start timer since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception2); } return TSDB_CODE_RPC_ASYNC_IN_PROCESS; _exception1: - tError("%s conn %p failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); + tError("%s conn:%p, failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); cliDestroyConn(conn, true); return code; _exception2: TAOS_UNUSED(transUnrefCliHandle(conn)); - tError("%s conn %p failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); + tError("%s conn:%p, failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); return code; } @@ -1738,7 +1738,7 @@ void cliConnCb(uv_connect_t* req, int status) { STUB_RAND_NETWORK_ERR(status); if (status != 0) { - tError("%s conn %p failed to connect to %s since %s", CONN_GET_INST_LABEL(pConn), pConn, pConn->dstAddr, + tError("%s conn:%p, failed to connect to %s since %s", CONN_GET_INST_LABEL(pConn), pConn, pConn->dstAddr, uv_strerror(status)); cliMayUpdateFqdnCache(pThrd->fqdn2ipCache, pConn->dstAddr); TAOS_UNUSED(transUnrefCliHandle(pConn)); @@ -1747,14 +1747,14 @@ void cliConnCb(uv_connect_t* req, int status) { pConn->connnected = 1; code = cliConnSetSockInfo(pConn); if (code != 0) { - tDebug("%s conn %p failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); + tDebug("%s conn:%p, failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } - tTrace("%s conn %p connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn); + tTrace("%s conn:%p, connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn); code = cliBatchSend(pConn, 1); if (code != 0) { - tDebug("%s conn %p failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); + tDebug("%s conn:%p, failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } } @@ -1952,7 +1952,7 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { SReqCtx* pCtx = pReq->ctx; SCliThrd* pThrd = pConn->hostThrd; if (pCtx == NULL) { - tDebug("%s conn %p not need to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, not need to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); return 0; } @@ -1960,11 +1960,11 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { if (pUserCtx == NULL) { pCtx->userCtx.st = taosGetTimestampUs(); code = taosHashPut(pConn->pQTable, &qid, sizeof(qid), &pCtx->userCtx, sizeof(pCtx->userCtx)); - tDebug("%s conn %p succ to add statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to add statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } else { transCtxMerge(pUserCtx, &pCtx->userCtx); pUserCtx->st = taosGetTimestampUs(); - tDebug("%s conn %p succ to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } return 0; } @@ -1987,12 +1987,12 @@ int32_t cliMayGetStateByQid(SCliThrd* pThrd, SCliReq* pReq, SCliConn** pConn) { transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_STATE_DROPED; } - tDebug("%s conn %p failed to get statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, failed to get statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_ASYNC_IN_PROCESS; } else { *pConn = pState->conn; - tDebug("%s conn %p succ to get conn of statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to get conn of statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } transReleaseExHandle(transGetRefMgt(), qid); return 0; @@ -2010,10 +2010,10 @@ int32_t cliHandleState_mayUpdateState(SCliConn* pConn, SCliReq* pReq) { SReqState state = {.conn = pConn, .arg = NULL}; code = taosHashPut(pThrd->pIdConnTable, &qid, sizeof(qid), &state, sizeof(state)); if (code != 0) { - tDebug("%s conn %p failed to statue, sid:%" PRId64 " since %s", transLabel(pThrd->pInst), pConn, qid, + tDebug("%s conn:%p, failed to statue, sid:%" PRId64 " since %s", transLabel(pThrd->pInst), pConn, qid, tstrerror(code)); } else { - tDebug("%s conn %p succ to add statue, sid:%" PRId64 " (1)", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to add statue, sid:%" PRId64 " (1)", transLabel(pThrd->pInst), pConn, qid); } TAOS_UNUSED(cliHandleState_mayUpdateStateCtx(pConn, pReq)); @@ -2050,7 +2050,7 @@ void cliHandleBatchReq(SCliThrd* pThrd, SCliReq* pReq) { } else if (code == 0) { code = addConnToHeapCache(pThrd->connHeapCache, pConn); if (code != 0) { - tWarn("%s conn %p failed to added to heap cache since %s", pInst->label, pConn, tstrerror(code)); + tWarn("%s conn:%p, failed to added to heap cache since %s", pInst->label, pConn, tstrerror(code)); } } else { if (code == TSDB_CODE_OUT_OF_MEMORY && pConn == NULL) { @@ -2063,11 +2063,11 @@ void cliHandleBatchReq(SCliThrd* pThrd, SCliReq* pReq) { } code = cliSendReq(pConn, pReq); if (code != 0) { - tWarn("%s conn %p failed to send req since %s", pInst->label, pConn, tstrerror(code)); + tWarn("%s conn:%p, failed to send req since %s", pInst->label, pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } - tTrace("%s conn %p ready", pInst->label, pConn); + tTrace("%s conn:%p, ready", pInst->label, pConn); return; _exception: @@ -2110,7 +2110,7 @@ static void cliDoReq(queue* wq, SCliThrd* pThrd) { QUEUE_INIT(&conn->batchSendq); code = cliBatchSend(conn, 1); if (code != 0) { - tWarn("%s conn %p failed to send req since %s", pThrd->pInst->label, conn, tstrerror(code)); + tWarn("%s conn:%p, failed to send req since %s", pThrd->pInst->label, conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); } } @@ -2160,7 +2160,7 @@ static FORCE_INLINE void destroyReq(void* arg) { removeReqFromSendQ(pReq); STraceId* trace = &pReq->msg.info.traceId; - tGDebug("free memory:%p, free ctx: %p", pReq, pReq->ctx); + tGTrace("free memory:%p, free ctx:%p", pReq, pReq->ctx); if (pReq->ctx) { destroyReqCtx(pReq->ctx); @@ -2517,7 +2517,7 @@ static FORCE_INLINE void doDelayTask(void* param) { static FORCE_INLINE void doCloseIdleConn(void* param) { STaskArg* arg = param; SCliConn* conn = arg->param1; - tDebug("%s conn %p idle, close it", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, idle, close it", CONN_GET_INST_LABEL(conn), conn); conn->task = NULL; taosMemoryFree(arg); @@ -2559,7 +2559,7 @@ static FORCE_INLINE void cliPerfLog_epset(SCliConn* pConn, SCliReq* pReq) { tWarn("failed to debug epset since %s", tstrerror(code)); return; } - tTrace("%s conn %p extract epset from msg", CONN_GET_INST_LABEL(pConn), pConn); + tTrace("%s conn:%p, extract epset from msg", CONN_GET_INST_LABEL(pConn), pConn); return; } @@ -2846,10 +2846,10 @@ int32_t cliNotifyImplCb(SCliConn* pConn, SCliReq* pReq, STransMsg* pResp) { return 0; } if (pCtx->pSem || pCtx->syncMsgRef != 0) { - tGTrace("%s conn %p(sync) handle resp", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p(sync) handle resp", CONN_GET_INST_LABEL(pConn), pConn); if (pCtx->pSem) { if (pCtx->pRsp == NULL) { - tGTrace("%s conn %p(sync) failed to resp, ignore", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p(sync) failed to resp, ignore", CONN_GET_INST_LABEL(pConn), pConn); } else { memcpy((char*)pCtx->pRsp, (char*)pResp, sizeof(*pResp)); } @@ -2875,7 +2875,7 @@ int32_t cliNotifyImplCb(SCliConn* pConn, SCliReq* pReq, STransMsg* pResp) { } } } else { - tGTrace("%s conn %p handle resp", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p, handle resp", CONN_GET_INST_LABEL(pConn), pConn); if (pResp->info.hasEpSet == 1) { SEpSet epset = {0}; if (transCreateUserEpsetFromReqEpset(pCtx->epSet, &epset) != 0) { @@ -2938,7 +2938,7 @@ void transRefCliHandle(void* handle) { SCliConn* conn = (SCliConn*)handle; conn->ref++; - tTrace("%s conn %p ref %d", CONN_GET_INST_LABEL(conn), conn, conn->ref); + tTrace("%s conn:%p, ref %d", CONN_GET_INST_LABEL(conn), conn, conn->ref); } int32_t transUnrefCliHandle(void* handle) { if (handle == NULL) { @@ -2949,7 +2949,7 @@ int32_t transUnrefCliHandle(void* handle) { conn->ref--; ref = conn->ref; - tTrace("%s conn %p ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); + tTrace("%s conn:%p, ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); if (conn->ref == 0) { cliDestroyConn(conn, true); } @@ -3615,7 +3615,7 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) if (((*st - pCtx->st) / 1000000) >= pInst->readTimeout) { code = taosHashRemove(pThrd->pIdConnTable, qid, sizeof(*qid)); if (code != 0) { - tError("%s conn %p failed to remove state sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to remove state sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); } @@ -3624,11 +3624,11 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) if (taosArrayPush(pQIdBuf, qid) == NULL) { code = terrno; - tError("%s conn %p failed to add sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to add sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); break; } - tWarn("%s conn %p remove timeout msg sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, *qid); + tWarn("%s conn:%p, remove timeout msg sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, *qid); } pIter = taosHashIterate(pConn->pQTable, pIter); } @@ -3642,7 +3642,7 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) transCtxCleanup(p); code = taosHashRemove(pConn->pQTable, qid, sizeof(*qid)); if (code != 0) { - tError("%s conn %p failed to drop ctx of sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to drop ctx of sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); } } @@ -3674,7 +3674,7 @@ static int8_t cliConnRemoveTimeoutMsg(SCliConn* pConn) { if (QUEUE_IS_EMPTY(&set)) { return 0; } - tWarn("%s conn %p do remove timeout msg", pInst->label, pConn); + tWarn("%s conn:%p, do remove timeout msg", pInst->label, pConn); destroyReqInQueue(pConn, &set, TSDB_CODE_RPC_TIMEOUT); return 1; } @@ -3682,7 +3682,7 @@ static FORCE_INLINE int8_t shouldSWitchToOtherConn(SCliConn* pConn, char* key) { SCliThrd* pThrd = pConn->hostThrd; STrans* pInst = pThrd->pInst; - tDebug("get conn %p from heap cache for key:%s, status:%d, refCnt:%d", pConn, key, pConn->inHeap, pConn->reqRefCnt); + tDebug("get conn:%p from heap cache for key:%s, status:%d, refCnt:%d", pConn, key, pConn->inHeap, pConn->reqRefCnt); int32_t reqsNum = transQueueSize(&pConn->reqsToSend); int32_t reqsSentOut = transQueueSize(&pConn->reqsSentOut); int32_t stateNum = taosHashGetSize(pConn->pQTable); @@ -3694,14 +3694,14 @@ static FORCE_INLINE int8_t shouldSWitchToOtherConn(SCliConn* pConn, char* key) { if (pConn->list == NULL && pConn->dstAddr != NULL) { pConn->list = taosHashGet((SHashObj*)pThrd->pool, pConn->dstAddr, strlen(pConn->dstAddr)); if (pConn->list != NULL) { - tTrace("conn %p get list %p from pool for key:%s", pConn, pConn->list, key); + tTrace("conn:%p, get list %p from pool for key:%s", pConn, pConn->list, key); } } if (pConn->list && pConn->list->totalSize >= pInst->connLimitNum / 4) { - tWarn("%s conn %p try to remove timeout msg since too many conn created", transLabel(pInst), pConn); + tWarn("%s conn:%p, try to remove timeout msg since too many conn created", transLabel(pInst), pConn); if (cliConnRemoveTimeoutMsg(pConn)) { - tWarn("%s conn %p succ to remove timeout msg", transLabel(pInst), pConn); + tWarn("%s conn:%p, succ to remove timeout msg", transLabel(pInst), pConn); } return 1; } @@ -3724,7 +3724,7 @@ static FORCE_INLINE void logConnMissHit(SCliConn* pConn) { SCliThrd* pThrd = pConn->hostThrd; STrans* pInst = pThrd->pInst; pConn->heapMissHit++; - tDebug("conn %p has %d reqs, %d sentout and %d status in process, total limit:%d, switch to other conn", pConn, + tDebug("conn:%p, has %d reqs, %d sentout and %d status in process, total limit:%d, switch to other conn", pConn, transQueueSize(&pConn->reqsToSend), transQueueSize(&pConn->reqsSentOut), taosHashGetSize(pConn->pQTable), pInst->shareConnLimit); // if (transQueueSize(&pConn->reqsSentOut) >= pInst->shareConnLimit) { @@ -3745,12 +3745,12 @@ static SCliConn* getConnFromHeapCache(SHashObj* pConnHeapCache, char* key) { tTrace("failed to get conn from heap cache for key:%s", key); return NULL; } else { - tTrace("conn %p get conn from heap cache for key:%s", pConn, key); + tTrace("conn:%p, get conn from heap cache for key:%s", pConn, key); if (shouldSWitchToOtherConn(pConn, key)) { SCliConn* pNewConn = NULL; code = balanceConnHeapCache(pConnHeapCache, pConn, &pNewConn); if (code == 1) { - tTrace("conn %p start to handle reqs", pNewConn); + tTrace("conn:%p, start to handle reqs", pNewConn); return pNewConn; } return NULL; @@ -3765,7 +3765,7 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { if (pConn->heap != NULL) { p = pConn->heap; - tTrace("conn %p add to heap cache for key:%s, status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, + tTrace("conn:%p, add to heap cache for key:%s, status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); } else { code = getOrCreateHeap(pConnHeapCacahe, pConn->dstAddr, &p); @@ -3781,14 +3781,14 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { } code = transHeapInsert(p, pConn); - tTrace("conn %p add to heap cache for key:%s, status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, + tTrace("conn:%p, add to heap cache for key:%s, status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); return code; } static int32_t delConnFromHeapCache(SHashObj* pConnHeapCache, SCliConn* pConn) { if (pConn->heap != NULL) { - tTrace("conn %p try to delete from heap cache direct", pConn); + tTrace("conn:%p, try to delete from heap cache direct", pConn); return transHeapDelete(pConn->heap, pConn); } @@ -3799,7 +3799,7 @@ static int32_t delConnFromHeapCache(SHashObj* pConnHeapCache, SCliConn* pConn) { } int32_t code = transHeapDelete(p, pConn); if (code != 0) { - tTrace("conn %p failed delete from heap cache since %s", pConn, tstrerror(code)); + tTrace("conn:%p, failed delete from heap cache since %s", pConn, tstrerror(code)); } return code; } @@ -3864,7 +3864,7 @@ int32_t transHeapInsert(SHeap* heap, SCliConn* p) { // impl later p->reqRefCnt++; if (p->inHeap == 1) { - tTrace("failed to insert conn %p since already in heap", p); + tTrace("failed to insert conn:%p since already in heap", p); return TSDB_CODE_DUP_KEY; } @@ -3881,12 +3881,12 @@ int32_t transHeapDelete(SHeap* heap, SCliConn* p) { } if (p->inHeap == 0) { - tTrace("failed to del conn %p since not in heap", p); + tTrace("failed to del conn:%p since not in heap", p); return 0; } else { int64_t now = taosGetTimestampMs(); if (p->forceDelFromHeap == 0 && now - p->lastAddHeapTime < 10000) { - tTrace("conn %p not added/delete to heap frequently", p); + tTrace("conn:%p, not added/delete to heap frequently", p); return TSDB_CODE_RPC_ASYNC_IN_PROCESS; } } @@ -3895,11 +3895,11 @@ int32_t transHeapDelete(SHeap* heap, SCliConn* p) { p->reqRefCnt--; if (p->reqRefCnt == 0) { heapRemove(heap->heap, &p->node); - tTrace("conn %p delete from heap", p); + tTrace("conn:%p, delete from heap", p); } else if (p->reqRefCnt < 0) { - tTrace("conn %p has %d reqs, not delete from heap,assert", p, p->reqRefCnt); + tTrace("conn:%p, has %d reqs, not delete from heap,assert", p, p->reqRefCnt); } else { - tTrace("conn %p has %d reqs, not delete from heap", p, p->reqRefCnt); + tTrace("conn:%p, has %d reqs, not delete from heap", p, p->reqRefCnt); } return 0; } diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index 582bb15b00..ad79fa0a82 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -215,7 +215,7 @@ void uvAllocRecvBufferCb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* b SConnBuffer* pBuf = &conn->readBuf; int32_t code = transAllocBuffer(pBuf, buf); if (code < 0) { - tError("conn %p failed to alloc buffer, since %s", conn, tstrerror(code)); + tError("conn:%p, failed to alloc buffer, since %s", conn, tstrerror(code)); } } @@ -393,24 +393,24 @@ static void uvPerfLog_receive(SSvrConn* pConn, STransMsgHead* pHead, STransMsg* if (pConn->status == ConnNormal && pHead->noResp == 0) { if (cost >= EXCEPTION_LIMIT_US) { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, cost:%dus, recv exception, seqNum:%" PRId64 + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, cost:%dus, recv exception, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, (int)cost, pTransMsg->info.seqNum, pTransMsg->info.qId); } else { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, cost:%dus, seqNum:%" PRId64 ", sid:%" PRId64 "", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, cost:%dus, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, (int)cost, pTransMsg->info.seqNum, pTransMsg->info.qId); } } else { if (cost >= EXCEPTION_LIMIT_US) { tGDebug( - "%s conn %p %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, recv exception, " + "%s conn:%p, %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, recv exception, " "seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, pHead->noResp, pTransMsg->code, (int)(cost), pTransMsg->info.seqNum, pTransMsg->info.qId); } else { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, seqNum:%" PRId64 + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, seqNum:%" PRId64 ", " "sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, @@ -440,23 +440,23 @@ static int32_t uvMayHandleReleaseReq(SSvrConn* pConn, STransMsgHead* pHead) { if (pHead->msgType == TDMT_SCH_TASK_RELEASE) { int64_t qId = taosHton64(pHead->qid); if (qId <= 0) { - tError("conn %p recv release, but invalid sid:%" PRId64 "", pConn, qId); + tError("conn:%p, recv release, but invalid sid:%" PRId64 "", pConn, qId); code = TSDB_CODE_RPC_NO_STATE; } else { void* p = taosHashGet(pConn->pQTable, &qId, sizeof(qId)); if (p == NULL) { code = TSDB_CODE_RPC_NO_STATE; - tTrace("conn %p recv release, and releady release by server sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, recv release, and releady release by server sid:%" PRId64 "", pConn, qId); } else { SSvrRegArg* arg = p; (pInst->cfp)(pInst->parent, &(arg->msg), NULL); - tTrace("conn %p recv release, notify server app, sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, recv release, notify server app, sid:%" PRId64 "", pConn, qId); code = taosHashRemove(pConn->pQTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("conn %p failed to remove sid:%" PRId64 "", pConn, qId); + tDebug("conn:%p, failed to remove sid:%" PRId64 "", pConn, qId); } - tTrace("conn %p clear state,sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, clear state,sid:%" PRId64 "", pConn, qId); } } @@ -468,7 +468,7 @@ static int32_t uvMayHandleReleaseReq(SSvrConn* pConn, STransMsgHead* pHead) { SSvrRespMsg* srvMsg = taosMemoryCalloc(1, sizeof(SSvrRespMsg)); if (srvMsg == NULL) { - tError("conn %p recv release, failed to send release-resp since %s", pConn, tstrerror(terrno)); + tError("conn:%p, recv release, failed to send release-resp since %s", pConn, tstrerror(terrno)); taosMemoryFree(pHead); return terrno; } @@ -496,7 +496,7 @@ bool uvConnMayGetUserInfo(SSvrConn* pConn, STransMsgHead** ppHead, int32_t* msgL if (pHead->withUserInfo) { STransMsgHead* tHead = taosMemoryCalloc(1, len - sizeof(pInst->user)); if (tHead == NULL) { - tError("conn %p failed to get user info since %s", pConn, tstrerror(terrno)); + tError("conn:%p, failed to get user info since %s", pConn, tstrerror(terrno)); return false; } memcpy((char*)tHead, (char*)pHead, TRANS_MSG_OVERHEAD); @@ -524,28 +524,28 @@ static bool uvHandleReq(SSvrConn* pConn) { int8_t resetBuf = 0; int msgLen = transDumpFromBuffer(&pConn->readBuf, (char**)&pHead, 0); if (msgLen <= 0) { - tError("%s conn %p read invalid packet", transLabel(pInst), pConn); + tError("%s conn:%p, read invalid packet", transLabel(pInst), pConn); return false; } if (transDecompressMsg((char**)&pHead, &msgLen) < 0) { - tError("%s conn %p recv invalid packet, failed to decompress", transLabel(pInst), pConn); + tError("%s conn:%p, recv invalid packet, failed to decompress", transLabel(pInst), pConn); taosMemoryFree(pHead); return false; } if (uvConnMayGetUserInfo(pConn, &pHead, &msgLen) == true) { - tDebug("%s conn %p get user info", transLabel(pInst), pConn); + tDebug("%s conn:%p, get user info", transLabel(pInst), pConn); } else { if (pConn->userInited == 0) { taosMemoryFree(pHead); - tDebug("%s conn %p failed get user info since %s", transLabel(pInst), pConn, tstrerror(terrno)); + tDebug("%s conn:%p, failed get user info since %s", transLabel(pInst), pConn, tstrerror(terrno)); return false; } - tDebug("%s conn %p no need get user info", transLabel(pInst), pConn); + tDebug("%s conn:%p, no need get user info", transLabel(pInst), pConn); } if (resetBuf == 0) { - tTrace("%s conn %p not reset read buf", transLabel(pInst), pConn); + tTrace("%s conn:%p, not reset read buf", transLabel(pInst), pConn); } pHead->code = htonl(pHead->code); @@ -573,7 +573,7 @@ static bool uvHandleReq(SSvrConn* pConn) { if (pHead->seqNum == 0) { STraceId* trace = &pHead->traceId; - tGError("%s conn %p received invalid seqNum, msgType:%s", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType)); + tGError("%s conn:%p, received invalid seqNum, msgType:%s", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType)); return false; } @@ -623,7 +623,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { code = transSetReadOption((uv_handle_t*)cli); if (code != 0) { - tWarn("%s conn %p failed to set recv opt since %s", transLabel(pInst), conn, tstrerror(code)); + tWarn("%s conn:%p, failed to set recv opt since %s", transLabel(pInst), conn, tstrerror(code)); } SConnBuffer* pBuf = &conn->readBuf; @@ -632,7 +632,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { if (pBuf->len <= TRANS_PACKET_LIMIT) { while (transReadComplete(pBuf)) { if (true == pBuf->invalid || false == uvHandleReq(conn)) { - tError("%s conn %p read invalid packet, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, + tError("%s conn:%p, read invalid packet, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, conn->src); conn->broken = true; transUnrefSrvHandle(conn); @@ -641,7 +641,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { } return; } else { - tError("%s conn %p read invalid packet, exceed limit, received from %s, local info:%s", transLabel(pInst), conn, + tError("%s conn:%p, read invalid packet, exceed limit, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, conn->src); transUnrefSrvHandle(conn); return; @@ -651,7 +651,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { return; } - tDebug("%s conn %p read error:%s", transLabel(pInst), conn, uv_err_name(nread)); + tDebug("%s conn:%p, read error:%s", transLabel(pInst), conn, uv_err_name(nread)); if (nread < 0) { conn->broken = true; transUnrefSrvHandle(conn); @@ -668,7 +668,7 @@ void uvAllocConnBufferCb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* b void uvOnTimeoutCb(uv_timer_t* handle) { // opt SSvrConn* pConn = handle->data; - tError("conn %p time out", pConn); + tError("conn:%p, time out", pConn); } void uvOnSendCb(uv_write_t* req, int status) { @@ -683,7 +683,7 @@ void uvOnSendCb(uv_write_t* req, int status) { freeWReqToWQ(&conn->wq, wrapper); - tDebug("%s conn %p send data out ", transLabel(conn->pInst), conn); + tDebug("%s conn:%p, send data out ", transLabel(conn->pInst), conn); if (status == 0) { while (!QUEUE_IS_EMPTY(&src)) { queue* head = QUEUE_HEAD(&src); @@ -691,7 +691,7 @@ void uvOnSendCb(uv_write_t* req, int status) { SSvrRespMsg* smsg = QUEUE_DATA(head, SSvrRespMsg, q); STraceId* trace = &smsg->msg.info.traceId; - tGDebug("%s conn %p msg already send out, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(conn->pInst), conn, + tGDebug("%s conn:%p, msg already send out, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(conn->pInst), conn, smsg->msg.info.seqNum, smsg->msg.info.qId); destroySmsg(smsg); } @@ -702,7 +702,7 @@ void uvOnSendCb(uv_write_t* req, int status) { SSvrRespMsg* smsg = QUEUE_DATA(head, SSvrRespMsg, q); STraceId* trace = &smsg->msg.info.traceId; - tGDebug("%s conn %p failed to send, seqNum:%" PRId64 ", sid:%" PRId64 " since %s", transLabel(conn->pInst), conn, + tGDebug("%s conn:%p, failed to send, seqNum:%" PRId64 ", sid:%" PRId64 " since %s", transLabel(conn->pInst), conn, smsg->msg.info.seqNum, smsg->msg.info.qId, uv_err_name(status)); destroySmsg(smsg); } @@ -770,7 +770,7 @@ static int32_t uvPrepareSendData(SSvrRespMsg* smsg, uv_buf_t* wb) { } STraceId* trace = &pMsg->info.traceId; - tGDebug("%s conn %p %s is sent to %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), + tGDebug("%s conn:%p, %s is sent to %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, len, pMsg->info.seqNum, pMsg->info.qId); wb->base = (char*)pHead; @@ -780,7 +780,7 @@ static int32_t uvPrepareSendData(SSvrRespMsg* smsg, uv_buf_t* wb) { static int32_t uvBuildToSendData(SSvrConn* pConn, uv_buf_t** ppBuf, int32_t* bufNum, queue* toSendQ) { int32_t code = 0; int32_t size = transQueueSize(&pConn->resps); - tDebug("%s conn %p has %d msg to send", transLabel(pConn->pInst), pConn, size); + tDebug("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); if (size == 0) { return 0; } @@ -828,13 +828,13 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { } int32_t size = transQueueSize(&pConn->resps); if (size == 0) { - tDebug("%s conn %p has %d msg to send", transLabel(pConn->pInst), pConn, size); + tDebug("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); return; } uv_write_t* req = allocWReqFromWQ(&pConn->wq, pConn); if (req == NULL) { - uError("%s conn %p failed to alloc write req since %s", transLabel(pConn->pInst), pConn, tstrerror(terrno)); + uError("%s conn:%p, failed to alloc write req since %s", transLabel(pConn->pInst), pConn, tstrerror(terrno)); transUnrefSrvHandle(pConn); return; } @@ -844,11 +844,11 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { int32_t bufNum = 0; code = uvBuildToSendData(pConn, &pBuf, &bufNum, &pWreq->node); if (code != 0) { - tError("%s conn %p failed to send data", transLabel(pConn->pInst), pConn); + tError("%s conn:%p, failed to send data", transLabel(pConn->pInst), pConn); return; } if (bufNum == 0) { - tDebug("%s conn %p no data to send", transLabel(pConn->pInst), pConn); + tDebug("%s conn:%p, no data to send", transLabel(pConn->pInst), pConn); return; } @@ -856,7 +856,7 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { int32_t ret = uv_write(req, (uv_stream_t*)pConn->pTcp, pBuf, bufNum, uvOnSendCb); if (ret != 0) { - tError("conn %p failed to write data since %s", pConn, uv_err_name(ret)); + tError("conn:%p, failed to write data since %s", pConn, uv_err_name(ret)); pConn->broken = true; while (!QUEUE_IS_EMPTY(&pWreq->node)) { queue* head = QUEUE_HEAD(&pWreq->node); @@ -876,13 +876,13 @@ int32_t uvMayHandleReleaseResp(SSvrRespMsg* pMsg) { if (pMsg->msg.msgType == TDMT_SCH_TASK_RELEASE && qid > 0) { SSvrRegArg* p = taosHashGet(pConn->pQTable, &qid, sizeof(qid)); if (p == NULL) { - tError("%s conn %p already release sid:%" PRId64 "", transLabel(pConn->pInst), pConn, qid); + tError("%s conn:%p, already release sid:%" PRId64 "", transLabel(pConn->pInst), pConn, qid); return TSDB_CODE_RPC_NO_STATE; } else { transFreeMsg(p->msg.pCont); code = taosHashRemove(pConn->pQTable, &qid, sizeof(qid)); if (code != 0) { - tError("%s conn %p failed to release sid:%" PRId64 " since %s", transLabel(pConn->pInst), pConn, qid, + tError("%s conn:%p, failed to release sid:%" PRId64 " since %s", transLabel(pConn->pInst), pConn, qid, tstrerror(code)); } } @@ -1001,18 +1001,18 @@ static void uvShutDownCb(uv_shutdown_t* req, int status) { static void uvWorkDoTask(uv_work_t* req) { // doing time-consumeing task // only auth conn currently, add more func later - tTrace("conn %p start to be processed in BG Thread", req->data); + tTrace("conn:%p, start to be processed in BG Thread", req->data); return; } static void uvWorkAfterTask(uv_work_t* req, int status) { if (status != 0) { - tTrace("conn %p failed to processed ", req->data); + tTrace("conn:%p, failed to processed ", req->data); } // Done time-consumeing task // add more func later // this func called in main loop - tTrace("conn %p already processed ", req->data); + tTrace("conn:%p, already processed ", req->data); taosMemoryFree(req); } @@ -1112,18 +1112,18 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { if ((code = uv_accept(q, (uv_stream_t*)(pConn->pTcp))) == 0) { uv_os_fd_t fd; TAOS_UNUSED(uv_fileno((const uv_handle_t*)pConn->pTcp, &fd)); - tTrace("conn %p created, fd:%d", pConn, fd); + tTrace("conn:%p, created, fd:%d", pConn, fd); struct sockaddr_storage peername, sockname; // Get and valid the peer info int addrlen = sizeof(peername); if ((code = uv_tcp_getpeername(pConn->pTcp, (struct sockaddr*)&peername, &addrlen)) != 0) { - tError("conn %p failed to get peer info since %s", pConn, uv_strerror(code)); + tError("conn:%p, failed to get peer info since %s", pConn, uv_strerror(code)); transUnrefSrvHandle(pConn); return; } if (peername.ss_family != AF_INET) { - tError("conn %p failed to get peer info since not support other protocol except ipv4", pConn); + tError("conn:%p, failed to get peer info since not support other protocol except ipv4", pConn); transUnrefSrvHandle(pConn); return; } @@ -1132,12 +1132,12 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { // Get and valid the sock info addrlen = sizeof(sockname); if ((code = uv_tcp_getsockname(pConn->pTcp, (struct sockaddr*)&sockname, &addrlen)) != 0) { - tError("conn %p failed to get local info since %s", pConn, uv_strerror(code)); + tError("conn:%p, failed to get local info since %s", pConn, uv_strerror(code)); transUnrefSrvHandle(pConn); return; } if (sockname.ss_family != AF_INET) { - tError("conn %p failed to get sock info since not support other protocol except ipv4", pConn); + tError("conn:%p, failed to get sock info since not support other protocol except ipv4", pConn); transUnrefSrvHandle(pConn); return; } @@ -1156,7 +1156,7 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { } code = uv_read_start((uv_stream_t*)(pConn->pTcp), uvAllocRecvBufferCb, uvOnRecvCb); if (code != 0) { - tWarn("conn %p failed to start to read since %s", pConn, uv_err_name(code)); + tWarn("conn:%p, failed to start to read since %s", pConn, uv_err_name(code)); transUnrefSrvHandle(pConn); return; } @@ -1341,7 +1341,7 @@ static FORCE_INLINE SSvrConn* createConn(void* hThrd) { pConn->refId = exh->refId; QUEUE_INIT(&exh->q); - tTrace("%s handle %p, conn %p created, refId:%" PRId64, transLabel(pInst), exh, pConn, pConn->refId); + tTrace("%s handle %p, conn:%p created, refId:%" PRId64, transLabel(pInst), exh, pConn, pConn->refId); pConn->pQTable = taosHashInit(1024, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK); if (pConn->pQTable == NULL) { @@ -1405,7 +1405,7 @@ static FORCE_INLINE void destroyConn(SSvrConn* conn, bool clear) { if (clear) { if (!uv_is_closing((uv_handle_t*)conn->pTcp)) { - tTrace("conn %p to be destroyed", conn); + tTrace("conn:%p, to be destroyed", conn); uv_close((uv_handle_t*)conn->pTcp, uvDestroyConn); } } @@ -1421,7 +1421,7 @@ void uvConnDestroyAllState(SSvrConn* p) { SSvrRegArg* arg = pIter; int64_t* qid = taosHashGetKey(pIter, NULL); (pInst->cfp)(pInst->parent, &(arg->msg), NULL); - tTrace("conn %p broken, notify server app, sid:%" PRId64 "", p, *qid); + tTrace("conn:%p, broken, notify server app, sid:%" PRId64 "", p, *qid); pIter = taosHashIterate(pQTable, pIter); } @@ -1441,7 +1441,7 @@ static void uvDestroyConn(uv_handle_t* handle) { transRemoveExHandle(uvGetConnRefOfThrd(thrd), conn->refId); STrans* pInst = thrd->pInst; - tDebug("%s conn %p destroy", transLabel(pInst), conn); + tDebug("%s conn:%p, destroy", transLabel(pInst), conn); transQueueDestroy(&conn->resps); @@ -1718,7 +1718,7 @@ void uvHandleRelease(SSvrRespMsg* msg, SWorkThrd* thrd) { return; } void uvHandleResp(SSvrRespMsg* msg, SWorkThrd* thrd) { // send msg to client - tDebug("%s conn %p start to send resp (2/2)", transLabel(thrd->pInst), msg->pConn); + tDebug("%s conn:%p, start to send resp (2/2)", transLabel(thrd->pInst), msg->pConn); uvStartSendResp(msg); } @@ -1726,7 +1726,7 @@ int32_t uvHandleStateReq(SSvrRespMsg* msg) { int32_t code = 0; SSvrConn* conn = msg->pConn; int64_t qid = msg->msg.info.qId; - tDebug("%s conn %p start to register brokenlink callback, sid:%" PRId64 "", transLabel(conn->pInst), conn, qid); + tDebug("%s conn:%p, start to register brokenlink callback, sid:%" PRId64 "", transLabel(conn->pInst), conn, qid); SSvrRegArg arg = {.notifyCount = 0, .init = 1, .msg = msg->msg}; SSvrRegArg* p = taosHashGet(conn->pQTable, &qid, sizeof(qid)); @@ -1735,12 +1735,12 @@ int32_t uvHandleStateReq(SSvrRespMsg* msg) { } code = taosHashPut(conn->pQTable, &qid, sizeof(qid), &arg, sizeof(arg)); - if (code == 0) tDebug("conn %p register brokenlink callback succ", conn); + if (code == 0) tDebug("conn:%p, register brokenlink callback succ", conn); return code; } void uvHandleRegister(SSvrRespMsg* msg, SWorkThrd* thrd) { SSvrConn* conn = msg->pConn; - tDebug("%s conn %p register brokenlink callback", transLabel(thrd->pInst), conn); + tDebug("%s conn:%p, register brokenlink callback", transLabel(thrd->pInst), conn); int32_t code = uvHandleStateReq(msg); taosMemoryFree(msg); } @@ -1859,7 +1859,7 @@ void transRefSrvHandle(void* handle) { } SSvrConn* pConn = handle; pConn->ref++; - tTrace("conn %p ref count:%d", pConn, pConn->ref); + tTrace("conn:%p, ref count:%d", pConn, pConn->ref); } void transUnrefSrvHandle(void* handle) { @@ -1868,7 +1868,7 @@ void transUnrefSrvHandle(void* handle) { } SSvrConn* pConn = handle; pConn->ref--; - tTrace("conn %p ref count:%d", pConn, pConn->ref); + tTrace("conn:%p, ref count:%d", pConn, pConn->ref); if (pConn->ref == 0) { destroyConn((SSvrConn*)handle, true); } @@ -1903,7 +1903,7 @@ int32_t transReleaseSrvHandle(void* handle, int32_t status) { m->msg = tmsg; m->type = Normal; - tDebug("%s conn %p start to send %s, sid:%" PRId64 "", transLabel(pThrd->pInst), exh->handle, TMSG_INFO(tmsg.msgType), + tDebug("%s conn:%p, start to send %s, sid:%" PRId64 "", transLabel(pThrd->pInst), exh->handle, TMSG_INFO(tmsg.msgType), qId); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); @@ -1958,7 +1958,7 @@ int32_t transSendResponse(const STransMsg* msg) { m->type = Normal; STraceId* trace = (STraceId*)&msg->info.traceId; - tGDebug("conn %p start to send resp (1/2)", exh->handle); + tGDebug("conn:%p, start to send resp (1/2)", exh->handle); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); transReleaseExHandle(msg->info.refIdMgt, refId); @@ -2006,7 +2006,7 @@ int32_t transRegisterMsg(const STransMsg* msg) { m->type = Register; STrans* pInst = pThrd->pInst; - tDebug("%s conn %p start to register brokenlink callback", transLabel(pInst), exh->handle); + tDebug("%s conn:%p, start to register brokenlink callback", transLabel(pInst), exh->handle); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); transReleaseExHandle(msg->info.refIdMgt, refId); From 9a8fc303ae1606a265d27eb2e7159f208de1f400 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 16:39:48 +0800 Subject: [PATCH 08/34] enh: adjust log format --- source/client/src/clientImpl.c | 4 ++-- source/dnode/vnode/src/sma/smaRollup.c | 4 ++-- source/libs/catalog/src/ctgAsync.c | 2 +- source/libs/scheduler/src/schRemote.c | 5 +++-- source/libs/scheduler/src/scheduler.c | 6 +++--- source/libs/transport/src/thttp.c | 12 +++++------ source/libs/transport/src/transCli.c | 6 +++--- source/libs/transport/src/transComm.c | 2 +- source/libs/transport/src/transSvr.c | 30 +++++++++++++------------- 9 files changed, 36 insertions(+), 35 deletions(-) diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 82228d7547..e4e5660fd1 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -1789,8 +1789,8 @@ int32_t doProcessMsgFromServerImpl(SRpcMsg* pMsg, SEpSet* pEpSet) { char tbuf[40] = {0}; TRACE_TO_STR(trace, tbuf); - tscDebug("processMsgFromServer handle %p, message: %s, size:%d, code: %s, QID:%s", pMsg->info.handle, - TMSG_INFO(pMsg->msgType), pMsg->contLen, tstrerror(pMsg->code), tbuf); + tscDebug("QID:%s, process message from server, handle:%p, message:%s, size:%d, code:%s", tbuf, pMsg->info.handle, + TMSG_INFO(pMsg->msgType), pMsg->contLen, tstrerror(pMsg->code)); if (pSendInfo->requestObjRefId != 0) { SRequestObj* pRequest = (SRequestObj*)taosAcquireRef(clientReqRefPool, pSendInfo->requestObjRefId); diff --git a/source/dnode/vnode/src/sma/smaRollup.c b/source/dnode/vnode/src/sma/smaRollup.c index 7d83dbcf84..3c5634f763 100644 --- a/source/dnode/vnode/src/sma/smaRollup.c +++ b/source/dnode/vnode/src/sma/smaRollup.c @@ -1249,7 +1249,7 @@ int32_t tdRSmaPersistExecImpl(SRSmaStat *pRSmaStat, SHashObj *pInfoHash) { if (streamFlushed) { pRSmaInfo->items[i].streamFlushed = 1; if (++nStreamFlushed >= nTaskInfo) { - smaInfo("vgId:%d, rsma commit, checkpoint ready, %d us consumed, received/total: %d/%d", TD_VID(pVnode), + smaInfo("vgId:%d, rsma commit, checkpoint ready, %d us consumed, received/total:%d/%d", TD_VID(pVnode), nSleep * 10, nStreamFlushed, nTaskInfo); taosHashCancelIterate(pInfoHash, infoHash); goto _checkpoint; @@ -1260,7 +1260,7 @@ int32_t tdRSmaPersistExecImpl(SRSmaStat *pRSmaStat, SHashObj *pInfoHash) { } taosUsleep(10); ++nSleep; - smaDebug("vgId:%d, rsma commit, wait for checkpoint ready, %d us elapsed, received/total: %d/%d", TD_VID(pVnode), + smaDebug("vgId:%d, rsma commit, wait for checkpoint ready, %d us elapsed, received/total:%d/%d", TD_VID(pVnode), nSleep * 10, nStreamFlushed, nTaskInfo); } } while (0); diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index b6c66958e3..55d69baf70 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -1519,7 +1519,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { int32_t taskDone = atomic_add_fetch_32(&pJob->taskDone, 1); if (taskDone < taosArrayGetSize(pJob->pTasks)) { - qDebug("QID:0x%" PRIx64 ", task done: %d, total: %d", pJob->queryId, taskDone, + qDebug("QID:0x%" PRIx64 ", task done:%d, total:%d", pJob->queryId, taskDone, (int32_t)taosArrayGetSize(pJob->pTasks)); ctgUpdateJobErrCode(pJob, rspCode); diff --git a/source/libs/scheduler/src/schRemote.c b/source/libs/scheduler/src/schRemote.c index b18decfff2..f6b7c5fefa 100644 --- a/source/libs/scheduler/src/schRemote.c +++ b/source/libs/scheduler/src/schRemote.c @@ -489,7 +489,8 @@ int32_t schHandleCallback(void *param, SDataBuf *pMsg, int32_t rspCode) { SSchTask *pTask = NULL; SSchJob *pJob = NULL; - qDebug("begin to handle rsp msg, type:%s, handle:%p, code:%s", TMSG_INFO(pMsg->msgType), pMsg->handle, + int64_t qid = pParam->queryId; + qDebug("QID:0x%" PRIx64 ", begin to handle rsp msg, type:%s, handle:%p, code:%s", qid,TMSG_INFO(pMsg->msgType), pMsg->handle, tstrerror(rspCode)); SCH_ERR_JRET(schProcessOnCbBegin(&pJob, &pTask, pParam->queryId, pParam->refId, pParam->taskId)); @@ -503,7 +504,7 @@ _return: taosMemoryFreeClear(pMsg->pData); taosMemoryFreeClear(pMsg->pEpSet); - qDebug("end to handle rsp msg, type:%s, handle:%p, code:%s", TMSG_INFO(pMsg->msgType), pMsg->handle, + qDebug("QID:0x%" PRIx64 ", end to handle rsp msg, type:%s, handle:%p, code:%s", qid, TMSG_INFO(pMsg->msgType), pMsg->handle, tstrerror(rspCode)); SCH_RET(code); diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index f99fe112de..75cfdc7c36 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -62,7 +62,7 @@ int32_t schedulerInit() { } int32_t schedulerExecJob(SSchedulerReq *pReq, int64_t *pJobId) { - qDebug("scheduler %s exec job start", pReq->syncReq ? "SYNC" : "ASYNC"); + qDebug("scheduler %s exec job will start", pReq->syncReq ? "SYNC" : "ASYNC"); int32_t code = 0; SSchJob *pJob = NULL; @@ -111,7 +111,7 @@ int32_t schedulerGetTasksStatus(int64_t jobId, SArray *pSub) { for (int32_t m = 0; m < pLevel->taskNum; ++m) { SSchTask *pTask = taosArrayGet(pLevel->subTasks, m); if (NULL == pTask) { - qError("failed to get task %d, total: %d", m, pLevel->taskNum); + qError("failed to get task %d, total:%d", m, pLevel->taskNum); SCH_ERR_JRET(TSDB_CODE_SCH_INTERNAL_ERROR); } @@ -120,7 +120,7 @@ int32_t schedulerGetTasksStatus(int64_t jobId, SArray *pSub) { TAOS_STRCPY(subDesc.status, jobTaskStatusStr(pTask->status)); if (NULL == taosArrayPush(pSub, &subDesc)) { - qError("taosArrayPush task %d failed, error: %x, ", m, terrno); + qError("taosArrayPush task %d failed, error:0x%x", m, terrno); SCH_ERR_JRET(terrno); } } diff --git a/source/libs/transport/src/thttp.c b/source/libs/transport/src/thttp.c index deb5f07436..4d153c5443 100644 --- a/source/libs/transport/src/thttp.c +++ b/source/libs/transport/src/thttp.c @@ -235,7 +235,7 @@ static FORCE_INLINE int32_t taosBuildDstAddr(const char* server, uint16_t port, uint32_t ip = 0; int32_t code = taosGetIpv4FromFqdn(server, &ip); if (code) { - tError("http-report failed to resolving domain names %s, reason: %s", server, tstrerror(code)); + tError("http-report failed to resolving domain names %s, reason:%s", server, tstrerror(code)); return TSDB_CODE_RPC_FQDN_ERROR; } char buf[TD_IP_LEN] = {0}; @@ -332,7 +332,7 @@ static void httpMayDiscardMsg(SHttpModule* http, SAsyncItem* item) { QUEUE_REMOVE(h); msg = QUEUE_DATA(h, SHttpMsg, q); if (!msg->quit) { - tError("http-report failed to report chanId:%" PRId64 ",seq:%" PRId64 ", reason: %s", msg->chanId, msg->seq, + tError("http-report failed to report chanId:%" PRId64 ",seq:%" PRId64 ", reason:%s", msg->chanId, msg->seq, tstrerror(TSDB_CODE_HTTP_MODULE_QUIT)); httpDestroyMsg(msg); } else { @@ -471,7 +471,7 @@ static void clientSentCb(uv_write_t* req, int32_t status) { STUB_RAND_NETWORK_ERR(status); SHttpClient* cli = req->data; if (status != 0) { - tError("http-report failed to send data, reason: %s, dst:%s:%d, chanId:%" PRId64 ", seq:%" PRId64 "", + tError("http-report failed to send data, reason:%s, dst:%s:%d, chanId:%" PRId64 ", seq:%" PRId64 "", uv_strerror(status), cli->addr, cli->port, cli->chanId, cli->seq); if (!uv_is_closing((uv_handle_t*)&cli->tcp)) { uv_close((uv_handle_t*)&cli->tcp, clientCloseCb); @@ -725,7 +725,7 @@ static void httpHandleReq(SHttpMsg* msg) { END: if (ignore == false) { - tError("http-report failed to report to addr: %s:%d, chanId:%" PRId64 ",seq:%" PRId64 " reason:%s", msg->server, + tError("http-report failed to report to addr:%s:%d, chanId:%" PRId64 ",seq:%" PRId64 " reason:%s", msg->server, msg->port, chanId, msg->seq, tstrerror(code)); } httpDestroyMsg(msg); @@ -937,12 +937,12 @@ int64_t taosInitHttpChan() { } void taosDestroyHttpChan(int64_t chanId) { - tDebug("http-report send quit, chanId: %" PRId64 "", chanId); + tDebug("http-report send quit, chanId:%" PRId64, chanId); int ret = 0; SHttpModule* load = taosAcquireRef(httpRefMgt, chanId); if (load == NULL) { - tError("http-report failed to destroy chanId %" PRId64 ", reason:%s", chanId, tstrerror(terrno)); + tError("http-report failed to destroy chanId:%" PRId64 ", reason:%s", chanId, tstrerror(terrno)); ret = terrno; return; } diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 9d8d096677..e90fe9297a 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -941,7 +941,7 @@ static void addConnToPool(void* pool, SCliConn* conn) { QUEUE_INIT(&conn->q); QUEUE_PUSH(&conn->list->conns, &conn->q); conn->list->size += 1; - tDebug("conn:%p, added to pool, pool size: %d, dst: %s", conn, conn->list->size, conn->dstAddr); + tDebug("conn:%p, added to pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); conn->heapMissHit = 0; @@ -1894,7 +1894,7 @@ static FORCE_INLINE int32_t cliUpdateFqdnCache(SHashObj* cache, char* fqdn) { char old[TSDB_FQDN_LEN] = {0}, new[TSDB_FQDN_LEN] = {0}; taosInetNtoa(old, *v); taosInetNtoa(new, addr); - tWarn("update ip of fqdn:%s, old: %s, new: %s", fqdn, old, new); + tWarn("update ip of fqdn:%s, old:%s, new:%s", fqdn, old, new); code = taosHashPut(cache, fqdn, len, &addr, sizeof(addr)); } } else { @@ -2541,7 +2541,7 @@ static FORCE_INLINE void cliPerfLog_schedMsg(SCliReq* pReq, char* label) { return; } - tGDebug("%s retry on next node,use:%s, step: %d,timeout:%" PRId64 "", label, tbuf, pCtx->retryStep, + tGDebug("%s retry on next node,use:%s, step:%d,timeout:%" PRId64, label, tbuf, pCtx->retryStep, pCtx->retryNextInterval); return; } diff --git a/source/libs/transport/src/transComm.c b/source/libs/transport/src/transComm.c index c0edcd54e4..73e14ebed4 100644 --- a/source/libs/transport/src/transComm.c +++ b/source/libs/transport/src/transComm.c @@ -836,7 +836,7 @@ int32_t subnetInit(SubnetUtils* pUtils, SIpV4Range* pRange) { return 0; } int32_t subnetDebugInfoToBuf(SubnetUtils* pUtils, char* buf) { - sprintf(buf, "raw: %s, address: %d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, + sprintf(buf, "raw:%s, address:%d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, pUtils->netmask, pUtils->network, pUtils->broadcast); return 0; } diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index ad79fa0a82..35d74123f0 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -274,7 +274,7 @@ int32_t uvWhiteListToStr(SWhiteUserList* plist, char* user, char** ppBuf) { return terrno; } - int32_t len = sprintf(pBuf, "user: %s, ver: %" PRId64 ", ip: {%s}", user, plist->ver, tmp); + int32_t len = sprintf(pBuf, "user:%s, ver:%" PRId64 ", ip:{%s}", user, plist->ver, tmp); taosMemoryFree(tmp); *ppBuf = pBuf; @@ -1027,7 +1027,7 @@ void uvOnAcceptCb(uv_stream_t* stream, int status) { int err = uv_tcp_init(pObj->loop, cli); if (err != 0) { - tError("failed to create tcp: %s", uv_err_name(err)); + tError("failed to create tcp:%s", uv_err_name(err)); taosMemoryFree(cli); return; } @@ -1059,10 +1059,10 @@ void uvOnAcceptCb(uv_stream_t* stream, int status) { uv_write2(wr, (uv_stream_t*)&(pObj->pipe[pObj->workerIdx][0]), &buf, 1, (uv_stream_t*)cli, uvOnPipeWriteCb)); } else { if (!uv_is_closing((uv_handle_t*)cli)) { - tError("failed to accept tcp: %s", uv_err_name(err)); + tError("failed to accept tcp:%s", uv_err_name(err)); uv_close((uv_handle_t*)cli, uvFreeCb); } else { - tError("failed to accept tcp: %s", uv_err_name(err)); + tError("failed to accept tcp:%s", uv_err_name(err)); taosMemoryFree(cli); } } @@ -1464,7 +1464,7 @@ static void uvDestroyConn(uv_handle_t* handle) { } static void uvPipeListenCb(uv_stream_t* handle, int status) { if (status != 0) { - tError("server failed to init pipe, errmsg: %s", uv_err_name(status)); + tError("server failed to init pipe, errmsg:%s", uv_err_name(status)); return; } @@ -1473,12 +1473,12 @@ static void uvPipeListenCb(uv_stream_t* handle, int status) { int ret = uv_pipe_init(srv->loop, pipe, 1); if (ret != 0) { - tError("trans-svr failed to init pipe, errmsg: %s", uv_err_name(ret)); + tError("trans-svr failed to init pipe, errmsg:%s", uv_err_name(ret)); } ret = uv_accept((uv_stream_t*)&srv->pipeListen, (uv_stream_t*)pipe); if (ret != 0) { - tError("trans-svr failed to accept pipe, errmsg: %s", uv_err_name(ret)); + tError("trans-svr failed to accept pipe, errmsg:%s", uv_err_name(ret)); return; } @@ -1507,7 +1507,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, SServerObj* srv = taosMemoryCalloc(1, sizeof(SServerObj)); if (srv == NULL) { code = terrno; - tError("failed to init server since: %s", tstrerror(code)); + tError("failed to init server since:%s", tstrerror(code)); return NULL; } @@ -1526,7 +1526,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, code = uv_loop_init(srv->loop); if (code != 0) { - tError("failed to init server since: %s", uv_err_name(code)); + tError("failed to init server since:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } @@ -1541,7 +1541,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, #if defined(WINDOWS) || defined(DARWIN) int ret = uv_pipe_init(srv->loop, &srv->pipeListen, 0); if (ret != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to init pipe, errmsg:%s", uv_err_name(ret)); goto End; } #if defined(WINDOWS) @@ -1553,13 +1553,13 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, ret = uv_pipe_bind(&srv->pipeListen, pipeName); if (ret != 0) { - tError("failed to bind pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to bind pipe, errmsg:%s", uv_err_name(ret)); goto End; } ret = uv_listen((uv_stream_t*)&srv->pipeListen, SOMAXCONN, uvPipeListenCb); if (ret != 0) { - tError("failed to listen pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to listen pipe, errmsg:%s", uv_err_name(ret)); goto End; } @@ -1637,21 +1637,21 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, uv_os_sock_t fds[2]; if ((code = uv_socketpair(SOCK_STREAM, 0, fds, UV_NONBLOCK_PIPE, UV_NONBLOCK_PIPE)) != 0) { - tError("failed to create pipe, errmsg: %s", uv_err_name(code)); + tError("failed to create pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } code = uv_pipe_init(srv->loop, &(srv->pipe[i][0]), 1); if (code != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(code)); + tError("failed to init pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } code = uv_pipe_open(&(srv->pipe[i][0]), fds[1]); if (code != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(code)); + tError("failed to init pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } From 5e07b497ce6d755e9ac7e8405121ef7963b76243 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 17:06:23 +0800 Subject: [PATCH 09/34] enh: adjust log format --- source/client/src/clientEnv.c | 12 ++++++------ source/client/src/clientHb.c | 8 ++++---- source/client/src/clientImpl.c | 8 ++++---- source/client/src/clientMain.c | 9 +++++---- source/libs/scheduler/src/schStatus.c | 2 +- source/libs/scheduler/src/scheduler.c | 4 ++-- 6 files changed, 22 insertions(+), 21 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index a890c3d0ad..3802aea5fa 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -458,7 +458,7 @@ void destroyTscObj(void *pObj) { STscObj *pTscObj = pObj; int64_t tscId = pTscObj->id; - tscTrace("begin to destroy tscObj %" PRIx64 " p:%p", tscId, pTscObj); + tscTrace("connObj:%" PRIx64 ", begin to destroy, p:%p", tscId, pTscObj); SClientHbKey connKey = {.tscRid = pTscObj->id, .connType = pTscObj->connType}; hbDeregisterConn(pTscObj, connKey); @@ -467,7 +467,7 @@ void destroyTscObj(void *pObj) { taosHashCleanup(pTscObj->pRequests); schedulerStopQueryHb(pTscObj->pAppInfo->pTransporter); - tscDebug("connObj 0x%" PRIx64 " p:%p destroyed, remain inst totalConn:%" PRId64, pTscObj->id, pTscObj, + tscDebug("connObj:0x%" PRIx64 ", p:%p destroyed, remain inst totalConn:%" PRId64, pTscObj->id, pTscObj, pTscObj->pAppInfo->numOfConns); // In any cases, we should not free app inst here. Or an race condition rises. @@ -476,7 +476,7 @@ void destroyTscObj(void *pObj) { (void)taosThreadMutexDestroy(&pTscObj->mutex); taosMemoryFree(pTscObj); - tscTrace("end to destroy tscObj %" PRIx64 " p:%p", tscId, pTscObj); + tscTrace("connObj:0x%" PRIx64 ", end to destroy, p:%p", tscId, pTscObj); } int32_t createTscObj(const char *user, const char *auth, const char *db, int32_t connType, SAppInstInfo *pAppInfo, @@ -682,7 +682,7 @@ void doDestroyRequest(void *p) { SRequestObj *pRequest = (SRequestObj *)p; uint64_t reqId = pRequest->requestId; - tscDebug("begin to destroy request 0x%" PRIx64 " p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", begin to destroy request p:%p", reqId, pRequest); int64_t nextReqRefId = pRequest->relation.nextRefId; @@ -724,7 +724,7 @@ void doDestroyRequest(void *p) { taosMemoryFreeClear(pRequest->effectiveUser); taosMemoryFreeClear(pRequest->sqlstr); taosMemoryFree(pRequest); - tscDebug("end to destroy request %" PRIx64 " p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", end to destroy request p:%p", reqId, pRequest); destroyNextReq(nextReqRefId); } @@ -747,7 +747,7 @@ void taosStopQueryImpl(SRequestObj *pRequest) { } schedulerFreeJob(&pRequest->body.queryJob, TSDB_CODE_TSC_QUERY_KILLED); - tscDebug("request %" PRIx64 " killed", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", killed", pRequest->requestId); } void stopAllQueries(SRequestObj *pRequest) { diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index b3e288c816..518689ee89 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -121,7 +121,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat pTscObj->authVer = pRsp->version; if (pTscObj->sysInfo != pRsp->sysInfo) { - tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", connObj:%" PRIi64, pRsp->user, pTscObj->sysInfo, pRsp->sysInfo, pTscObj->id); pTscObj->sysInfo = pRsp->sysInfo; } @@ -134,7 +134,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat if (passInfo->fp) { (*passInfo->fp)(passInfo->param, &pRsp->passVer, TAOS_NOTIFY_PASSVER); } - tscDebug("update passVer of user %s from %d to %d, tscRid:%" PRIi64, pRsp->user, oldVer, + tscDebug("update passVer of user %s from %d to %d, connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_32(&passInfo->ver), pTscObj->id); } } @@ -147,7 +147,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat if (whiteListInfo->fp) { (*whiteListInfo->fp)(whiteListInfo->param, &pRsp->whiteListVer, TAOS_NOTIFY_WHITELIST_VER); } - tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_64(&whiteListInfo->ver), pTscObj->id); } } else { @@ -156,7 +156,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat SWhiteListInfo *whiteListInfo = &pTscObj->whiteListInfo; int64_t oldVer = atomic_load_64(&whiteListInfo->ver); atomic_store_64(&whiteListInfo->ver, pRsp->whiteListVer); - tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_64(&whiteListInfo->ver), pTscObj->id); } releaseTscObj(pReq->connKey.tscRid); diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index e4e5660fd1..a8dfb100d5 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -245,7 +245,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, int32_t err = taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self, sizeof((*pRequest)->self)); if (err) { - tscError("req:0x%" PRId64 ", failed to add to request container, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", + tscError("req:0x%" PRId64 ", failed to add to request container, QID:0x%" PRIx64 ", connObj:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -256,7 +256,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, if (tsQueryUseNodeAllocator && !qIsInsertValuesSql((*pRequest)->sqlstr, (*pRequest)->sqlLen)) { if (TSDB_CODE_SUCCESS != nodesCreateAllocator((*pRequest)->requestId, tsQueryNodeChunkSize, &((*pRequest)->allocatorRefId))) { - tscError("req:0x%" PRId64 ", failed to create node allocator, QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, + tscError("req:0x%" PRId64 ", failed to create node allocator, QID:0x%" PRIx64 ", connObj:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -1221,7 +1221,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { return; } - tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type)); + tscDebug("req:0x%" PRIx64 ", schedulerExecCb request type %s", pRequest->self, TMSG_INFO(pRequest->type)); if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); @@ -2983,7 +2983,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s } taosMemoryFree(param); - tscDebug("taos_query end with sql:%s", sql); + tscDebug("connObj:0x%" PRIx64 ", taos_query end with sql:%s", *(int64_t*)taos, sql); return pRequest; } diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 3b9239131f..e9a684d10d 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -478,10 +478,10 @@ void taos_close_internal(void *taos) { } STscObj *pTscObj = (STscObj *)taos; - tscDebug("0x%" PRIx64 " try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); + tscDebug("connObj:0x%" PRIx64 ", try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); if (TSDB_CODE_SUCCESS != taosRemoveRef(clientConnRefPool, pTscObj->id)) { - tscError("0x%" PRIx64 " failed to remove ref from conn pool", pTscObj->id); + tscError("connObj:0x%" PRIx64 ", failed to remove ref from conn pool", pTscObj->id); } } @@ -535,14 +535,15 @@ void taos_free_result(TAOS_RES *res) { return; } - tscDebug("taos free res %p", res); + tscTrace("taos free res %p", res); if (TD_RES_QUERY(res)) { SRequestObj *pRequest = (SRequestObj *)res; - tscDebug("0x%" PRIx64 " taos_free_result start to free query", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", taos_free_result start to free query", pRequest->requestId); destroyRequest(pRequest); return; } + SMqRspObj *pRsp = (SMqRspObj *)res; if (TD_RES_TMQ(res)) { tDeleteMqDataRsp(&pRsp->dataRsp); diff --git a/source/libs/scheduler/src/schStatus.c b/source/libs/scheduler/src/schStatus.c index 9792af22f6..1bd91093b5 100644 --- a/source/libs/scheduler/src/schStatus.c +++ b/source/libs/scheduler/src/schStatus.c @@ -70,7 +70,7 @@ int32_t schHandleOpBeginEvent(int64_t jobId, SSchJob** job, SCH_OP_TYPE type, SS SSchJob* pJob = NULL; (void)schAcquireJob(jobId, &pJob); if (NULL == pJob) { - qDebug("Acquire sch job failed, may be dropped, jobId:0x%" PRIx64, jobId); + qDebug("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", jobId); SCH_ERR_RET(TSDB_CODE_SCH_JOB_NOT_EXISTS); } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index 75cfdc7c36..9437bf73d6 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -62,7 +62,7 @@ int32_t schedulerInit() { } int32_t schedulerExecJob(SSchedulerReq *pReq, int64_t *pJobId) { - qDebug("scheduler %s exec job will start", pReq->syncReq ? "SYNC" : "ASYNC"); + qDebug("QID:0x%" PRIx64 ", scheduler %s exec job will start", pReq->pConn->requestId, pReq->syncReq ? "SYNC" : "ASYNC"); int32_t code = 0; SSchJob *pJob = NULL; @@ -167,7 +167,7 @@ void schedulerFreeJob(int64_t *jobId, int32_t errCode) { SSchJob *pJob = NULL; (void)schAcquireJob(*jobId, &pJob); if (NULL == pJob) { - qDebug("Acquire sch job failed, may be dropped, jobId:0x%" PRIx64, *jobId); + qDebug("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", *jobId); return; } From e314966cb94c5ccfc0cb71e526409d208eca1125 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 18:16:59 +0800 Subject: [PATCH 10/34] enh: adjust log format --- source/client/src/clientEnv.c | 18 +++--- source/client/src/clientHb.c | 26 ++++---- source/client/src/clientImpl.c | 6 +- source/client/src/clientMain.c | 2 +- source/client/src/clientMonitor.c | 68 ++++++++++----------- source/client/src/clientMsgHandler.c | 38 ++++++------ source/dnode/mgmt/mgmt_dnode/src/dmHandle.c | 2 +- source/dnode/mgmt/mgmt_mnode/src/mmInt.c | 2 +- source/dnode/mnode/impl/src/mndStream.c | 2 +- source/dnode/vnode/src/tsdb/tsdbFile2.c | 16 ++--- source/libs/executor/src/groupoperator.c | 2 +- source/libs/executor/src/scanoperator.c | 2 +- source/libs/scheduler/src/schUtil.c | 8 +-- source/libs/stream/src/streamExec.c | 2 +- source/libs/sync/src/syncMain.c | 6 +- source/libs/transport/src/trans.c | 2 +- source/libs/transport/src/transCli.c | 6 +- source/libs/transport/src/transComm.c | 2 +- source/util/src/tpagedbuf.c | 2 +- source/util/src/tqueue.c | 12 ++-- source/util/src/tref.c | 68 ++++++++++----------- 21 files changed, 146 insertions(+), 146 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 3802aea5fa..84864766f9 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -133,7 +133,7 @@ static int32_t generateWriteSlowLog(STscObj *pTscObj, SRequestObj *pRequest, int cJSON *json = cJSON_CreateObject(); int32_t code = TSDB_CODE_SUCCESS; if (json == NULL) { - tscError("[monitor] cJSON_CreateObject failed"); + tscError("failed to create monitor json"); return TSDB_CODE_OUT_OF_MEMORY; } char clusterId[32] = {0}; @@ -262,17 +262,17 @@ static void deregisterRequest(SRequestObj *pRequest) { if ((pRequest->pQuery && pRequest->pQuery->pRoot && QUERY_NODE_VNODE_MODIFY_STMT == pRequest->pQuery->pRoot->type && (0 == ((SVnodeModifyOpStmt *)pRequest->pQuery->pRoot)->sqlNodeType)) || QUERY_NODE_VNODE_MODIFY_STMT == pRequest->stmtType) { - tscDebug("insert duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 - "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", - duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, - pRequest->metric.planCostUs, pRequest->metric.execCostUs); + tscDebug("req:0x%" PRIx64 ", insert duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); (void)atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration); reqType = SLOW_LOG_TYPE_INSERT; } else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) { - tscDebug("query duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 - "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", - duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, - pRequest->metric.planCostUs, pRequest->metric.execCostUs); + tscDebug("req:0x%" PRIx64 ", query duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); (void)atomic_add_fetch_64((int64_t *)&pActivity->queryElapsedTime, duration); reqType = SLOW_LOG_TYPE_QUERY; diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index 518689ee89..b6a1c7fe7a 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -548,7 +548,7 @@ static int32_t hbQueryHbRspHandle(SAppHbMgr *pAppHbMgr, SClientHbRsp *pRsp) { struct SCatalog *pCatalog = NULL; int32_t code = catalogGetHandle(pReq->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pReq->clusterId, tstrerror(code)); + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pReq->clusterId, tstrerror(code)); } else { hbProcessQueryRspKvs(kvNum, pRsp->info, pCatalog, pAppHbMgr); } @@ -608,7 +608,7 @@ static int32_t hbAsyncCallBack(void *param, SDataBuf *pMsg, int32_t code) { pInst->serverCfg.monitorParas = pRsp.monitorParas; pInst->serverCfg.enableAuditDelete = pRsp.enableAuditDelete; - tscDebug("[monitor] paras from hb, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d", pInst->clusterId, + tscDebug("monitor paras from hb, clusterId:0x%" PRIx64 ", threshold:%d scope:%d", pInst->clusterId, pRsp.monitorParas.tsSlowLogThreshold, pRsp.monitorParas.tsSlowLogScope); if (rspNum) { @@ -1081,33 +1081,33 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req code = hbGetQueryBasicInfo(connKey, req); if (code != TSDB_CODE_SUCCESS) { - tscWarn("hbGetQueryBasicInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetQueryBasicInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (hbParam->reqCnt == 0) { code = catalogGetHandle(hbParam->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } code = hbGetAppInfo(hbParam->clusterId, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("getAppInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("getAppInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (!taosHashGet(clientHbMgr.appHbHash, &hbParam->clusterId, sizeof(hbParam->clusterId))) { code = hbGetExpiredUserInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredUserInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredUserInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (clientHbMgr.appHbHash) { code = taosHashPut(clientHbMgr.appHbHash, &hbParam->clusterId, sizeof(uint64_t), NULL, 0); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbQueryHbReqHandle put clusterId failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, + tscWarn("hbQueryHbReqHandle put clusterId failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } @@ -1118,7 +1118,7 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req if (2 != atomic_load_8(&hbParam->pAppHbMgr->connHbFlag)) { code = hbGetUserAuthInfo(connKey, hbParam, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetUserAuthInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetUserAuthInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } atomic_store_8(&hbParam->pAppHbMgr->connHbFlag, 1); @@ -1126,32 +1126,32 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req code = hbGetExpiredDBInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredDBInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredDBInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } code = hbGetExpiredStbInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredStbInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredStbInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } #ifdef TD_ENTERPRISE code = hbGetExpiredViewInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredViewInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredViewInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } #endif code = hbGetExpiredTSMAInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredTSMAInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredTSMAInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } } else { code = hbGetAppInfo(hbParam->clusterId, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetAppInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetAppInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } } diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index a8dfb100d5..3efa0a2130 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -1754,14 +1754,14 @@ void updateTargetEpSet(SMsgSendInfo* pSendInfo, STscObj* pTscObj, SRpcMsg* pMsg, SCatalog* pCatalog = NULL; int32_t code = catalogGetHandle(pTscObj->pAppInfo->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscError("fail to get catalog handle, clusterId:%" PRIx64 ", error %s", pTscObj->pAppInfo->clusterId, + tscError("fail to get catalog handle, clusterId:0x%" PRIx64 ", error:%s", pTscObj->pAppInfo->clusterId, tstrerror(code)); return; } code = catalogUpdateVgEpSet(pCatalog, pSendInfo->target.dbFName, pSendInfo->target.vgId, pEpSet); if (code != TSDB_CODE_SUCCESS) { - tscError("fail to update catalog vg epset, clusterId:%" PRIx64 ", error %s", pTscObj->pAppInfo->clusterId, + tscError("fail to update catalog vg epset, clusterId:0x%" PRIx64 ", error:%s", pTscObj->pAppInfo->clusterId, tstrerror(code)); return; } @@ -2983,7 +2983,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s } taosMemoryFree(param); - tscDebug("connObj:0x%" PRIx64 ", taos_query end with sql:%s", *(int64_t*)taos, sql); + tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end with sql:%s", *(int64_t*)taos, pRequest, sql); return pRequest; } diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index e9a684d10d..8540bf9449 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -535,7 +535,7 @@ void taos_free_result(TAOS_RES *res) { return; } - tscTrace("taos free res %p", res); + tscTrace("res:%p, will be freed", res); if (TD_RES_QUERY(res)) { SRequestObj *pRequest = (SRequestObj *)res; diff --git a/source/client/src/clientMonitor.c b/source/client/src/clientMonitor.c index 5f7e11b6a3..45b8ec7d49 100644 --- a/source/client/src/clientMonitor.c +++ b/source/client/src/clientMonitor.c @@ -97,7 +97,7 @@ static void monitorFreeSlowLogDataEx(void* paras) { static SAppInstInfo* getAppInstByClusterId(int64_t clusterId) { void* p = taosHashGet(appInfo.pInstMapByClusterId, &clusterId, LONG_BYTES); if (p == NULL) { - tscError("failed to get app inst, clusterId:%" PRIx64, clusterId); + tscError("failed to get app inst, clusterId:0x%" PRIx64, clusterId); return NULL; } return *(SAppInstInfo**)p; @@ -114,7 +114,7 @@ static int32_t monitorReportAsyncCB(void* param, SDataBuf* pMsg, int32_t code) { if (param != NULL) { MonitorSlowLogData* p = (MonitorSlowLogData*)param; if (code != 0) { - tscError("failed to send slow log:%s, clusterId:%" PRIx64, p->data, p->clusterId); + tscError("failed to send slow log:%s, clusterId:0x%" PRIx64, p->data, p->clusterId); } MonitorSlowLogData tmp = {.clusterId = p->clusterId, .type = p->type, @@ -241,7 +241,7 @@ void monitorCreateClient(int64_t clusterId) { MonitorClient* pMonitor = NULL; taosWLockLatch(&monitorLock); if (taosHashGet(monitorCounterHash, &clusterId, LONG_BYTES) == NULL) { - tscInfo("[monitor] monitorCreateClient for %" PRIx64, clusterId); + tscInfo("clusterId:0x%" PRIx64 ", create monitor", clusterId); pMonitor = taosMemoryCalloc(1, sizeof(MonitorClient)); if (pMonitor == NULL) { tscError("failed to create monitor client"); @@ -293,7 +293,7 @@ void monitorCreateClient(int64_t clusterId) { tscError("failed to start timer"); goto fail; } - tscInfo("[monitor] monitorCreateClient for %" PRIx64 "finished %p.", clusterId, pMonitor); + tscInfo("clusterId:0x%" PRIx64 ", create monitor finished, montitor:%p", clusterId, pMonitor); } taosWUnLockLatch(&monitorLock); @@ -331,7 +331,7 @@ void monitorCreateClientCounter(int64_t clusterId, const char* name, const char* } goto end; } - tscInfo("[monitor] monitorCreateClientCounter %" PRIx64 "(%p):%s : %p.", pMonitor->clusterId, pMonitor, name, + tscInfo("clusterId:0x%" PRIx64 ", monitor:%p, create counter:%s:%p", pMonitor->clusterId, pMonitor, name, newCounter); end: @@ -347,21 +347,21 @@ void monitorCounterInc(int64_t clusterId, const char* counterName, const char** MonitorClient** ppMonitor = (MonitorClient**)taosHashGet(monitorCounterHash, &clusterId, LONG_BYTES); if (ppMonitor == NULL || *ppMonitor == NULL) { - tscError("monitorCounterInc not found pMonitor %" PRId64, clusterId); + tscError("clusterId:0x%" PRId64 ", monitor not found", clusterId); goto end; } MonitorClient* pMonitor = *ppMonitor; taos_counter_t** ppCounter = (taos_counter_t**)taosHashGet(pMonitor->counters, counterName, strlen(counterName)); if (ppCounter == NULL || *ppCounter == NULL) { - tscError("monitorCounterInc not found pCounter %" PRIx64 ":%s.", clusterId, counterName); + tscError("clusterId:0x%" PRIx64 ", monitor:%p counter:%s not found", clusterId, pMonitor, counterName); goto end; } if (taos_counter_inc(*ppCounter, label_values) != 0) { - tscError("monitorCounterInc failed to inc %" PRIx64 ":%s.", clusterId, counterName); + tscError("clusterId:0x%" PRIx64 ", monitor:%p counter:%s inc failed", clusterId, pMonitor, counterName); goto end; } - tscDebug("[monitor] monitorCounterInc %" PRIx64 "(%p):%s", pMonitor->clusterId, pMonitor, counterName); + tscDebug("clusterId:0x%" PRIx64 ", monitor:%p, counter:%s inc", pMonitor->clusterId, pMonitor, counterName); end: taosWUnLockLatch(&monitorLock); @@ -379,11 +379,11 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP char path[PATH_MAX] = {0}; char clusterId[32] = {0}; if (snprintf(clusterId, sizeof(clusterId), "%" PRIx64, slowLogData->clusterId) < 0) { - tscError("failed to generate clusterId:%" PRIx64, slowLogData->clusterId); + tscError("failed to generate clusterId:0x%" PRIx64, slowLogData->clusterId); return; } taosGetTmpfilePath(tmpPath, clusterId, path); - tscInfo("[monitor] create slow log file:%s", path); + tscInfo("monitor create slow log file:%s", path); pFile = taosOpenFile(path, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_APPEND | TD_FILE_READ | TD_FILE_TRUNC); if (pFile == NULL) { tscError("failed to open file:%s since %d", path, terrno); @@ -404,7 +404,7 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP pClient->offset = 0; pClient->pFile = pFile; if (taosHashPut(monitorSlowLogHash, &slowLogData->clusterId, LONG_BYTES, &pClient, POINTER_BYTES) != 0) { - tscError("failed to put clusterId:%" PRId64 " to hash table", slowLogData->clusterId); + tscError("failed to put clusterId:0x%" PRIx64 " to hash table", slowLogData->clusterId); int32_t ret = taosCloseFile(&pFile); if (ret != 0) { tscError("failed to close file:%p ret:%d", pFile, ret); @@ -428,11 +428,11 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP if (taosWriteFile(pFile, slowLogData->data, strlen(slowLogData->data) + 1) < 0) { tscError("failed to write len to file:%p since %s", pFile, terrstr()); } - tscDebug("[monitor] write slow log to file:%p, clusterId:%" PRIx64, pFile, slowLogData->clusterId); + tscDebug("monitor write slow log to file:%p, clusterId:0x%" PRIx64, pFile, slowLogData->clusterId); } static char* readFile(TdFilePtr pFile, int64_t* offset, int64_t size) { - tscDebug("[monitor] readFile slow begin pFile:%p, offset:%" PRId64 ", size:%" PRId64, pFile, *offset, size); + tscDebug("monitor readFile slow begin pFile:%p, offset:%" PRId64 ", size:%" PRId64, pFile, *offset, size); if (taosLSeekFile(pFile, *offset, SEEK_SET) < 0) { tscError("failed to seek file:%p code: %d", pFile, terrno); return NULL; @@ -481,7 +481,7 @@ static char* readFile(TdFilePtr pFile, int64_t* offset, int64_t size) { *offset += (len + 1); } - tscDebug("[monitor] readFile slow log end, data:%s, offset:%" PRId64, pCont, *offset); + tscDebug("monitor readFile slow log end, data:%s, offset:%" PRId64, pCont, *offset); return pCont; } @@ -525,7 +525,7 @@ static int32_t monitorReadSend(int64_t clusterId, TdFilePtr pFile, int64_t* offs SLOW_LOG_QUEUE_TYPE type, char* fileName) { SAppInstInfo* pInst = getAppInstByClusterId(clusterId); if (pInst == NULL) { - tscError("failed to get app instance by clusterId:%" PRId64, clusterId); + tscError("failed to get app instance by clusterId:0x%" PRIx64, clusterId); if (taosCloseFile(&pFile) != 0) { tscError("failed to close file:%p", pFile); } @@ -546,13 +546,13 @@ static void monitorSendSlowLogAtBeginning(int64_t clusterId, char** fileName, Td int64_t size = getFileSize(*fileName); if (size <= offset) { processFileInTheEnd(pFile, *fileName); - tscDebug("[monitor] monitorSendSlowLogAtBeginning delete file:%s", *fileName); + tscDebug("monitor delete file:%s", *fileName); } else { int32_t code = monitorReadSend(clusterId, pFile, &offset, size, SLOW_LOG_READ_BEGINNIG, *fileName); if (code == 0) { - tscDebug("[monitor] monitorSendSlowLogAtBeginning send slow log succ, clusterId:%" PRId64, clusterId); + tscDebug("monitor send slow log succ, clusterId:0x%" PRIx64, clusterId); } else { - tscError("[monitor] monitorSendSlowLogAtBeginning send slow log failed, clusterId:%" PRId64 ",ret:%d", clusterId, + tscError("monitor send slow log failed, clusterId:0x%" PRIx64 ",ret:%d", clusterId, code); } *fileName = NULL; @@ -562,12 +562,12 @@ static void monitorSendSlowLogAtBeginning(int64_t clusterId, char** fileName, Td static void monitorSendSlowLogAtRunning(int64_t clusterId) { void* tmp = taosHashGet(monitorSlowLogHash, &clusterId, LONG_BYTES); if (tmp == NULL) { - tscError("failed to get slow log client by clusterId:%" PRId64, clusterId); + tscError("failed to get slow log client by clusterId:0x%" PRIx64, clusterId); return; } SlowLogClient* pClient = (*(SlowLogClient**)tmp); if (pClient == NULL) { - tscError("failed to get slow log client by clusterId:%" PRId64, clusterId); + tscError("failed to get slow log client by clusterId:0x%" PRIx64, clusterId); return; } int64_t size = getFileSize(pClient->path); @@ -575,11 +575,11 @@ static void monitorSendSlowLogAtRunning(int64_t clusterId) { if (taosFtruncateFile(pClient->pFile, 0) < 0) { tscError("failed to truncate file:%p code: %d", pClient->pFile, terrno); } - tscDebug("[monitor] monitorSendSlowLogAtRunning truncate file to 0 file:%p", pClient->pFile); + tscDebug("monitor truncate file to 0 file:%p", pClient->pFile); pClient->offset = 0; } else { int32_t code = monitorReadSend(clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_RUNNING, NULL); - tscDebug("[monitor] monitorSendSlowLogAtRunning send slow log clusterId:%" PRId64 ",ret:%d", clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ",ret:%d", clusterId, code); } } @@ -596,13 +596,13 @@ static bool monitorSendSlowLogAtQuit(int64_t clusterId) { if (size <= pClient->offset) { processFileInTheEnd(pClient->pFile, pClient->path); pClient->pFile = NULL; - tscInfo("[monitor] monitorSendSlowLogAtQuit remove file:%s", pClient->path); + tscInfo("monitor remove file:%s", pClient->path); if ((--quitCnt) == 0) { return true; } } else { int32_t code = monitorReadSend(clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_QUIT, NULL); - tscDebug("[monitor] monitorSendSlowLogAtQuit send slow log clusterId:%" PRId64 ",ret:%d", clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ",ret:%d", clusterId, code); } return false; } @@ -620,7 +620,7 @@ static void monitorSendAllSlowLogAtQuit() { } else if (pClient->offset == 0) { int64_t* clusterId = (int64_t*)taosHashGetKey(pIter, NULL); int32_t code = monitorReadSend(*clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_QUIT, NULL); - tscDebug("[monitor] monitorSendAllSlowLogAtQuit send slow log clusterId:%" PRId64 ",ret:%d", *clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ",ret:%d", *clusterId, code); if (code == 0) { quitCnt++; } @@ -669,7 +669,7 @@ static void monitorSendAllSlowLog() { int64_t size = getFileSize(pClient->path); if (size <= 0) { if (size < 0) { - tscError("[monitor] monitorSendAllSlowLog failed to get file size:%s, err:%d", pClient->path, errno); + tscError("monitor failed to get file size:%s, err:%d", pClient->path, errno); if (errno == ENOENT) { processFileRemoved(pClient); } @@ -677,7 +677,7 @@ static void monitorSendAllSlowLog() { continue; } int32_t code = monitorReadSend(*clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_RUNNING, NULL); - tscDebug("[monitor] monitorSendAllSlowLog send slow log clusterId:%" PRId64 ",ret:%d", *clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ",ret:%d", *clusterId, code); } } } @@ -686,7 +686,7 @@ static void monitorSendAllSlowLogFromTempDir(int64_t clusterId) { SAppInstInfo* pInst = getAppInstByClusterId((int64_t)clusterId); if (pInst == NULL || !pInst->serverCfg.monitorParas.tsEnableMonitor) { - tscInfo("[monitor] monitor is disabled, skip send slow log"); + tscInfo("monitor is disabled, skip send slow log"); return; } char namePrefix[PATH_MAX] = {0}; @@ -837,7 +837,7 @@ static void tscMonitorStop() { int32_t monitorInit() { int32_t code = 0; - tscInfo("[monitor] tscMonitor init"); + tscInfo("monitor init"); monitorCounterHash = (SHashObj*)taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_ENTRY_LOCK); if (monitorCounterHash == NULL) { @@ -887,7 +887,7 @@ int32_t monitorInit() { } void monitorClose() { - tscInfo("[monitor] tscMonitor close"); + tscInfo("monitor close"); taosWLockLatch(&monitorLock); atomic_store_32(&monitorFlag, 1); tscMonitorStop(); @@ -907,17 +907,17 @@ int32_t monitorPutData2MonitorQueue(MonitorSlowLogData data) { MonitorSlowLogData* slowLogData = NULL; if (atomic_load_32(&monitorFlag) == 1) { - tscError("[monitor] slow log thread is exiting"); + tscError("monitor slow log thread is exiting"); return -1; } code = taosAllocateQitem(sizeof(MonitorSlowLogData), DEF_QITEM, 0, (void**)&slowLogData); if (code) { - tscError("[monitor] failed to allocate slow log data"); + tscError("monitor failed to allocate slow log data"); return code; } *slowLogData = data; - tscDebug("[monitor] write slow log to queue, clusterId:%" PRIx64 " type:%s, data:%s", slowLogData->clusterId, + tscDebug("monitor write slow log to queue, clusterId:0x%" PRIx64 " type:%s, data:%s", slowLogData->clusterId, queueTypeStr[slowLogData->type], slowLogData->data); if (taosWriteQitem(monitorQueue, slowLogData) == 0) { if (tsem2_post(&monitorSem) != 0) { diff --git a/source/client/src/clientMsgHandler.c b/source/client/src/clientMsgHandler.c index 58ba39864d..75a8801c9b 100644 --- a/source/client/src/clientMsgHandler.c +++ b/source/client/src/clientMsgHandler.c @@ -123,7 +123,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { } for (int32_t i = 0; i < connectRsp.epSet.numOfEps; ++i) { - tscDebug("0x%" PRIx64 " epSet.fqdn[%d]:%s port:%d, connObj:0x%" PRIx64, pRequest->requestId, i, + tscDebug("QID:0x%" PRIx64 " epSet.fqdn[%d]:%s port:%d, connObj:0x%" PRIx64, pRequest->requestId, i, connectRsp.epSet.eps[i].fqdn, connectRsp.epSet.eps[i].port, pTscObj->id); } @@ -137,7 +137,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { pTscObj->pAppInfo->clusterId = connectRsp.clusterId; pTscObj->pAppInfo->serverCfg.monitorParas = connectRsp.monitorParas; pTscObj->pAppInfo->serverCfg.enableAuditDelete = connectRsp.enableAuditDelete; - tscDebug("[monitor] paras from connect rsp, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d", + tscDebug("monitor paras from connect rsp, clusterId:0x%" PRIx64 ", threshold:%d scope:%d", connectRsp.clusterId, connectRsp.monitorParas.tsSlowLogThreshold, connectRsp.monitorParas.tsSlowLogScope); lastClusterId = connectRsp.clusterId; @@ -164,7 +164,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { SAppHbMgr* pAppHbMgr = taosArrayGetP(clientHbMgr.appHbMgrs, pTscObj->appHbMgrIdx); if (pAppHbMgr) { if (hbRegisterConn(pAppHbMgr, pTscObj->id, connectRsp.clusterId, connectRsp.connType) != 0) { - tscError("0x%" PRIx64 " failed to register conn to hbMgr", pRequest->requestId); + tscError("QID:0x%" PRIx64 " failed to register conn to hbMgr", pRequest->requestId); } } else { (void)taosThreadMutexUnlock(&clientHbMgr.lock); @@ -173,7 +173,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { } (void)taosThreadMutexUnlock(&clientHbMgr.lock); - tscDebug("0x%" PRIx64 " clusterId:%" PRId64 ", totalConn:%" PRId64, pRequest->requestId, connectRsp.clusterId, + tscDebug("QID:0x%" PRIx64 " clusterId:0x%" PRIx64 ", totalConn:%" PRId64, pRequest->requestId, connectRsp.clusterId, pTscObj->pAppInfo->numOfConns); End: @@ -229,11 +229,11 @@ int32_t processCreateDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char dbFName[TSDB_DB_FNAME_LEN]; (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_INFORMATION_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); + tscError("QID:0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); } (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_PERFORMANCE_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); + tscError("QID:0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); } } } @@ -254,7 +254,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { TSDB_CODE_MND_DB_IN_DROPPING == code) { SUseDbRsp usedbRsp = {0}; if (tDeserializeSUseDbRsp(pMsg->pData, pMsg->len, &usedbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); } struct SCatalog* pCatalog = NULL; @@ -262,11 +262,11 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { int64_t clusterId = pRequest->pTscObj->pAppInfo->clusterId; int32_t code1 = catalogGetHandle(clusterId, &pCatalog); if (code1 != TSDB_CODE_SUCCESS) { - tscWarn("0x%" PRIx64 "catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pRequest->requestId, clusterId, + tscWarn("QID:0x%" PRIx64 "catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->requestId, clusterId, tstrerror(code1)); } else { if (catalogRemoveDB(pCatalog, usedbRsp.db, usedbRsp.uid) != 0) { - tscError("0x%" PRIx64 "catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, + tscError("QID:0x%" PRIx64 "catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, usedbRsp.uid); } } @@ -293,7 +293,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { SUseDbRsp usedbRsp = {0}; if (tDeserializeSUseDbRsp(pMsg->pData, pMsg->len, &usedbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); } if (strlen(usedbRsp.db) == 0) { @@ -321,7 +321,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { SName name = {0}; if (tNameFromString(&name, usedbRsp.db, T_NAME_ACCT | T_NAME_DB) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to parse db name:%s", pRequest->requestId, usedbRsp.db); + tscError("QID:0x%" PRIx64 " failed to parse db name:%s", pRequest->requestId, usedbRsp.db); } SUseDbOutput output = {0}; @@ -330,17 +330,17 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { terrno = code; if (output.dbVgroup) taosHashCleanup(output.dbVgroup->vgHash); - tscError("0x%" PRIx64 " failed to build use db output since %s", pRequest->requestId, terrstr()); + tscError("QID:0x%" PRIx64 " failed to build use db output since %s", pRequest->requestId, terrstr()); } else if (output.dbVgroup && output.dbVgroup->vgHash) { struct SCatalog* pCatalog = NULL; int32_t code1 = catalogGetHandle(pRequest->pTscObj->pAppInfo->clusterId, &pCatalog); if (code1 != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pRequest->pTscObj->pAppInfo->clusterId, + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->pTscObj->pAppInfo->clusterId, tstrerror(code1)); } else { if (catalogUpdateDBVgInfo(pCatalog, output.db, output.dbId, output.dbVgroup) != 0) { - tscError("0x%" PRIx64 " failed to update db vg info, db:%s, dbId:%" PRId64, pRequest->requestId, output.db, + tscError("QID:0x%" PRIx64 " failed to update db vg info, db:%s, dbId:%" PRId64, pRequest->requestId, output.db, output.dbId); } output.dbVgroup = NULL; @@ -352,7 +352,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char db[TSDB_DB_NAME_LEN] = {0}; if (tNameGetDbName(&name, db) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to get db name since %s", pRequest->requestId, tstrerror(code)); + tscError("QID:0x%" PRIx64 " failed to get db name since %s", pRequest->requestId, tstrerror(code)); } setConnectionDB(pRequest->pTscObj, db); @@ -434,13 +434,13 @@ int32_t processDropDbRsp(void* param, SDataBuf* pMsg, int32_t code) { } else { SDropDbRsp dropdbRsp = {0}; if (tDeserializeSDropDbRsp(pMsg->pData, pMsg->len, &dropdbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SDropDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 " deserialize SDropDbRsp failed", pRequest->requestId); } struct SCatalog* pCatalog = NULL; code = catalogGetHandle(pRequest->pTscObj->pAppInfo->clusterId, &pCatalog); if (TSDB_CODE_SUCCESS == code) { if (catalogRemoveDB(pCatalog, dropdbRsp.db, dropdbRsp.uid) != 0) { - tscError("0x%" PRIx64 " failed to remove db:%s", pRequest->requestId, dropdbRsp.db); + tscError("QID:0x%" PRIx64 " failed to remove db:%s", pRequest->requestId, dropdbRsp.db); } STscObj* pTscObj = pRequest->pTscObj; @@ -451,11 +451,11 @@ int32_t processDropDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char dbFName[TSDB_DB_FNAME_LEN] = {0}; (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_INFORMATION_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); + tscError("QID:0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); } (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_PERFORMANCE_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); + tscError("QID:0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); } } } diff --git a/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c b/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c index 0a3543ac07..54f086569e 100644 --- a/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c +++ b/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c @@ -37,7 +37,7 @@ static void dmUpdateDnodeCfg(SDnodeMgmt *pMgmt, SDnodeCfg *pCfg) { auditSetDnodeId(pCfg->dnodeId); code = dmWriteEps(pMgmt->pData); if (code != 0) { - dInfo("failed to set local info, dnodeId:%d clusterId:%" PRId64 " reason:%s", pCfg->dnodeId, pCfg->clusterId, + dInfo("failed to set local info, dnodeId:%d clusterId:0x%" PRIx64 " reason:%s", pCfg->dnodeId, pCfg->clusterId, tstrerror(code)); } (void)taosThreadRwlockUnlock(&pMgmt->pData->lock); diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmInt.c b/source/dnode/mgmt/mgmt_mnode/src/mmInt.c index b1b7a90db8..5a7825c808 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmInt.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmInt.c @@ -34,7 +34,7 @@ static int32_t mmRequire(const SMgmtInputOpt *pInput, bool *required) { if (!option.deploy) { *required = mmDeployRequired(pInput); if (*required) { - dInfo("deploy mnode required. dnodeId:%d<=0, clusterId:%" PRId64 "<=0, localEp:%s==firstEp", + dInfo("deploy mnode required. dnodeId:%d<=0, clusterId:0x%" PRIx64 "<=0, localEp:%s==firstEp", pInput->pData->dnodeId, pInput->pData->clusterId, tsLocalEp); } } else { diff --git a/source/dnode/mnode/impl/src/mndStream.c b/source/dnode/mnode/impl/src/mndStream.c index a0c68f8b00..ef5f59b456 100644 --- a/source/dnode/mnode/impl/src/mndStream.c +++ b/source/dnode/mnode/impl/src/mndStream.c @@ -2835,7 +2835,7 @@ int32_t mndProcessConsensusInTmr(SRpcMsg *pMsg) { if (taosArrayGetSize(pInfo->pTaskList) == 0) { mndClearConsensusRspEntry(pInfo); if (streamId == -1) { - mError("streamId is -1, streamId:%" PRIx64" in consensus-checkpointId hashMap, cont", pInfo->streamId); + mError("streamId is -1, streamId:%" PRIx64 " in consensus-checkpointId hashMap, cont", pInfo->streamId); } void *p = taosArrayPush(pStreamList, &streamId); diff --git a/source/dnode/vnode/src/tsdb/tsdbFile2.c b/source/dnode/vnode/src/tsdb/tsdbFile2.c index cdf87d5f19..ae78511e8b 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFile2.c +++ b/source/dnode/vnode/src/tsdb/tsdbFile2.c @@ -249,14 +249,14 @@ int32_t tsdbTFileObjRef(STFileObj *fobj) { (void)taosThreadMutexLock(&fobj->mutex); if (fobj->ref <= 0 || fobj->state != TSDB_FSTATE_LIVE) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); (void)taosThreadMutexUnlock(&fobj->mutex); return TSDB_CODE_FAILED; } nRef = ++fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("ref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("ref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); return 0; } @@ -266,11 +266,11 @@ int32_t tsdbTFileObjUnref(STFileObj *fobj) { (void)taosThreadMutexUnlock(&fobj->mutex); if (nRef < 0) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); return TSDB_CODE_FAILED; } - tsdbTrace("unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { if (fobj->state == TSDB_FSTATE_DEAD) { tsdbRemoveFile(fobj->fname); @@ -335,14 +335,14 @@ static void tsdbTFileObjRemoveLC(STFileObj *fobj, bool remove_all) { int32_t tsdbTFileObjRemove(STFileObj *fobj) { (void)taosThreadMutexLock(&fobj->mutex); if (fobj->state != TSDB_FSTATE_LIVE || fobj->ref <= 0) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); (void)taosThreadMutexUnlock(&fobj->mutex); return TSDB_CODE_FAILED; } fobj->state = TSDB_FSTATE_DEAD; int32_t nRef = --fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("remove unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("remove unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { tsdbTFileObjRemoveLC(fobj, true); taosMemoryFree(fobj); @@ -355,14 +355,14 @@ int32_t tsdbTFileObjRemoveUpdateLC(STFileObj *fobj) { if (fobj->state != TSDB_FSTATE_LIVE || fobj->ref <= 0) { (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); return TSDB_CODE_FAILED; } fobj->state = TSDB_FSTATE_DEAD; int32_t nRef = --fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("remove unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("remove unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { tsdbTFileObjRemoveLC(fobj, false); taosMemoryFree(fobj); diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index 08b4ce240e..3d0283f857 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -292,7 +292,7 @@ static void doHashGroupbyAgg(SOperatorInfo* pOperator, SSDataBlock* pBlock) { SqlFunctionCtx* pCtx = pOperator->exprSupp.pCtx; int32_t numOfGroupCols = taosArrayGetSize(pInfo->pGroupCols); // if (type == TSDB_DATA_TYPE_FLOAT || type == TSDB_DATA_TYPE_DOUBLE) { - // qError("QInfo:0x%"PRIx64" group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); + // qError("QInfo:0x%"PRIx64 " group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); // return; // } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 50dfa4737f..0ca9740e7a 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -5193,7 +5193,7 @@ static int32_t doTagScanFromMetaEntryNext(SOperatorInfo* pOperator, SSDataBlock* setOperatorCompleted(pOperator); } - // qDebug("QInfo:0x%"PRIx64" create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); + // qDebug("QInfo:0x%"PRIx64 " create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); if (pOperator->status == OP_EXEC_DONE) { setTaskStatus(pTaskInfo, TASK_COMPLETED); } diff --git a/source/libs/scheduler/src/schUtil.c b/source/libs/scheduler/src/schUtil.c index 7a95087c07..8b4225f98f 100644 --- a/source/libs/scheduler/src/schUtil.c +++ b/source/libs/scheduler/src/schUtil.c @@ -23,7 +23,7 @@ #include "trpc.h" FORCE_INLINE int32_t schAcquireJob(int64_t refId, SSchJob **ppJob) { - qTrace("sch acquire jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch acquire", refId); *ppJob = (SSchJob *)taosAcquireRef(schMgmt.jobRef, refId); if (NULL == *ppJob) { return terrno; @@ -37,7 +37,7 @@ FORCE_INLINE int32_t schReleaseJob(int64_t refId) { return TSDB_CODE_SUCCESS; } - qTrace("sch release jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch release", refId); return taosReleaseRef(schMgmt.jobRef, refId); } @@ -46,7 +46,7 @@ FORCE_INLINE int32_t schReleaseJobEx(int64_t refId, int32_t *released) { return TSDB_CODE_SUCCESS; } - qTrace("sch release ex jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch release ex", refId); return taosReleaseRefEx(schMgmt.jobRef, refId, released); } @@ -122,7 +122,7 @@ int32_t schRemoveHbConnection(SSchJob *pJob, SSchTask *pTask, SQueryNodeEpId *ep SSchHbTrans *hb = taosHashGet(schMgmt.hbConnections, epId, sizeof(SQueryNodeEpId)); if (NULL == hb) { SCH_UNLOCK(SCH_WRITE, &schMgmt.hbLock); - SCH_TASK_ELOG("nodeId %d fqdn %s port %d not in hb connections", epId->nodeId, epId->ep.fqdn, epId->ep.port); + SCH_TASK_ELOG("nodeId:%d fqdn:%s port:%d not in hb connections", epId->nodeId, epId->ep.fqdn, epId->ep.port); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index ee34648a47..22a14c29ed 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -122,7 +122,7 @@ static int32_t doAppendPullOverBlock(SStreamTask* pTask, int32_t* pNumOfBlocks, pTask->info.selfChildId, pRetrieveBlock->reqId); } else { code = terrno; - stError("s-task:%s failed to append pull over block for retrieve data, QID:0x%" PRIx64" code:%s", pTask->id.idStr, + stError("s-task:%s failed to append pull over block for retrieve data, QID:0x%" PRIx64 " code:%s", pTask->id.idStr, pRetrieveBlock->reqId, tstrerror(code)); } diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index f9bb48e1e0..cbdd2cd5c8 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -2922,12 +2922,12 @@ void syncNodeLogConfigInfo(SSyncNode* ths, SSyncCfg* cfg, char* str) { ths->vgId, str, ths->replicaNum, ths->peersNum, ths->raftCfg.lastConfigIndex, ths->raftCfg.cfg.changeVersion, ths->restoreFinish); - sInfo("vgId:%d, %s, myNodeInfo, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, + sInfo("vgId:%d, %s, myNodeInfo, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, ths->myNodeInfo.clusterId, ths->myNodeInfo.nodeId, ths->myNodeInfo.nodeFqdn, ths->myNodeInfo.nodePort, ths->myNodeInfo.nodeRole); for (int32_t i = 0; i < ths->peersNum; ++i) { - sInfo("vgId:%d, %s, peersNodeInfo%d, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, + sInfo("vgId:%d, %s, peersNodeInfo%d, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, ths->peersNodeInfo[i].clusterId, ths->peersNodeInfo[i].nodeId, ths->peersNodeInfo[i].nodeFqdn, ths->peersNodeInfo[i].nodePort, ths->peersNodeInfo[i].nodeRole); } @@ -2951,7 +2951,7 @@ void syncNodeLogConfigInfo(SSyncNode* ths, SSyncCfg* cfg, char* str) { } for (int32_t i = 0; i < ths->raftCfg.cfg.totalReplicaNum; ++i) { - sInfo("vgId:%d, %s, nodeInfo%d, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, + sInfo("vgId:%d, %s, nodeInfo%d, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, ths->raftCfg.cfg.nodeInfo[i].clusterId, ths->raftCfg.cfg.nodeInfo[i].nodeId, ths->raftCfg.cfg.nodeInfo[i].nodeFqdn, ths->raftCfg.cfg.nodeInfo[i].nodePort, ths->raftCfg.cfg.nodeInfo[i].nodeRole); diff --git a/source/libs/transport/src/trans.c b/source/libs/transport/src/trans.c index b3b69d81c0..6507476713 100644 --- a/source/libs/transport/src/trans.c +++ b/source/libs/transport/src/trans.c @@ -160,7 +160,7 @@ void* rpcMallocCont(int64_t contLen) { tError("failed to malloc msg, size:%" PRId64, size); return NULL; } else { - tTrace("malloc mem:%p size:%" PRId64, start, size); + tTrace("cont:%p, rpc malloc size:%" PRId64, start, size); } return start + TRANS_MSG_OVERHEAD; diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index e90fe9297a..000e12cc66 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -2160,7 +2160,7 @@ static FORCE_INLINE void destroyReq(void* arg) { removeReqFromSendQ(pReq); STraceId* trace = &pReq->msg.info.traceId; - tGTrace("free memory:%p, free ctx:%p", pReq, pReq->ctx); + tGTrace("free mem:%p, free ctx:%p", pReq, pReq->ctx); if (pReq->ctx) { destroyReqCtx(pReq->ctx); @@ -2938,7 +2938,7 @@ void transRefCliHandle(void* handle) { SCliConn* conn = (SCliConn*)handle; conn->ref++; - tTrace("%s conn:%p, ref %d", CONN_GET_INST_LABEL(conn), conn, conn->ref); + tTrace("%s conn:%p, ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); } int32_t transUnrefCliHandle(void* handle) { if (handle == NULL) { @@ -3023,7 +3023,7 @@ int32_t transReleaseCliHandle(void* handle, int32_t status) { cmsg->ctx = pCtx; STraceId* trace = &tmsg.info.traceId; - tGDebug("send release request at thread:%08" PRId64 ", malloc memory:%p", pThrd->pid, cmsg); + tGDebug("send release request at thread:%08" PRId64 ", malloc mem:%p", pThrd->pid, cmsg); if ((code = transAsyncSend(pThrd->asyncPool, &cmsg->q)) != 0) { destroyReq(cmsg); diff --git a/source/libs/transport/src/transComm.c b/source/libs/transport/src/transComm.c index 73e14ebed4..57bf59dfe8 100644 --- a/source/libs/transport/src/transComm.c +++ b/source/libs/transport/src/transComm.c @@ -126,7 +126,7 @@ void transFreeMsg(void* msg) { if (msg == NULL) { return; } - tTrace("rpc free cont:%p", (char*)msg - TRANS_MSG_OVERHEAD); + tTrace("cont:%p, rpc free", (char*)msg - TRANS_MSG_OVERHEAD); taosMemoryFree((char*)msg - sizeof(STransMsgHead)); } void transSockInfo2Str(struct sockaddr* sockname, char* dst) { diff --git a/source/util/src/tpagedbuf.c b/source/util/src/tpagedbuf.c index 003150bde1..e56896144f 100644 --- a/source/util/src/tpagedbuf.c +++ b/source/util/src/tpagedbuf.c @@ -408,7 +408,7 @@ int32_t createDiskbasedBuf(SDiskbasedBuf** pBuf, int32_t pagesize, int64_t inMem goto _error; } - // qDebug("QInfo:0x%"PRIx64" create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, + // qDebug("QInfo:0x%"PRIx64 " create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, // pPBuf->pageSize, pPBuf->inMemPages, pPBuf->path); *pBuf = pPBuf; diff --git a/source/util/src/tqueue.c b/source/util/src/tqueue.c index 0b4ed6dbc2..d2a2cab21e 100644 --- a/source/util/src/tqueue.c +++ b/source/util/src/tqueue.c @@ -214,14 +214,14 @@ int32_t taosWriteQitem(STaosQueue *queue, void *pItem) { (void)taosThreadMutexLock(&queue->mutex); if (queue->memLimit > 0 && (queue->memOfItems + pNode->size + pNode->dataSize) > queue->memLimit) { code = TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY; - uError("item:%p failed to put into queue:%p, queue mem limit: %" PRId64 ", reason: %s" PRId64, pItem, queue, + uError("item:%p, failed to put into queue:%p, queue mem limit:%" PRId64 ", reason:%s" PRId64, pItem, queue, queue->memLimit, tstrerror(code)); (void)taosThreadMutexUnlock(&queue->mutex); return code; } else if (queue->itemLimit > 0 && queue->numOfItems + 1 > queue->itemLimit) { code = TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY; - uError("item:%p failed to put into queue:%p, queue size limit: %" PRId64 ", reason: %s" PRId64, pItem, queue, + uError("item:%p, failed to put into queue:%p, queue size limit:%" PRId64 ", reason:%s" PRId64, pItem, queue, queue->itemLimit, tstrerror(code)); (void)taosThreadMutexUnlock(&queue->mutex); return code; @@ -240,7 +240,7 @@ int32_t taosWriteQitem(STaosQueue *queue, void *pItem) { (void)atomic_add_fetch_32(&queue->qset->numOfItems, 1); } - uTrace("item:%p is put into queue:%p, items:%d mem:%" PRId64, pItem, queue, queue->numOfItems, queue->memOfItems); + uTrace("item:%p, is put into queue:%p, items:%d mem:%" PRId64, pItem, queue, queue->numOfItems, queue->memOfItems); (void)taosThreadMutexUnlock(&queue->mutex); @@ -269,7 +269,7 @@ void taosReadQitem(STaosQueue *queue, void **ppItem) { if (queue->qset) { (void)atomic_sub_fetch_32(&queue->qset->numOfItems, 1); } - uTrace("item:%p is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems, + uTrace("item:%p, is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems, queue->memOfItems); } @@ -341,7 +341,7 @@ int32_t taosGetQitem(STaosQall *qall, void **ppItem) { qall->unAccessedNumOfItems -= 1; qall->unAccessMemOfItems -= pNode->dataSize; - uTrace("item:%p is fetched", *ppItem); + uTrace("item:%p, is fetched", *ppItem); } else { *ppItem = NULL; } @@ -491,7 +491,7 @@ int32_t taosReadQitemFromQset(STaosQset *qset, void **ppItem, SQueueInfo *qinfo) queue->memOfItems -= (pNode->size + pNode->dataSize); (void)atomic_sub_fetch_32(&qset->numOfItems, 1); code = 1; - uTrace("item:%p is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems - 1, + uTrace("item:%p, is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems - 1, queue->memOfItems); } diff --git a/source/util/src/tref.c b/source/util/src/tref.c index f3597b5586..dd5e820182 100644 --- a/source/util/src/tref.c +++ b/source/util/src/tref.c @@ -98,7 +98,7 @@ int32_t taosOpenRef(int32_t max, RefFp fp) { taosIncRsetCount(pSet); tsRefSetNum++; - uTrace("rsetId:%d is opened, max:%d, fp:%p refSetNum:%d", rsetId, max, fp, tsRefSetNum); + uTrace("rsetId:%d, is opened, max:%d, fp:%p refSetNum:%d", rsetId, max, fp, tsRefSetNum); } else { rsetId = TSDB_CODE_REF_FULL; taosMemoryFree(nodeList); @@ -116,7 +116,7 @@ void taosCloseRef(int32_t rsetId) { int32_t deleted = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d is invalid, out of range", rsetId); + uTrace("rsetId:%d, is invalid, out of range", rsetId); return; } @@ -127,9 +127,9 @@ void taosCloseRef(int32_t rsetId) { if (pSet->state == TSDB_REF_STATE_ACTIVE) { pSet->state = TSDB_REF_STATE_DELETED; deleted = 1; - uTrace("rsetId:%d is closed, count:%d", rsetId, pSet->count); + uTrace("rsetId:%d, is closed, count:%d", rsetId, pSet->count); } else { - uTrace("rsetId:%d is already closed, count:%d", rsetId, pSet->count); + uTrace("rsetId:%d, is already closed, count:%d", rsetId, pSet->count); } (void)taosThreadMutexUnlock(&tsRefMutex); @@ -144,7 +144,7 @@ int64_t taosAddRef(int32_t rsetId, void *p) { int64_t rid = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d p:%p failed to add, rsetId not valid", rsetId, p); + uTrace("rsetId:%d, p:%p failed to add, rsetId not valid", rsetId, p); return terrno = TSDB_CODE_REF_INVALID_ID; } @@ -152,14 +152,14 @@ int64_t taosAddRef(int32_t rsetId, void *p) { taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { taosDecRsetCount(pSet); - uTrace("rsetId:%d p:%p failed to add, not active", rsetId, p); + uTrace("rsetId:%d, p:%p failed to add, not active", rsetId, p); return terrno = TSDB_CODE_REF_ID_REMOVED; } pNode = taosMemoryCalloc(sizeof(SRefNode), 1); if (pNode == NULL) { taosDecRsetCount(pSet); - uError("rsetId:%d p:%p failed to add, out of memory", rsetId, p); + uError("rsetId:%d, p:%p failed to add, out of memory", rsetId, p); return terrno; } @@ -176,7 +176,7 @@ int64_t taosAddRef(int32_t rsetId, void *p) { if (pSet->nodeList[hash]) pSet->nodeList[hash]->prev = pNode; pSet->nodeList[hash] = pNode; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is added, count:%d, remain count:%d", rsetId, p, rid, pSet->count, + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is added, count:%d, remain count:%d", rsetId, p, rid, pSet->count, pNode->count); taosUnlockList(pSet->lockedBy + hash); @@ -195,13 +195,13 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { void *p = NULL; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - // uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, rsetId not valid", rsetId, rid); + // uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, rsetId not valid", rsetId, rid); terrno = TSDB_CODE_REF_INVALID_ID; return NULL; } if (rid <= 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, rid not valid", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; return NULL; } @@ -209,7 +209,7 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { pSet = tsRefSetList + rsetId; taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { - uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, not active", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, not active", rsetId, rid); taosDecRsetCount(pSet); terrno = TSDB_CODE_REF_ID_REMOVED; return NULL; @@ -229,21 +229,21 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode) { if (pNode->removed == 0) { pNode->count++; p = pNode->p; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is acquired, remain count:%d", rsetId, pNode->p, rid, pNode->count); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is acquired, remain count:%d", rsetId, pNode->p, rid, pNode->count); } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is already removed, failed to acquire", rsetId, pNode->p, rid); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is already removed, failed to acquire", rsetId, pNode->p, rid); } } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d rid:%" PRId64 " is not there, failed to acquire", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to acquire", rsetId, rid); } taosUnlockList(pSet->lockedBy + hash); @@ -264,13 +264,13 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { SRefSet *pSet; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rsetId not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rsetId not valid", rsetId, rid); terrno = TSDB_CODE_REF_INVALID_ID; return NULL; } if (rid < 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rid not valid", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; return NULL; } @@ -279,7 +279,7 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { pSet = tsRefSetList + rsetId; taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rset not active", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rset not active", rsetId, rid); terrno = TSDB_CODE_REF_ID_REMOVED; taosDecRsetCount(pSet); return NULL; @@ -301,11 +301,11 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode == NULL) { - uError("rsetId:%d rid:%" PRId64 " not there, quit", rsetId, rid); + uError("rsetId:%d, rid:0x%" PRIx64 " not there, quit", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; taosUnlockList(pSet->lockedBy + hash); taosDecRsetCount(pSet); @@ -345,9 +345,9 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { pNode->count++; // acquire it newP = pNode->p; taosUnlockList(pSet->lockedBy + hash); - uTrace("rsetId:%d p:%p rid:%" PRId64 " is returned", rsetId, newP, rid); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is returned", rsetId, newP, rid); } else { - uTrace("rsetId:%d the list is over", rsetId); + uTrace("rsetId:%d, the list is over", rsetId); } if (rid > 0) taosReleaseRef(rsetId, rid); // release the current one @@ -371,13 +371,13 @@ int32_t taosListRef() { if (pSet->state == TSDB_REF_STATE_EMPTY) continue; - uInfo("rsetId:%d state:%d count:%d", i, pSet->state, pSet->count); + uInfo("rsetId:%d, state:%d count:%d", i, pSet->state, pSet->count); for (int32_t j = 0; j < pSet->max; ++j) { pNode = pSet->nodeList[j]; while (pNode) { - uInfo("rsetId:%d p:%p rid:%" PRId64 "count:%d", i, pNode->p, pNode->rid, pNode->count); + uInfo("rsetId:%d, p:%p rid:0x%" PRIx64 "count:%d", i, pNode->p, pNode->rid, pNode->count); pNode = pNode->next; num++; } @@ -398,18 +398,18 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 int32_t code = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, rsetId not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, rsetId not valid", rsetId, rid); return terrno = TSDB_CODE_REF_INVALID_ID; } if (rid <= 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, rid not valid", rsetId, rid); return terrno = TSDB_CODE_REF_NOT_EXIST; } pSet = tsRefSetList + rsetId; if (pSet->state == TSDB_REF_STATE_EMPTY) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, cleaned", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, cleaned", rsetId, rid); return terrno = TSDB_CODE_REF_ID_REMOVED; } @@ -425,7 +425,7 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode) { @@ -444,10 +444,10 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 } released = 1; } else { - uTrace("rsetId:%d p:%p rid:%" PRId64 " is released, remain count %d", rsetId, pNode->p, rid, pNode->count); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is released, remain count %d", rsetId, pNode->p, rid, pNode->count); } } else { - uTrace("rsetId:%d rid:%" PRId64 " is not there, failed to release/remove", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to release/remove", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; code = terrno; } @@ -455,7 +455,7 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 taosUnlockList(pSet->lockedBy + hash); if (released) { - uTrace("rsetId:%d p:%p rid:%" PRId64 " is removed, count:%d, free mem: %p", rsetId, pNode->p, rid, pSet->count, + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is removed, count:%d, free mem: %p", rsetId, pNode->p, rid, pSet->count, pNode); (*pSet->fp)(pNode->p); taosMemoryFree(pNode); @@ -489,12 +489,12 @@ static void taosInitRefModule(void) { (void)taosThreadMutexInit(&tsRefMutex, NUL static void taosIncRsetCount(SRefSet *pSet) { (void)atomic_add_fetch_32(&pSet->count, 1); - // uTrace("rsetId:%d inc count:%d", pSet->rsetId, count); + // uTrace("rsetId:%d, inc count:%d", pSet->rsetId, count); } static void taosDecRsetCount(SRefSet *pSet) { int32_t count = atomic_sub_fetch_32(&pSet->count, 1); - // uTrace("rsetId:%d dec count:%d", pSet->rsetId, count); + // uTrace("rsetId:%d, dec count:%d", pSet->rsetId, count); if (count > 0) return; @@ -509,7 +509,7 @@ static void taosDecRsetCount(SRefSet *pSet) { taosMemoryFreeClear(pSet->lockedBy); tsRefSetNum--; - uTrace("rsetId:%d is cleaned, refSetNum:%d count:%d", pSet->rsetId, tsRefSetNum, pSet->count); + uTrace("rsetId:%d, is cleaned, refSetNum:%d count:%d", pSet->rsetId, tsRefSetNum, pSet->count); } (void)taosThreadMutexUnlock(&tsRefMutex); From 42e39a59dfeeda2dcb7fe17549cdec5ee772413b Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 19:15:35 +0800 Subject: [PATCH 11/34] enh: adjust log format --- source/client/src/clientEnv.c | 4 ++-- source/client/src/clientImpl.c | 11 ++++++----- source/client/src/clientMain.c | 4 ++-- source/dnode/vnode/src/sma/smaRollup.c | 10 +++++----- source/dnode/vnode/src/tsdb/tsdbRead2.c | 2 +- source/libs/catalog/src/catalog.c | 2 +- source/libs/executor/src/aggregateoperator.c | 4 ++-- source/libs/executor/src/executil.c | 2 +- source/libs/executor/src/executor.c | 2 +- source/libs/executor/src/operator.c | 6 +++--- source/libs/function/src/tudf.c | 6 +++--- source/libs/function/src/udfd.c | 6 +++--- source/libs/parser/src/parInsertStmt.c | 16 ++++++++-------- source/libs/parser/src/parInsertUtil.c | 6 +++--- source/libs/parser/src/parTranslater.c | 10 +++++----- source/libs/qcom/src/queryUtil.c | 2 +- source/libs/qworker/src/qwDbg.c | 2 +- source/libs/scheduler/src/schJob.c | 10 +++++----- source/libs/scheduler/src/scheduler.c | 2 +- 19 files changed, 54 insertions(+), 53 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 84864766f9..e9c35f2599 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -262,14 +262,14 @@ static void deregisterRequest(SRequestObj *pRequest) { if ((pRequest->pQuery && pRequest->pQuery->pRoot && QUERY_NODE_VNODE_MODIFY_STMT == pRequest->pQuery->pRoot->type && (0 == ((SVnodeModifyOpStmt *)pRequest->pQuery->pRoot)->sqlNodeType)) || QUERY_NODE_VNODE_MODIFY_STMT == pRequest->stmtType) { - tscDebug("req:0x%" PRIx64 ", insert duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 + tscDebug("req:0x%" PRIx64 ", insert duration:%" PRId64 "us, parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); (void)atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration); reqType = SLOW_LOG_TYPE_INSERT; } else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) { - tscDebug("req:0x%" PRIx64 ", query duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 + tscDebug("req:0x%" PRIx64 ", query duration:%" PRId64 "us, parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 3efa0a2130..42bebd5675 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -264,7 +264,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, } } - tscDebugL("req:0x%" PRIx64 ", SQL:%s, QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); + tscDebugL("req:0x%" PRIx64 ", QID:0x%" PRIx64 ", build request", (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } @@ -1030,7 +1030,7 @@ int32_t handleQueryExecRsp(SRequestObj* pRequest) { break; } default: - tscError("req:0x%" PRIx64 ", invalid exec result for request type %d, QID:0x%" PRIx64, pRequest->self, pRequest->type, + tscError("req:0x%" PRIx64 ", invalid exec result for request type:%d, QID:0x%" PRIx64, pRequest->self, pRequest->type, pRequest->requestId); code = TSDB_CODE_APP_ERROR; } @@ -1212,7 +1212,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { pRequest->requestId); if (code != TSDB_CODE_SUCCESS && NEED_CLIENT_HANDLE_ERROR(code) && pRequest->sqlstr != NULL) { - tscDebug("re:0x%" PRIx64 ", client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->retry, pRequest->requestId); if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); @@ -1221,7 +1221,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { return; } - tscDebug("req:0x%" PRIx64 ", schedulerExecCb request type %s", pRequest->self, TMSG_INFO(pRequest->type)); + tscTrace("req:0x%" PRIx64 ", scheduler exec cb, request type:%s", pRequest->self, TMSG_INFO(pRequest->type)); if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); @@ -2983,7 +2983,8 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s } taosMemoryFree(param); - tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end with sql:%s", *(int64_t*)taos, pRequest, sql); + tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end, affectRows:%" PRId64, *(int64_t*)taos, pRequest, + pRequest->body.resInfo.numOfRows); return pRequest; } diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 8540bf9449..184fd4a112 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -539,7 +539,7 @@ void taos_free_result(TAOS_RES *res) { if (TD_RES_QUERY(res)) { SRequestObj *pRequest = (SRequestObj *)res; - tscDebug("QID:0x%" PRIx64 ", taos_free_result start to free query", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", call taos_free_result to free query", pRequest->requestId); destroyRequest(pRequest); return; } @@ -1470,7 +1470,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { code = pRequest->prevCode; terrno = code; pRequest->code = code; - tscDebug("req:0x%" PRIx64 ", call sync query cb with code: %s", pRequest->self, tstrerror(code)); + tscDebug("req:0x%" PRIx64 ", call sync query cb with code:%s", pRequest->self, tstrerror(code)); doRequestCallback(pRequest, code); return; } diff --git a/source/dnode/vnode/src/sma/smaRollup.c b/source/dnode/vnode/src/sma/smaRollup.c index 3c5634f763..1a33a69f2b 100644 --- a/source/dnode/vnode/src/sma/smaRollup.c +++ b/source/dnode/vnode/src/sma/smaRollup.c @@ -1017,20 +1017,20 @@ int32_t tdProcessRSmaSubmit(SSma *pSma, int64_t version, void *pReq, void *pMsg, int32_t code = 0; if ((code = atomic_load_32(&SMA_RSMA_STAT(pSma)->execStat))) { - smaError("vgId:%d, failed to process rsma submit since invalid exec code: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit since invalid exec code:%s", SMA_VID(pSma), tstrerror(code)); goto _exit; } STbUidStore uidStore = {0}; if ((code = tdFetchSubmitReqSuids(pReq, &uidStore)) < 0) { - smaError("vgId:%d, failed to process rsma submit fetch suid since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit fetch suid since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } if (uidStore.suid != 0) { if ((code = tdExecuteRSmaAsync(pSma, version, pMsg, len, STREAM_INPUT__DATA_SUBMIT, uidStore.suid)) < 0) { - smaError("vgId:%d, failed to process rsma submit exec 1 since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit exec 1 since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } @@ -1054,13 +1054,13 @@ int32_t tdProcessRSmaDelete(SSma *pSma, int64_t version, void *pReq, void *pMsg, int32_t code = 0; if ((code = atomic_load_32(&SMA_RSMA_STAT(pSma)->execStat))) { - smaError("vgId:%d, failed to process rsma delete since invalid exec code: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma delete since invalid exec code:%s", SMA_VID(pSma), tstrerror(code)); goto _exit; } SDeleteRes *pDelRes = pReq; if ((code = tdExecuteRSmaAsync(pSma, version, pMsg, len, STREAM_INPUT__REF_DATA_BLOCK, pDelRes->suid)) < 0) { - smaError("vgId:%d, failed to process rsma submit exec 1 since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit exec 1 since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } _exit: diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 57041e851a..8baf08ef94 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -230,7 +230,7 @@ static int32_t setColumnIdSlotList(SBlockLoadSuppInfo* pSupInfo, SColumnInfo* pC if (IS_VAR_DATA_TYPE(pCols[i].type)) { pSupInfo->buildBuf[i] = taosMemoryMalloc(pCols[i].bytes); if (pSupInfo->buildBuf[i] == NULL) { - tsdbError("failed to prepare memory for set columnId slot list, size:%d, code: %s", pCols[i].bytes, + tsdbError("failed to prepare memory for set columnId slot list, size:%d, code:%s", pCols[i].bytes, tstrerror(terrno)); } TSDB_CHECK_NULL(pSupInfo->buildBuf[i], code, lino, _end, terrno); diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index b70c018110..c775893e53 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -1973,7 +1973,7 @@ int32_t catalogClearCache(void) { int32_t code = ctgClearCacheEnqueue(NULL, false, false, false, true); - qInfo("clear catalog cache end, code: %s", tstrerror(code)); + qInfo("clear catalog cache end, code:%s", tstrerror(code)); CTG_API_LEAVE_NOLOCK(code); } diff --git a/source/libs/executor/src/aggregateoperator.c b/source/libs/executor/src/aggregateoperator.c index 1b8e8298b4..55166d8c27 100644 --- a/source/libs/executor/src/aggregateoperator.c +++ b/source/libs/executor/src/aggregateoperator.c @@ -360,7 +360,7 @@ int32_t doAggregateImpl(SOperatorInfo* pOperator, SqlFunctionCtx* pCtx) { if (pCtx[k].fpSet.cleanup != NULL) { pCtx[k].fpSet.cleanup(&pCtx[k]); } - qError("%s aggregate function error happens, code: %s", GET_TASKID(pOperator->pTaskInfo), tstrerror(code)); + qError("%s aggregate function error happens, code:%s", GET_TASKID(pOperator->pTaskInfo), tstrerror(code)); return code; } } @@ -803,7 +803,7 @@ int32_t applyAggFunctionOnPartialTuples(SExecTaskInfo* taskInfo, SqlFunctionCtx* if (pCtx[k].fpSet.cleanup != NULL) { pCtx[k].fpSet.cleanup(&pCtx[k]); } - qError("%s apply functions error, code: %s", GET_TASKID(taskInfo), tstrerror(code)); + qError("%s apply functions error, code:%s", GET_TASKID(taskInfo), tstrerror(code)); taskInfo->code = code; return code; } diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 7bff5550df..ac6b089de1 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -2911,7 +2911,7 @@ int32_t createScanTableListInfo(SScanPhysiNode* pScanNode, SNodeList* pGroupTags int32_t code = getTableList(pHandle->vnode, pScanNode, pTagCond, pTagIndexCond, pTableListInfo, digest, idStr, &pTaskInfo->storageAPI); if (code != TSDB_CODE_SUCCESS) { - qError("failed to getTableList, code: %s", tstrerror(code)); + qError("failed to getTableList, code:%s", tstrerror(code)); return code; } diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index efe0792a76..ce23a9063f 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -645,7 +645,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId, int32_t code = createExecTaskInfo(pSubplan, pTask, readHandle, taskId, vgId, sql, model); if (code != TSDB_CODE_SUCCESS || NULL == *pTask) { - qError("failed to createExecTaskInfo, code: %s", tstrerror(code)); + qError("failed to createExecTaskInfo, code:%s", tstrerror(code)); goto _error; } diff --git a/source/libs/executor/src/operator.c b/source/libs/executor/src/operator.c index 5d25a81f6f..057deed038 100644 --- a/source/libs/executor/src/operator.c +++ b/source/libs/executor/src/operator.c @@ -349,7 +349,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand if (code) { pTaskInfo->code = code; tableListDestroy(pTableListInfo); - qError("failed to createScanTableListInfo, code: %s", tstrerror(code)); + qError("failed to createScanTableListInfo, code:%s", tstrerror(code)); return code; } @@ -387,7 +387,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand if (code) { pTaskInfo->code = code; tableListDestroy(pTableListInfo); - qError("failed to createScanTableListInfo, code: %s", tstrerror(code)); + qError("failed to createScanTableListInfo, code:%s", tstrerror(code)); return code; } } @@ -417,7 +417,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand pTagIndexCond, pTaskInfo); if (code != TSDB_CODE_SUCCESS) { pTaskInfo->code = code; - qError("failed to getTableList, code: %s", tstrerror(code)); + qError("failed to getTableList, code:%s", tstrerror(code)); tableListDestroy(pTableListInfo); return code; } diff --git a/source/libs/function/src/tudf.c b/source/libs/function/src/tudf.c index 3ee35b921d..5c5a98cb2e 100644 --- a/source/libs/function/src/tudf.c +++ b/source/libs/function/src/tudf.c @@ -1733,7 +1733,7 @@ void onUdfcPipeWrite(uv_write_t *write, int32_t status) { void onUdfcPipeConnect(uv_connect_t *connect, int32_t status) { SClientUvTaskNode *uvTask = connect->data; if (status != 0) { - fnError("client connect error, task seq: %" PRId64 ", code: %s", uvTask->seqNum, uv_strerror(status)); + fnError("client connect error, task seq: %" PRId64 ", code:%s", uvTask->seqNum, uv_strerror(status)); } uvTask->errCode = status; @@ -1812,7 +1812,7 @@ int32_t udfcQueueUvTask(SClientUvTaskNode *uvTask) { uv_mutex_unlock(&udfc->taskQueueMutex); int32_t code = uv_async_send(&udfc->loopTaskAync); if (code != 0) { - fnError("udfc queue uv task to event loop failed. code: %s", uv_strerror(code)); + fnError("udfc queue uv task to event loop failed. code:%s", uv_strerror(code)); return TSDB_CODE_UDF_UV_EXEC_FAILURE; } @@ -1884,7 +1884,7 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) { int32_t err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipeWrite); if (err != 0) { taosMemoryFree(write); - fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code: %s", uvTask, uv_strerror(err)); + fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code:%s", uvTask, uv_strerror(err)); } code = err; } diff --git a/source/libs/function/src/udfd.c b/source/libs/function/src/udfd.c index ecb24fc77a..80dfdc5ce3 100644 --- a/source/libs/function/src/udfd.c +++ b/source/libs/function/src/udfd.c @@ -1106,7 +1106,7 @@ void udfdProcessRpcRsp(void *parent, SRpcMsg *pMsg, SEpSet *pEpSet) { } if (pMsg->code != TSDB_CODE_SUCCESS) { - fnError("udfd rpc error. code: %s", tstrerror(pMsg->code)); + fnError("udfd rpc error. code:%s", tstrerror(pMsg->code)); msgInfo->code = pMsg->code; goto _return; } @@ -1312,7 +1312,7 @@ void udfdOnWrite(uv_write_t *req, int status) { TAOS_UDF_CHECK_PTR_RVOID(req); SUvUdfWork *work = (SUvUdfWork *)req->data; if (status < 0) { - fnError("udfd send response error, length: %zu code: %s", work->output.len, uv_err_name(status)); + fnError("udfd send response error, length: %zu code:%s", work->output.len, uv_err_name(status)); } // remove work from the connection work list if (work->conn != NULL) { @@ -1477,7 +1477,7 @@ void udfdPipeRead(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf) { void udfdOnNewConnection(uv_stream_t *server, int status) { TAOS_UDF_CHECK_PTR_RVOID(server); if (status < 0) { - fnError("udfd new connection error. code: %s", uv_strerror(status)); + fnError("udfd new connection error. code:%s", uv_strerror(status)); return; } int32_t code = 0; diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 9f9077d1b6..f2783480c1 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -370,7 +370,7 @@ int32_t qBindStmtStbColsValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bind code = tRowBuildFromBind(pBindInfos, boundInfo->numOfBound, colInOrder, *pTSchema, pCols, &pDataBlock->ordered, &pDataBlock->duplicateTs); - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: @@ -423,7 +423,7 @@ int32_t qBindStmtColsValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bind, c } } - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: @@ -472,7 +472,7 @@ int32_t qBindStmtSingleColValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bi IS_VAR_DATA_TYPE(pColSchema->type) ? pColSchema->bytes - VARSTR_HEADER_SIZE : -1, initCtxAsText, checkWKB); - qDebug("stmt col %d bind %d rows data", colIdx, rowNum); + parserDebug("stmt col %d bind %d rows data", colIdx, rowNum); _return: @@ -750,7 +750,7 @@ int32_t qBindStmtStbColsValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* bin code = tRowBuildFromBind2(pBindInfos, boundInfo->numOfBound, colInOrder, *pTSchema, pCols, &pDataBlock->ordered, &pDataBlock->duplicateTs); - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: if (ncharBinds) { @@ -867,7 +867,7 @@ int32_t qBindStmtColsValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* bind, } } - qDebug("stmt2 all %d columns bind %d rows data as col format", boundInfo->numOfBound, rowNum); + parserDebug("stmt2 all %d columns bind %d rows data as col format", boundInfo->numOfBound, rowNum); _return: @@ -916,7 +916,7 @@ int32_t qBindStmtSingleColValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* b IS_VAR_DATA_TYPE(pColSchema->type) ? pColSchema->bytes - VARSTR_HEADER_SIZE : -1, initCtxAsText, checkWKB); - qDebug("stmt col %d bind %d rows data", colIdx, rowNum); + parserDebug("stmt col %d bind %d rows data", colIdx, rowNum); _return: @@ -1096,7 +1096,7 @@ int32_t qResetStmtColumns(SArray* pCols, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pCols, i); if (pCol == NULL) { - qError("qResetStmtColumns column is NULL"); + parserError("qResetStmtColumns column is NULL"); return terrno; } if (deepClear) { @@ -1116,7 +1116,7 @@ int32_t qResetStmtDataBlock(STableDataCxt* block, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pBlock->pData->aCol, i); if (pCol == NULL) { - qError("qResetStmtDataBlock column is NULL"); + parserError("qResetStmtDataBlock column is NULL"); return terrno; } if (deepClear) { diff --git a/source/libs/parser/src/parInsertUtil.c b/source/libs/parser/src/parInsertUtil.c index 127155d105..9c7ce74072 100644 --- a/source/libs/parser/src/parInsertUtil.c +++ b/source/libs/parser/src/parInsertUtil.c @@ -298,7 +298,7 @@ static int32_t createTableDataCxt(STableMeta* pTableMeta, SVCreateTbReq** pCreat } if (TSDB_CODE_SUCCESS == code) { *pOutput = pTableCxt; - qDebug("uid:%" PRId64 ", create table data context, code:%d, vgId:%d", pTableMeta->uid, code, pTableMeta->vgId); + parserDebug("uid:%" PRId64 ", create table data context, code:%d, vgId:%d", pTableMeta->uid, code, pTableMeta->vgId); } else { insDestroyTableDataCxt(pTableCxt); } @@ -478,7 +478,7 @@ static int32_t fillVgroupDataCxt(STableDataCxt* pTableCxt, SVgroupDataCxt* pVgCx taosMemoryFreeClear(pTableCxt->pData); } - qDebug("uid:%" PRId64 ", add table data context to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); + parserDebug("uid:%" PRId64 ", add table data context to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); return code; } @@ -760,7 +760,7 @@ int32_t insMergeTableDataCxt(SHashObj* pTableHash, SArray** pVgDataBlocks, bool // skip the table has no data to insert // eg: import a csv without valid data // if (0 == taosArrayGetSize(pTableCxt->pData->aRowP)) { - // qWarn("no row in tableDataCxt uid:%" PRId64 " ", pTableCxt->pMeta->uid); + // parserWarn("no row in tableDataCxt uid:%" PRId64 " ", pTableCxt->pMeta->uid); // p = taosHashIterate(pTableHash, p); // continue; // } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index e715611df2..d47391f358 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -7015,7 +7015,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* bool stableQuery = false; SEqCondTbNameTableInfo* pInfo = NULL; - qDebug("start to update stable vg for tbname optimize, aTableNum:%d", aTableNum); + parserDebug("start to update stable vg for tbname optimize, aTableNum:%d", aTableNum); for (int i = 0; i < aTableNum; ++i) { pInfo = taosArrayGet(aTables, i); int32_t numOfVgs = pInfo->pRealTable->pVgroupList->numOfVgroups; @@ -7084,7 +7084,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* } } - qDebug("before ctbname optimize, code:%d, aTableNum:%d, nTbls:%d, stableQuery:%d", code, aTableNum, nTbls, + parserDebug("before ctbname optimize, code:%d, aTableNum:%d, nTbls:%d, stableQuery:%d", code, aTableNum, nTbls, stableQuery); if (TSDB_CODE_SUCCESS == code && 1 == aTableNum && 1 == nTbls && stableQuery && NULL == pInfo->pRealTable->pTsmas) { @@ -13001,7 +13001,7 @@ static int32_t readFromFile(char* pName, int32_t* len, char** buf) { int64_t s = taosReadFile(tfile, *buf, *len); if (s != *len) { int32_t code = taosCloseFile(&tfile); - qError("failed to close file: %s in %s:%d, err: %s", pName, __func__, __LINE__, tstrerror(code)); + parserError("failed to close file: %s in %s:%d, err: %s", pName, __func__, __LINE__, tstrerror(code)); taosMemoryFreeClear(*buf); return TSDB_CODE_APP_ERROR; } @@ -15835,7 +15835,7 @@ int32_t serializeVgroupsCreateTableBatch(SHashObj* pVgroupHashmap, SArray** pOut code = serializeVgroupCreateTableBatch(pTbBatch, pBufArray); if (TSDB_CODE_SUCCESS != code) { - qError("failed to serialize create table batch msg, since:%s", tstrerror(code)); + parserError("failed to serialize create table batch msg, since:%s", tstrerror(code)); taosHashCancelIterate(pVgroupHashmap, pTbBatch); break; } @@ -15914,7 +15914,7 @@ static int32_t rewriteCreateTableFromFile(STranslateContext* pCxt, SQuery* pQuer taosHashClear(pModifyStmt->pVgroupsHashObj); if (TSDB_CODE_SUCCESS != code) { if (TSDB_CODE_INVALID_MSG_LEN == code) { - qError("maxInsertBatchRows may need to be reduced, current:%d", tsMaxInsertBatchRows); + parserError("maxInsertBatchRows may need to be reduced, current:%d", tsMaxInsertBatchRows); } taosHashCleanup(pModifyStmt->pVgroupsHashObj); return code; diff --git a/source/libs/qcom/src/queryUtil.c b/source/libs/qcom/src/queryUtil.c index 35f258c554..74bb75077c 100644 --- a/source/libs/qcom/src/queryUtil.c +++ b/source/libs/qcom/src/queryUtil.c @@ -343,7 +343,7 @@ void destroyQueryExecRes(SExecResult* pRes) { break; } default: - qError("invalid exec result for request type %d", pRes->msgType); + qError("invalid exec result for request type:%d", pRes->msgType); } } // clang-format on diff --git a/source/libs/qworker/src/qwDbg.c b/source/libs/qworker/src/qwDbg.c index e430990c0d..a3dd91d512 100644 --- a/source/libs/qworker/src/qwDbg.c +++ b/source/libs/qworker/src/qwDbg.c @@ -237,7 +237,7 @@ int32_t qwDbgBuildAndSendRedirectRsp(int32_t rspType, SRpcHandleInfo *pConn, int tmsgSendRsp(&rpcRsp); - qDebug("response %s msg, code: %s", TMSG_INFO(rspType), tstrerror(code)); + qDebug("response %s msg, code:%s", TMSG_INFO(rspType), tstrerror(code)); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index e8135efce5..bd79d06b2f 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -465,7 +465,7 @@ void schDumpJobExecRes(SSchJob *pJob, SExecResult *pRes) { pJob->execRes.res = NULL; SCH_UNLOCK(SCH_WRITE, &pJob->resLock); - SCH_JOB_DLOG("execRes dumped, code: %s", tstrerror(pRes->code)); + SCH_JOB_DLOG("execRes dumped, code:%s", tstrerror(pRes->code)); } int32_t schDumpJobFetchRes(SSchJob *pJob, void **pData) { @@ -519,9 +519,9 @@ int32_t schNotifyUserExecRes(SSchJob *pJob) { schDumpJobExecRes(pJob, pRes); - SCH_JOB_DLOG("sch start to invoke exec cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch start to invoke exec cb, code:%s", tstrerror(pJob->errCode)); (*pJob->userRes.execFp)(pRes, pJob->userRes.cbParam, atomic_load_32(&pJob->errCode)); - SCH_JOB_DLOG("sch end from exec cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch end from exec cb, code:%s", tstrerror(pJob->errCode)); return TSDB_CODE_SUCCESS; } @@ -534,9 +534,9 @@ int32_t schNotifyUserFetchRes(SSchJob *pJob) { atomic_store_32(&pJob->errCode, code); } - SCH_JOB_DLOG("sch start to invoke fetch cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch start to invoke fetch cb, code:%s", tstrerror(pJob->errCode)); (*pJob->userRes.fetchFp)(pRes, pJob->userRes.cbParam, atomic_load_32(&pJob->errCode)); - SCH_JOB_DLOG("sch end from fetch cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch end from fetch cb, code:%s", tstrerror(pJob->errCode)); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index 9437bf73d6..541a0b99f7 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -171,7 +171,7 @@ void schedulerFreeJob(int64_t *jobId, int32_t errCode) { return; } - SCH_JOB_DLOG("start to free job 0x%" PRIx64 ", code:%s", *jobId, tstrerror(errCode)); + SCH_JOB_DLOG("jobId:0x%" PRIx64 ", start to free, code:%s", *jobId, tstrerror(errCode)); (void)schHandleJobDrop(pJob, errCode); // ignore any error int32_t released = false; From d031e32019a9220775a311e28954db7ecde30836 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 19:41:30 +0800 Subject: [PATCH 12/34] enh: adjust log format --- source/client/src/clientImpl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 42bebd5675..83cf924a02 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -264,7 +264,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, } } - tscDebugL("req:0x%" PRIx64 ", QID:0x%" PRIx64 ", build request", (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); + tscDebugL("req:0x%" PRIx64 ", QID:0x%" PRIx64 ", build request", (*pRequest)->self, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } From d6eb13aaff9615b33514a262e286b79b46cb4a21 Mon Sep 17 00:00:00 2001 From: tjuzyp Date: Wed, 26 Feb 2025 20:24:05 +0800 Subject: [PATCH 13/34] docs: update exception handling strategy --- .../_03-exception-handling-strategy.mdx | 24 +++++++++++++++++- .../pic/exception-handling-strategy.png | Bin 44166 -> 100277 bytes 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx b/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx index 470c304ff3..910af2526f 100644 --- a/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx +++ b/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx @@ -9,9 +9,15 @@ > 丢弃:将异常数据忽略,不写入目标库 > 报错:任务报错 +- **目标库连接超时** 目标库连接失败,可选处理策略:归档、丢弃、报错、缓存 + > 缓存:当目标库状态异常(连接错误或资源不足等情况)时写入缓存文件(默认路径为 `${data_dir}/tasks/_id/.datetime`),目标库恢复正常后重新入库 +- **目标库不存在** 写入报错目标库不存在,可选处理策略:归档、丢弃、报错 +- **表不存在** 写入报错表不存在,可选处理策略:归档、丢弃、报错、自动建表 + > 自动建表:自动建表,建表成功后重试 - **主键时间戳溢出** 检查数据中第一列时间戳是否在正确的时间范围内(now - keep1, now + 100y),可选处理策略:归档、丢弃、报错 - **主键时间戳空** 检查数据中第一列时间戳是否为空,可选处理策略:归档、丢弃、报错、使用当前时间 > 使用当前时间:使用当前时间填充到空的时间戳字段中 +- **复合主键空** 写入报错复合主键空,可选处理策略:归档、丢弃、报错 - **表名长度溢出** 检查子表表名的长度是否超出限制(最大 192 字符),可选处理策略:归档、丢弃、报错、截断、截断且归档 > 截断:截取原始表名的前 192 个字符作为新的表名 > 截断且归档:截取原始表名的前 192 个字符作为新的表名,并且将此行记录写入归档文件 @@ -20,4 +26,20 @@ - **表名模板变量空值** 检查子表表名模板中的变量是否为空,可选处理策略:丢弃、留空、变量替换为指定字符串 > 留空:变量位置不做任何特殊处理,例如 `a_{x}` 转换为 `a_` > 变量替换为指定字符串:变量位置使用后方输入框中的指定字符串,例如 `a_{x}` 转换为 `a_b` -- **列名长度溢出** 检查列名的长度是否超出限制(最大 64 字符),可选处理策略:归档、丢弃、报错 \ No newline at end of file +- **列名不存在** 写入报错列名不存在,可选处理策略:归档、丢弃、报错、自动增加缺失列 + > 自动增加缺失列:根据数据信息,自动修改表结构增加列,修改成功后重试 +- **列名长度溢出** 检查列名的长度是否超出限制(最大 64 字符),可选处理策略:归档、丢弃、报错 +- **列自动扩容** 开关选项,打开时,列数据长度超长时将自动修改表结构并重试 +- **列长度溢出** 写入报错列长度溢出,可选处理策略:归档、丢弃、报错、截断、截断且归档 + > 截断:截取数据中符合长度限制的前 n 个字符 + > 截断且归档:截取数据中符合长度限制的前 n 个字符,并且将此行记录写入归档文件 +- **数据异常** 其他数据异常(未在上方列出的其他异常)的处理策略,可选处理策略:归档、丢弃、报错 +- **连接超时** 配置目标库连接超时时间,单位“秒”取值范围 1~600 +- **临时存储文件位置** 配置缓存文件的位置,实际生效位置 $DATA_DIR/tasks/:id/{location} +- **归档数据保留天数** 非负整数,0 表示无限制 +- **归档数据可用空间** 0~65535,其中 0 表示无限制 +- **归档数据文件位置** 配置归档文件的位置,实际生效位置 $DATA_DIR/tasks/:id/{location} +- **归档数据失败处理策略** 当写入归档文件报错时的处理策略,可选处理策略:删除旧文件、丢弃、报错并停止任务 + > 删除旧文件:删除旧文件,如果删除旧文件后仍然无法写入,则报错并停止任务 + > 丢弃:丢弃即将归档的数据 + > 报错并停止任务:报错并停止当前任务 \ No newline at end of file diff --git a/docs/zh/06-advanced/05-data-in/pic/exception-handling-strategy.png b/docs/zh/06-advanced/05-data-in/pic/exception-handling-strategy.png index 1e1d55d85c329403afa71bd3d04225095e9951fe..0342184511f43d835bd3a3371b05b00dad828db7 100644 GIT binary patch literal 100277 zcmd42Q*Zy+EdAW0D+6_1Rw z4SyXK)sLrZb(TKHUP>sau(0AViBTBI2pTFXvWPO91g)0_+NGDfnnqjeCN}}?wzZ;n zn>9P_%Iq8C<5n##jXzdKh9%K7C=iE;A|hZS_-GCR*jQ#4QCk8bgrI>+I13Mc`~g^-dm3uk6awOoj%XZ-=TN zAyCK_)wyev|J(Yss9d5_yg<#%%X@WqCs@$xMK~mz8EU|lDTjkwv25eU%h%xHVKHqn zzr-8&?|8efL&q+8ln7^T!G~tJS{0CbdaZVQp$Nbd&UNs0EyxTE_`WZHyy`aoB__-t zR905)Yp_4}dLCX@Rm+? zn2yUMV^LsbQ@?vqkeKy9tpzj1*Eh2>%NDjY$}2W*lAM_TV)mhXxtlSpTUqlGQqeUn zg#FKG(Ywbb1uZKG0i%8SYYkAr|CxWQr-w!Lnl=d1$oqe&^2ubyVM7ofL!wQ4mim_k z*RDz>D(758TQ0``!v~arf7^(?qQQv%vpRYtz+wN6lDFjJ4H6eZPAzjzXj@1wB}IpY zt1X>@HAXkj-MYD8_{z600B#Q$ym$Q1iiMj;1-&^-tmi)iHpb9K`FsIe%>}g9QlFe&U`+C4;MoTuaHQG?5|bl{hBH7*C2z_ z25N6hg5P*^cKei4Y#W$9cChp$RQg(A-yZEJm6w-(nP(A>s^~ukadV~U_Beav_w#cC ze%U=*Y?+jr_lc39BU7UcJ@!obHnCuO9>05yo0GaJExGP99%+-_wX?*0M#<*};VH6kKm(;ZL>$EwicHLZbW-7#@*v z+=0@5h%C=9X|wg$^PtMOwiT|?s#JDG)j||3_`U||z)9&*6qP`NAUNJb{r^^&Sot>_VxOio-zYI<{Ti1E(GlGw_>&$uKX z!2`Q+3#Gv;inkPj~7 z+Ws<1CFW5A6+_rBjM~Q2l-Wz-b~T4=){yY};R)CGV(8HYTvv&RIPoA_EA-FK>35%r z#t*z7LLPr;JEl&iH(qy5c=h-DxlWevVF_3}#-%-bs&*Y#U|C^T$ zkR4lcRPf0uySOc6^2Uv{_VDe(w~Y+x`bMw{e60ln?r1e#MSGK=cs^yZ?ZAVRiJ)W% z>L)nlje<4eq$ny64*v9XH%3s|k}zSO`N&jAg2xH#m>$b@ZymWqahNWioY(NeC)$5B zxb{W>kVv$?06HgNrM5N7Se-Pi%~9{rM-g>fXxU(i=PlhF@t|OY8p7(73260t$AoXO zYtIiMkp>FrjU2&jK!V~0Nxj-|vg&Xzve~Sc+NPU*B|Y(gUEws0;36fCU_SKEAvw$z z!`=e1;v26Vyc!L7%RO2n7+<3^JXYx$Y0T+Pl-`LS@5?VNg4Vp&L}UBx?KJtbe)^WQ zBXYg8fV_K^Cd3}Adc|2NgZzECoQtspeMIv{hGo1>xMOX3ThM9ssdog7ckB(nE4csLM z{)(KtxM1CIXJdj~oiG$@FeD#xDC4&g^5lS*eNFT3tY>i;KA`|po;??!?TTufr7WTq(^trePHi;@$hhl;}$ z+ehWB!eD}!=VNBGo*%Flh2b=Y|0k#;9NzL=sJianzKE)wFUotUxTi`$z`qmGo#O<` z+M(9;5gg9@JOGjk`n{F&7vTEw=Zyj*X`z>XO@pe)3njmt{j)*EPMRtD{tLXpf^@Ek z3tJ{brN|4JKi)tG-7_}0bO*+g z9I;qX76t875klIY(0_E^lU++E(C?FP4DEVz%+3p@QDWV8h7+)&HjZUxm2U9j%r=yT zZ|^C+f&y7@Q-Zw#0Oflur#8K(DW5{%zBD;gj?h*RB%sU~M*MBe;SJ+b&*M1M?=LLo zQKe&hGfThjRyK6w5?5Ks`9G=w>x&B`_-=BmKeSN&UxZ02r0xIgLEf%s`nK9R?`Z06 z9kpf!;+r%6d{wN;4@tzNO$8QkEoyX?`>uYP>RSXT$H%ZifJ6_5KerA5DsK4wMjDlr zC3{5nue3D{-h&gV;ZjHgxF>WDx;19!`F$&JZ(GP=v;|m~tGU)Op;Qu|9MEE89Pi!c zFZc#(-2qVP_&wQ|F0MsbbBgF=SgUdkdl7HZr$hs77Nt%1Yi1FOvntJ!Pc^SS!u!T5M}Cp^Ly%|Sg>d? z|8ROzc&3+rrNsB8-OHmN7*KMNMz&toIeSE>1AXl-A`@{xW?%ocNjtqO8Gx{v!x~N@ zThzd|^u}wO(x=H0$o32$U8ytB+8vX!{R6GF)@nBHWPn~eao&8i8&7pUD;7Mrk50Xo z8}El()ju`Dd%#|h=vJw5LpUNd)i?vlQ0N!4$v(&*z8eYdVJ_gC6Y?-0~ zVa*@oscc~@B--klU5iMxbannr5!Lch?f0{ei#jfW`uZqAxJ+o=VPTKKB;-;uIfyff z%*H@0A+FrR+k$GmxH1~2<_oeGu}QZV3l|;#IYot*vO#yN<6oy>^t`&D(<>2SmD@%; znh_?+Yd1Ni?Le2c%yXVw`rFP3tjj(**q;h>_wM)Nii*84X6 zP^|nN_N9g6PAPr4xz*gpCAwoMi!dbRh}nf_^qLW@#^H!=Fwj#Ouos;@+E--x3)` zF~DL%qVO)KThu>!maN6fdQZhMJ#7@s(pfJs=f;_#~t~xhb?z@@8_0B z*Iix5z}k#h=j>-hCw$i)Qe7p1xS6KwDQ`7Z@J`FmGJYn9E2LjFY*36lWe2ZXot$6^ zWctN!=;DFIH|C>K+#uHW-{b*Zuyx}yq`7j>Yw(--RDWZq97 z-;mg<$qC&L8C2tD87M{Le4d-H*$Sb>o^Wu8Yi208nzXY)ex#>H*L;M#jBNaNRrX(7 zV0Z1XaO@Yu6%uy;8BXP_U^e9!X?mDaD(@kd5FRtf%# z=7}REgE!jKeQQG3`SL=+Z)v?P&HZtMltTV=;laY|-sWGr!t|DKOxF3?(&YIk4<`=ja$R3qjg$hq1!`-(zCWccDteDumCkcaxa{5Gns&GQ0V(%`P zu9be=V`#^Cu{enc(30sZSe;G*y(gd7XHe}V6cG}Lvv`~qBO3SFCK0p*un%LNKZDu` z{ARQnP9FI_VJ_XAbDdums%>bC%oVH#BK(ruBT}^nkrI=iZ4%p3h}_!^P-FiNezd$=M0-2i$` ze=x`Jq{rFL6K8Ti)L0?=%4~a)g-!o?nYRF4&jzH&r(!{Ze15xFx-8CN|H(l zn&M2swKl!bp<2wHyz_hu+!+%yFWhJ{@mR!4uw>Y9jGZK2Ku>Vj0Dj=|J)CYpcY>rM$3mRt@tQS6 zm$Un@0(>5r6;SMq<9S;Qq0-r3NM|5n2yC7?;^FRz*%ip5S^n}WwDjyHB0e5Skw!3c zQ}aOSsjow7sC4Q^Gmw3th}jM`Rq5uQQvH7LWvYF~s36PuI{`D5N>Nj@!L`=4In$`% z^GoPnfqer7E=o2lLXdC5UCroKOo(|MldLFCQX!$T0y1Y<54sUsMEDTjue%cX3 zcqL`=f3WaT2{@+AHpwQYXNI{HW5GzG(e|()@n2Efb+he(!#3GHdroPU10R6Kk+sfe z`?=AQ(c*|Q{8txknJr-kEW<3n9i1m}^AI>Kmk*`kI!A{BsWOI-r6eFJOzhx;Tac5Z zZY-p0?b&Vm6qSh+-~-3^q_S|-2EV3xkE!b20$`Ru{E&s*`6e@@v29x8x@%W$B8m}N4CCn#b@&wTw3U;hJ0*uX(xTVAewTW9f1vaMh}y4OunfvWc_&Fje02AZ05VjF&D>Z=&Ln$_Nb zQL3>_Q1dZaj-?Siqx)k7C3q}HpcOWE{rT8VB(jc`%O zYlj#A1E=(%+|*h2+hakj9qe$qtl9LP&_=7Y2lE)Wes&$;{ghqlS93;Em|T&9rGhnZ zpky-z{sAHGO1tt@FLv&{k6L$&7%Cgh2N*leL}^3&O^Y>$tOpF@CL7LF4XlS%`S;^S zbgVawnx{};JIE%b)N35B4_FPK*9LvTzw)=cw)gVkuZ=slUSzxhQ##^lOvl!0-SK07 zhmd*tzOmsNZYWlj<>cXFaz|Rhg0Pi4@3GqCa0~pDnVAu6OMW+}l0m%Y$7eq)O5U9X z4rQNXF8+dX@d;!dS+ zrkK-5XZ(~^IV(*lXC!*WNB>T>YG$KEd{HkTjot1)(4kN z9xYy^y;2W`j3F#XA0{Cdqr)q1fSli?A;(p2eH$0D9w@iJs4Q3&qG)nP{23AhoykvZ zz*P9G^0 zS=r%7`ma%KOcq&TpB}0dbNZo3SERxFb51KATIrjtCXQqKn!*N=7ckyT$kg5lr{NyK z9MWOXaN9rH%~n>*2Z@2>R3J>1`SLa7l5S?oDF`#3+(OjG9H%`D_w_%2e~v*vyVmO7 zr2^JHD?WbO8uTsKw$B-aj*taD*V3DCwnc2WrGiE6yuLR3Yq2zk;J)roTjmu`VrEOP zX+FQo^+j=xj&7MFI}Pp8;t|UDcu6w|ro~%nW4Gx&gSK%K%A*UuaZ9#yAVv&g zN#Pp%M!A_Za`B_?ieY&$Jb-E)bKwQ7(4ZkSp`A9+8S)j?h%d%YNB_b9&!61@yK>Pp zov!q{%*`BaS(wq_hW50jlFlV8rOV8DrwN>pjc3N#-+!(awYV~B0K3Tf*Gp}D=vE+M zUGA2zM`36L9<;%S3AF4cc)v9Z`Z#FgkE!;cY6%Sb#DPh9uNcF7%x*q9Q(8;L(%6^J z-&Pfj?0}(;YCffc6VA)uSObEk$+!1tjgKO1d@$(9da4TiOsEk>fT(E>cxs0^e3oWVf8MwtvX@hJ0Tmv2{!=p?U99{?6mK+FHImku+n(;LAp{o(Q z2wYh-uYTsw*1*_P<=d7Y-|J$)I=-uZ07s0)D)U(ZBZ{imk~x!bDWeiGM9xlYj>onP z%CZm=cTGq6?${J@?=6B$0CAjx7}R zX&79lE@8Cl_Kf2LuNgnJqD)bzbta7M$ZI}HTv}H7)o*O6s7ts8&5CCrl8TZTy?Tf1v!yLFP$Xv}st9ei6?MH_ZnTy0v;o1@sUZkQbNr+z4nphO|LEBc&EEzek(>rBER!k$2TvoV2n zmlHFC+(nEA45y?7mZ-lg{nj6wx_E5L0MJ^&Z*rLUo10mqr4A10 zuO7Bh^FWlx5bO<#MO6n(6h@)&zO!y~{Af9@0Xqgln;+8O%S2@DXOL|B=py`b9M!r) zdX`HxH~=m3znRL*AYJB!+|D@y$-CL$F8Uo)YmCp>yXI|@SM#<+YW+K zhqdbhH_SI;3SdHF9~Ib$&}1#KU6li`nSMD|vZo^Fs(%JshLAD)T9J8GoN`-P^*loI zg(FqyEO%w8ijzn*vjqRNcCl1FUl}fJw_5FW6csXL^B=Ko(-bMBqqxTr-bw0}+2q9- zAc3uXv;7-J+g&?t1x1oJ1=jS2m1yS3OrOduB=-OdVm08h7lDRxBg=4;&MmFQ`K%78 zT1P6_hdNkg`YmVoZLK=?hN%RuC0-fl9)B!@#z`>X<(r!=4_KcVi_FZ7C;}ZNf`V&1 z^MMR|*@t5Q_oE(yDp>r5>(@DcpkJhmXd%ZUmYxh4zsIvLt0K0U1wqmBCiy!0&oHTg zSbv$;9e1GgUg$~98o*C9EKoM0G|TkKfLUtEq)0#aL=s@gjK{1kDZMq7=>2wq z>zZ`dL}cc}Su}~G*jrk%2!XU#Tc(uSQ=6Qn91S3Zh!oguAsWo{Qwn##^TjEhXra2a3)%2?39!6JoTkHs8vp1oN z6SynZqROZUNF2C8?d%^4RT4xA_X}OVmDImzB}s(^Upb?mVI-Bwz3SV5lal?$yba+3 zv$-$5o_8Q)9i1oxxqNl_Y)4I#^hpEhtnzIJeQ0geN(!O+wJtF!MJ*p2V=4o(uZDml zuH(eig_tBvE>+BjQBdE+K-nY8x3E8 zcDBUO(cIFqQTjmbaV{Tc_TSr|&aui@%P|W2%of?xmAgeTYM-d5Sg9Udme5C=eUJTj z-A9RfCmb&A3WwZ%wvQW0^)+;#L571Lmbzr$_oN^gD1|w!fa96Ct!@^LC{z36u5~l& zY69H#HYYVJD(OlV*}!NL)upuTg97^sDIPixNa0&=kSf{PjK`;XU7Q6?Y24z+`G1iCTE*Dext%L=>%}G5Wv?M`!-)mg>eyDo`<+l#5*@L@$?4@?P z=nTO(=G$!g&)i?Gev3F2k9+wX+|dS1fTw5Wq^cZ7v&A?0v4u7mOX{#jN(clybFB?) zH38}#X~`@N>@SrP92df%$DuuM>!EMEl=$D2Twfu(4-%=>NcL~d24;Z$L#B#b7 zs%qnh15=+?CLL&+1so&Dp&T(_!Hh&PM$^AHW zY(X6<%3>lrC$MKi6J=iV%;Cxq8q40a2Z>jOLYfc*E}E5lt-}R|Cfam&DV>onOn#k- z9mI{*TTkGD1!+y6wz8wVJ0&n^XfGEzc&?DWd9GG0>b!6wPfNA@oa&BGylq?`zi5w zR%>o1KT#X~>e-uR8v;Yp^sIxkZK0hp0w)QoKNNzJ=`2otL zOOI&XRu_V1zGb!!yCXcLDX3jDa@493GgBcB$kX_g<7hT9xUxm%Fb3}ORNT;no9eZz z@@{BS_|fg?+A=M>T5d)dQ(xwG=HVcJNMQ#l?+FO`Q5*Dk%Cvzq0p z6FH9;W>)wG2^pD?J1L_5jlA1lV&smeA4|iN^hU#H#g$8P76+`35AE3E%4}>fPmlG{ zhLW^VtrBKC1{d1%S#z@)U0KN#Vod&0j5yRktV$ygYH$06)WJis3&tQUuO801hi7&2 zF>^Zd0##8(M?u3yUWA-&P_npbR0qUY-eciL!-<$&X|sU$Bz%biXV<^|DFQyXQ2KSe z@@&S=?@mWXtdM&bv~Y$PW(Dow6Hc%fX_(Ex6u*?ZGVT%vO5q~1wWe#2j)W!sorqH1 zB-~$9jaJsH{XWM-B<}8WHcUme)_WqC#>y*3_9(sve{9nC4o4Hfs-EM5&gOZ#Qa?0) zweraFuC;V|Q5*ht-$k+2A;Zyn^x9NQRUAsj;@`?}_zhH>J!L05Y16P-&m1EknQWTv zPLag|E`Bu#?I$VfoUHiohQ_dr3eSDabm(TX;GKYc2M#V%H8fRZ)jbNNJ5&EI0Fcqe zpO*%Zda$E5cB5kaf%5v4Zi$1FYp`Iz9C#8p1!F?~{t;nr^Rf)QI3*#fbo)|4W8eHd z;Oe5f*^q{%Alt^+KNy7IJzQFnZ1pli>aXel6tbQQ)bEqDk)8JCONG?(L}s=Kr*Ull zO67V)JzwKCw+h7{_O}La8*Rn*$b}*D+o5GVy*l1fMV&yiA0w5=9@A}VsaX5La6N}g zrPCBm*8{xHwn^6{vH(fg_3=j~pd~89c5Rr0nsO44-QMDxqmh1uJEp=BuBg%H0}GXF zsK+JxQqXy6LkuRA{< zob}6pubLHdUjlvf95H3YerqVege?m1&9g!)OTM8FHVoov99%aU$X#}%6mw$7tsX2y zC0xE|+vJ2{8$_`J+=)D#J{`7eH-fNNQ4$|AE#-yeC_IXipUO4p$GXelI1jm>kSU-6 zDi$)hEq@MYk$1K^2^wAarXKfIULF-(&*pQv2H4tX_2A%1?*_hNoA8WIHjQGjx4Gh@ zE7*{a-ojEoy-^kv8Wi%i2Vn7Oz&KNuLl)Eo^eyCvyLYv(qDWbzP3o>k)4QQqA`YSC zK@NBXJl2jv0crw>Mc0-yat-}nnzJDPESVHM1;N!$!jpOSxP&zL9Qg(X5j*oSU<3@( z1X?DtX~cdB$mFj-Y0_zg*il6=)oBvX$Y9i_XIyrs617=3vsNG|7>v4mFPqc_5I5z} z<6R7R^k;h=8{*i0OMl9`{>d~GscQKcf++yJ*{-MrlP99E;6xvirpKrnVP8fz=?7So zUC_AAqPkzs^}Bj@V=RKOr~8JVZI!H>k@{;xcvFL<)>0mf{=D6m9GB$p3n{<1aV%t^ z$t9x@{<8RAgQ(tpcuo;A245F7e?yqo6wt?W^^Gm3ss4N{mXt|j9JD>KgKzErqKqRP z>Cxn6wzkTxs#VdQH!|}<^E`6jcZFEPt{t>5JSvvRQiE|5M?uCE%`ZuGGT!RVK220g zWQgM#Ae5-__XeY@#r# zls9Ek{oX+ff>}`S+ms%SsVH7l&1i{7tk(?E*2lB*vEw*@4V&sLO_^mpTVuC8d}!;1 zQ7Edr6>+^NB}FqnKX0PUO&t7cCgzfw)5}5~Z7N^nx^Dgkf)RV^f>*&n{2_L;Ikqp- zjfMe%!(=m_M{R=RY}WdbHStTvBc#y>6ZHFaQ|2I8Wd_YZ=fz&-ZFn`{?QyZLh(CfW zQcF!CM$XvrRHil}*$kI5TFr}9L0eHlr80PeHdr*{9$zZKn_k=&SbK9-vcwE-4paWp zO(R%dhx?Yny!JUi+T@vcG9!)|&fA%io@ED{K)SaB5f%F@#EZH_2NfY{dR;AraJe=y zsoK^p5ZKIPjx0c#VHw%#d8->gQ7X_%*LLZl-)8 z34Q*>oA=da}7CDt)ptl4Df5KC9pCgLgbq6fuPq|E$&REJlcIw=0nB{ut&UY}& z$VBLwz=As~fp7}h6o7p983g{ZG61B{F; z%m)8N8SBq}c@Q+(1)Mu8)L_C&Q|Vyr%P@~Z+N^~ScaCeSh#~*X6TMoqV{bxQhs) zgl#Fqot29<(+4hg!>r{Z*XRZ$Cf80!9_7rgeHh!*dkRNIP$;6!o`Ce#KN9n%*DVIu z4e|;LajZXQ`r$6np3juMd0;4&Mr-&4T`Q(h3TQ?1 zGlTdy^(|nj)r}-^ zybK0`(Mj0qKlbSS%oXgb*ke1>|0R@Fj2Smw z8<3?0n9$ZV{R0AWg@_}w97Y)ee_|Eo1FH<&_5gr-6QZ5j>9oB+xnUXUWDNXmnZI%I zBiXryO9fGulpG0Q3!p(c@|L0+H!u|fL)^e!C04>4qqC7qPExhA zE5_oNl0bF82fHB9byg&&VTqY7pUs(pMCGwYmb?(I&k%$2pAzFRN51x}3>b@xmsRaj z2!X>EGI5#eyj76(JG2A%Ph0XK6ot?FE1pwkH7cvyz#HD+OY?9wp}W+ zdD@#A$!SO_xdR^t``RpT_MgM*0+%`MP=<7PCaI|@FIm_ka;oC6;=o%)$E2GJjMsK2BZS5uOkeky7ZfJmL}QVsJL+EuP75h61A zs|ARI6zXpj+);R*gLSs43X|X06kPlZW_K%Cs=(^?^Wi0A5Emt2m`3U=-Fn8PVP;AD zQIN>j)t4j7dP=Wfk<}y-Kpo8Nw&_U(x6w3>+l+7OA=A&Bo@0_vpuw}zsdEMlH&`<5DbM8C#Us#>M8|MKh*_#2GN4uJ@d!=*&$;usX zfp@yGV&Y&k`aHX&-Go~W6ZvQ*MX?9+W=WZxI?2lN@YeApmtLWI(1SBsIq#`-2F?kQ zF7kL^h`j2DBj>q&I<`mDdGGNRr1kf8L+Mj#uz5Z;+vEbxF>pjMGt;5-Mrgq?u~%z8 z=rrYh4-%8Z=Lu>AV>i*#xY<`Rda183sgF~&mVyF2llXbQ0@W8EPk}RU@d=KzB!*jM zB3HCT(P<+pyNbiPyW7djl6jA@MMc88ZJ>6WRTkX@RvIg~*F>Eu;qMJX>hIZq>xbW^ zHSMd~96XxQXR$UweB`=8%o+{f?ece`!S@>!XTK@S*m*mlX!?c<^7k%pi+{@kXjZ_E zn!(G;b1;vxF3wm-V{#gkA zjlW`h8BO*noVB|3G7`Jbv-cx@9GYRzy^Eg2Y|-T9(V5XxjZ@UVyjN8UIF&h;<7tm%?MbHh6+NV>z=zVF~XI~_u#WJh8>rJ(@g|;{O;e) zP=&Hl7bCLhTh?w;ZkIXSPVA_wfiYqT?Jt~VoqzIP!oc6|e<@#CZmii28QDI&?}&YP z`=iP8VMT^^ASefIsQT>_zMbSVX89PwfO;JO{z{@FUB_4Mbb5MMfj z_wTeAzC+rl_cgJUpy{`^MACpPC6rD)L+Bt?CI3>b&FQFoqz@sHqx4Q5SB! zmb{<9vV50g`v^8Q0DzvE?0sx#FwdZYbvVxI=g_(Z+SxF(?fNa)x~qwht4hoGw4 zIo%Dy5#uMUkn*v^xf6}T#>;{0byTpZOyYkM6tC%Ky@7`dzJFZ#jK!7EV?W;#!tx~D z$)^sqitad62EcnVUdQi%J(sT0ux1(lR&Sw1TD$)goQ&+=iFNi`jliTC38R<)8X+d$*bsi+lM?(OQ0Z}8(hE^ zt$XP|)Rgv(+-UK8Gu;*;R+qPpbs_lskVN+M_^l^$cUGK9IFjKsMCkLT_O7itKd*eY z_v!m_T@GgJ_T-45e|FJ}T}UndrP675#%U+*z3v?n@el>})~FZvD+Q9!cX zX9d_7&;0ek|43be6MfXQKQ%4WL@=C>m>duJ@qVt2Y#_qI#F&|ZfCUFtv=p>;gO)z* zJDbUTlYfF>dFBu>g#LO9^nAUWAkoAdGufWj;={$llbm9wH>8Y-y6PoesWO!!P+>fA zJb92sD)5Gy5__zpHwxQcOO%NJ;L43!MP|?UAY^t1cH-~sE03tYqYs>W? zx$s_L;YXP7t7?H6j~PXR+=RBu?- zgkaUe`!*jeC+T)Ye-FyGPEMZ;U|_$f_nrw|yQvA9?qe4zpji?}mgToskgOMLI#_?6 zWGqz{j5-K=xvMsTEDEzl6^u!@Q()|>&RwKNV{gs3{>{cIA!VI9u?o+7lG4Jdqi1@Q zrm8|=yMg4Q)9$ux%tm9vIx7y^Pgzo-5V(&k=zd<5iE2VQBP^f^lPcaGJ!h6wspaaD zjFI>qQg6Y}bc*Y@sW*-5P4LN7;Sz3(?R&&gVn1qzO}=$>UQY<;M|n)gO?$5xy*M!$_&Rqn_F*$Z#ilb8tNI2^Rl?#iS zPX?EUlNnV9X{P7zlDR$aR08U^WEaIxAGL-}-rKou6L$B*`k$i4N7N+idEtXfG1=f5 z;-3Cviazb^x4V@&5}s0I&rkDMiB*6uP}sHBP#?6wx{ zbm1N&yTRR(o<$SjP;h5L`_jhFfk64w>ZZd08<1Fj63^Y|5?d}@b@E)$tR316wz$vX zb?JwRI*EtN>w)UW&yQan_@lg%7nQB=-?SUEww3ZJ{6DHVbmu^5UZ0K`oPpr?E_8=) zn6mDcteag*vSxjQGr}Xx^E%&=R<|v(Jis{ByQ?1AnJ+q@Y4PT`EN)DeZQXBni;WiT zxJBc+GJg6ADq~;T(Nj=*GAC}3f6TsE%#^x<1wS!0pMUUhzU>gyju~q*Z(ai2zaJg{ z&??v+8gX1Irx95~vvH#%Am~p09MadLrf4 zBzQPIl2rBN$BjZrASBpy)G|5}t##M=W+q14)$$4wsb0CaVYgOfb|atC5{MXZD2>Of z(R+1`4;oj==6v`B?Gz~Ph8+M0eO)x`5w6&$tBm>e%rni_yR-Ql#qX~wVq(6SKmCts z4KZSE5SJ-F@QAT;JtCp8_xoo8@*-yj^jYx6i?N_jy=9Txe@*l!0&Dp1ZkHQdxo2xR z>YzxMgoW2rgl@E_iYTqr83zpX=AO~7NVJe#*6eXD>cXG#*Be!Yvn21SX&6H>U5AOj zj+{(<>t#d2)#F9O{6_JgG}W$_r<`Ad{wDkEWZbV%d3Y6oeN3)*rs0;UH&cz0%17o zYDeeiEw-+~e`4f4(D=ItyQkX;Gk3aJ=5|Gepk{p@k7jQ{E9!w{K$lJs*^OxFK13vunG zmWyc93x8S`Q6hVX*53z2vDE9qPpg-VLPggppdeuD9RA>dtZ#;!q4qN@Iko=BMnI9lIPCq{lH3|w;_reO-_ZDs84eQP*`fekI1E5V_-*;lnGgOU z>(|+|*LMMLdjA|J#CBnqYCuNn)oi$$x4)D%LS%razSD!BHrHE1YJ>RoXH1ttB3(%S zSt=rQ&eEC8VCcvOXdk*QfzA&1$gX*G@WzewP1X5NF_9y-1&ABemvtOaEU#gW)($hE zlDh6XD0pA*ewtr?^yN{betrtz;)xM4Dg1;}LlK^D`YlFfC5hZ>Xx3_`bw}pHZ);hS&_8TdRjH^Zb4p=23?pZnU`uoP7O;H5dgx%$inFNDHul>WVCDW z;HC3xX<+?`|7e}1t;ciXJ+iOiL6nl$xKB-UGCad)-J0IEU|8!Dx;poWVsi*{jajqK zkwe_+7Py&fI`)TetAqXL;IC_RuBpk~g|TIuuy6FesAtEdZ;rrg6>_C&Re`3=YUi(t zx);Mcd%w(T9-0%Ki?zU|MMOj@2`Zt9Vt6q+Zjj4vam(UPP3$A64f6>|KC((F4m0>P z_fr7JcwDKLhArcoXA^&p2#9>_QCJRXiH!w0o51gh4+~)&nip31R+_Xq_qZGFS$$G( zZ@CP?Ns`YP>h)YSHwIOW=qqxjm3H=Vl7G|78O-mVEOAAB8Z%GBWaF+=*18+a&h>>6 zXEv`;jV~XK{W*FA;>?JL=Yv49qc%A>E1(^L7&bXe#4V$5aNlf!KE~#~+HV=_dPT5A zuA$9V;6v<_I+;cP&2HgL>}*D8qi~|{j}U?S_;6WSO)Rj9i2LLq?@f@!n;|C_uqoq3 z@k8?d)Rg{+LHp!_(!zyh*Axs+C@LelTf%%v03h;4u^O%*BC>Dgw6RiWKBf1(reZWH zAZ*x&origFu@~6|8IW9GAo<%Z+HAIBz=x3sT>Ff%@UBGbaKz_~C>-}8-iCvj!vk6LU+}odXkrUf8;XS_|+~ZaCtPk4XA7G7!PVnZ2K2`uM_Nq9P){ zpLH*`UIGK>>aE>_%0PzE4XS=yEiq#{su*V&nSWQu(&& z!-*;&Orq}kj*)GRf#UBt?3Pd||B&1q1@g~t*#9jBnX(kSfG`~%T2r;J`6MN;IdJ09 zZQ%VSS_UErICk;Eqv^VTu5X@pN#$#W%nYgOlr&Vnr?Y3dSZrYg3E`K2`}R%16(KYT z#hEKulniJB<@-MzK>MX(F*lglXv?eJO7#UZD+321JhAn#iy~bIhU64g99nl3E9}llzB!k^Ai%U5V(god)#%#2bI@WjE%OU*h0<&ONJYvuP7TkzoS?hq`vySuyGDgNC(Jw2;u zrq_IW@2yv#YTdi4?yaAkbM`*_oD!a0bbzClqB_~8C$xvk7b0$X|HTdGi~`AtevAf-sEz6NhHyh+ClLuF9ji!PoD{*%mtrs7EK19@Pm9d75iX&2 z#)`3GW<*dfZHi=uaT;`<3~Q&#{8=UsJ#SlsqjtP@Bs3k27&3pnLJD4<>v6hyiD;N& z0(otq96Xt|xN$S)2cKvIGPVT8$s>KSB}KTb>+eCA^4-n`bcVOCRDHnMG~knlALu zlubvuWbP`2@7&c{%r%(ca43~jr;*)6Dc%NN+V^h{Ki*Mak|6gHaaA}nI}G+l)!DAR zzf4kZ|BE*8bC!`%u5B)1FhMtjD^~k@eu;3eze7N`q2BM7(wBiuFd#&jxu#SAptf{;Pj-j5Tk7Z|8^T(d7sl+HdO)gew|Xsi_l)kg zT3Ege9*V%CaAYof{}F{&oNDCf45Qs_oHR34ay4y4jkO)m?80Ktay9+SimhrZN#+Sz z!7kbg0k+08tpUsWCbWeG0m8vFHiVL`vvn6O;h7Z6?W58D<8aO!Ct=bc7f*@LgUssw z+enT5h|HdK6nn6o73zj{p3HmW%z*^0=Pdq-dYc55N#*5_aIj^i{e!x@Gv=RFh`h{eJuR_<|uw{0t3(FcaN!?(MGl! zT?X310DtKxM%hmW?bSw$$vjrPC+L+WDQIsV+w?bBl5Td;$b5%~@iWmRmg2|$VDk>z zFG(R$e)kO8fMkBcAuRm#RtbKjySL{Yk z$;y|(Uvp^QP};7r#b9TB^RGgxj9&`(zYCk(bdA9yo^8iGKF<6+=1-EP<%AhiYyq2O zo~+Gt3U1jk@;#BSlt{4_U$3V5^uM8GlB%x|_|}eq23*ksIRo?7iSA+?%tR8+N$m+G=3+=w zlDOnSVruApH>TXaW_!zzX(zSHQM|4IX8sC#`cG8*>YZqs6GN+=|>{!K6pR>@n*AtX@xn-Uj8lMxie$p?hE$T+}0Ua9UZ~wSaahhHbv#) zyZ&s+ovBH-L6Ipp3L|OnA-0_jB!9^JU(iv#v4{7(KF|Ho3N0P}?sF@Me`?xGh^2bV z6YV%`qITq8s-_spU5=*he=1JdIcrAdxM3uB>QpA#moXO0i9zG2HJg|uz3Kk9`Fjl` z>mFaldxI?Orxjtq~e+|EamdG}^$}e zW2M;V`?T;laX3S)06v{dj_zJpg0hGes4VehPj6@piu9sLu@As@vY>6bi%zZvV+zov zICNWG`(L?O*&{5rVf87>7J3|$ywd=8YY^@zs`t*e5$cO*PCv_V1cD&1OUzVD{oZTvJ^z$My7emQK!boWH~ zS-ZrifzMxqK8^Zwd9~xu#wo-bM};lyndiEdQuY_$40h39*1$r^Q?ri8PLeH6k}s`@ zPtKZ3c-$~ut zEQ1Km=`YiwzZdQ?FfbJEa@MbIIfV6S)Qx;Yk zsce(2R=xp-d3pmFkoligQ6t)}_Ol&D%8WF6HvQ}NHSTvE)6hL>bs7DMJ3QR6V`-Xj zhd8<d+>mUJ!jeFhZNHEj2wMYBrW(VsnuJ z>m=fM8NN4FIT$9l)lVxJ(7S?I?sUl>+2?7HJvwCgrJkrj_VnY0-`%@zi8?cILEITB z8QBG^8j%P`o^`Q`E4#e~)cFUd?~1Tf^i~s}oJE;bHVT;Xe%+vz$b7-2CuPpV7SOe` z^M?GOJU87775Fr=+#CFa)|Kk678jx)ZyM83{D$OIrcJZ<`=B)7sq3oZdPZd6jHoF2 zIe*y0+_{|vBWoIq_pp?zv>xI;;oVMP^-X{NETgb>F7MmZ4uo~`I_brJr)YKgBt-}x ztvF8ltShUyk3YJJr=jX+S}({$R!HTWe-BVxQf_2PJ6qTVwrr+ZPG;Q5528bsdlJn& zS;`BBW#P-*QqY!3AD!!LiPRPB=o_4vrYiIrIji1 zB_JZ{wg5Xf>DwO}YhDbzS|p|#GRG$)xkDEQqOU)V7-|g*Fr36&?NoV}M@#Tq&n#Pv7Hf=K?(AC5Vl2rUsPCqG)ctnB3|~huG66A-32Gf+Le63{#+oMkM)>= zEg@f+Lhv@bNnhwHt6-P3334X};1C*%Y23d)TEL>o3KU8%g|-ah`Z-pr!m=D+Qzdta zQ)Zni8hGopO7F2RomtFY8E7Z+!1WwH%m|V5eKQGcf*bEk2jE`x0W;KJD=GS#3e)%B})D);O(lX%6y(Zpr@&tR2G8M-{e zxig)0L1*85x*FOX2^f=K@01l7i&~UmpMfzXwdvKuF?Q2e8gQtiI5kq*jl<)0w!1k~ zKE4mTJ@2iPo3UORiCOZ7vPHQv($8dAT5NyBZYq|taYZQw^_hxdIiP3gD^jh4-_O~) ze5v)sri-hzTm|AjNfeTHwusvP^fb}w&l;~m>b1Q*l*3l#UOZSMeN`h!XCvc}z2_(E zDWjfM6?Rs3Gew-nJX0P?6jLn?1}7XZ)`vzo_|?>&NN(8yJhV|8VV}^(!Z(DrF0P6< z$2g-6(Z>WnNu0a8PF;u+pXc?=TlcD(qKbQTw1l(rx(3-lOY5d}{O+ADcfy188~?%< z;A~JfKJCaY2tgO+ai~^FsvJukAG_~t96>Me)m$3jcS?Tv>e+253Ka+P3(dmS(7juE zS;pqb-F~Y0hI(7GyFS>xZ~S&|B-afi>1#V^$MK~q?*|mp9r+wc|mDNYo~}=&YDv$YYoFyt5o!& z7|CQ76F{|iO*4ee2&e9$Mdw~mB{9n(9?!HNYXsU&_^)#or1O7C zhcsW>u>XUMbHh>^oL<=oz!Yq&yizB?kqB@o0BUE#`v=$m3+F+I0tYL4DF*ir4c!6< zU@d5v6YHH>fqQHrQZpxRjyHMCsHy&g!T*0c=*s7dHn1`T)#eSL^&8NV$5 z3!1Ju_}2bS#xXX|-6SA+G+isE%9-C_tOsLr_G;(uDvWYvD!johE@?fK!q=Gz6s5{A zVB8H&i|>Vd+41=-EY$R2%iyQ!vGM4OP;hiZIs*B}&DGOto~!y6tRH{26lpCL1pi?j zq6#8C7>A8O&my89RX`-dk#3u(>k&4|*7Gi*i!&T@zq_NY6Ccb!3ee62Cz3V%wGitTi6`DFnkn@aGAX{V@=5yNaetxNU zwp2sSu&y2e>}VZf06N~oCEtP>rK~tZ?AN zL(W!ycN7U3|3|7~vDJ+2vLBWcIKvh=QqZUD&`lD$_B89u%1$|91=8IQPfnZQ~v>W(tnCkOk6$S0ch@T_|S=cbD1B z)ifO=bHIS^#f6Db)@)E=Pmud9gkWh@y}~rc@i&ZU2zIsk4q|Nh=MGR9(7Ql6SjO6w zlaj%*cLN~{3QwN$$&L#*IviZ(DN7MxD0&8MJ&#`^F!3!*8CtcKDKE-TAniSgFmxNA zqu**uRV$p6#kT1h;L$!D?t317l+BifX5ZCW0vpyu6^&K z7#Dy35{o3CnCcnCIj7v=Gzx9##LeWl%F^X32l7Ru z3TD4F=9wVR!QIv2mvd(xpK06wYzKBGCh4J?>Tog+_a-=9(rKaN5DZO z@^O`rkdr+X5$`QtQ@)(G5-gQcbI0^^KCm3d3kR}ukW>ER6(#Q!#Iv4p!W@pWC-VT- z#i{WEGBlFsJ_4nZAAADiIpzlx(rTh1V~_}o#Y#OU4$*foLiokyd>uzn57Bb+*`AQ$ zQ@6+Zypngh-CWvO+roP#DsQM3F3y->j*6dnx4qldaQnT~+l zD$T^)PS>+^!qP2S`(GgqioJZ5ao(@UQ*P&mg&L42aeS&+54^?{6D03XSl1tPV zO_x%REic$(7i(MQAq*MZK%ltVwl}9&CuW?m&mo1afoeP|BzmChP5H_e4ks@9TPrmn zljCBTeQK=ohojD~HNw~Js?f>W>OjGogVzo9VAb$Ar}vGNFl_noUD~R;?q+tW48*R`G$=7i;E4zp-IxDiR3oVmQ4(4o4% zOlCdQU(P-h_1GUFRbB6N_!*cuTeZG~p=H-%k9KRj97b1#L44R3RwsN#a!$=m&hQt; z5NWNm(v~i{HmTAB*DuqcyB|}qXX{Gie}Lq||1%_C?zN+wnD{fMUs>OExa5tTQwd7? zeOZ+>Wz)Yu!5jKS;@epfb3DK4!98>k20W)%k?27FPaBs%Ww2$Z&@=)vU5kg(G{1X% zMiBeT9KQ5BlVj#1ljp~nnU#l5CL*)0~O5rqkFUbvek^E%p&-nj3F3A z^R6~TUp2PL93hOR^labLYx6N=sxg{m6O_``@Nm1jCFz|LcR_Hl${Sd^A7c4tASJ4q zS-Zqqfph3gTJbh}Pu1l$0ePdh)J(8^er{`QK@h@wG99;E zPR(h1h}p6D-f3U3A=JZ9OE?_=cS%nj`8VYuC{bFne!-bvR6CB#Zf1%ZK9`~iK1~6V zC#MmK1!3x$zCX0Pzgr&AJvvLu>&6tTF0L^xytz+BwSUO(bO!pX3D)g0aiV01QFULW zuo(56CX=k^Rt4*ag$|4@O=IyDH8S}BBsT8!+W&bIwVl3BG@y|(Kx>D?Y*gXL%}mk|H4`3Le@< zj9L)+2IwnV>TfFwfm4JEA@VYL=GpZ-;<}@uOp2@+>OIB+h+xz8CMZWA>UN0AM~Ty- zu;rL`;-ImD%(FjF6rVi(8@nQebNZP~08-Ztv3}krjmyRXR6Zd>!)8-|E^AWWVLDfT;Mf91WZ16Y$|HU$Twf4qsbtzM>jVM zZ82X$-VilLqiWLd26)8^fH~@aXYIx@QvAQi*t$@a+BEd^J3U!BgrlRRHhv6nj`VA| z9X7(H1IwARfBLPsW6*^(3J4Go&nSPVbG|^g-A$!N*eGa^ZCcYo5 zQTh_?e;uXU3A9);tF+VEUcIPf%GhaG!|P8RqB38-xx6|(Uez@a^=j?2$xIEih zcV>BWWjeu&AXlWv=)~OKA9`hyb$8sl`=Z`T0-n-*YWbrjc6(2fTV4xRXel>1s^2uyQOnrNf96H`dZl8B=M zj#G96_A^zafy~$?!Y89?#00#YP!i&`Cr~t>TH7;r-CPKsIx9&thSLi^BEhIqE43Sm z-V;AmNiMxSS*;aYoGtxMz&y>IVF+`cqACv)39r;fuum@0AFBGf@Z+V{?}q(M5MRLx zEoN<6MhBoj3}_{vb~2TGVz?@rnCjDAUxID$t6?Qge5`N#wZ?Y5u)LNH)zx^8F*_lX zd?QojDvyc&k8+^QV+30$rQytqwIQJkj@lczDm3&79tgUD{SEMl)df)hoRBf(04F0| z`b=x~Tw4DE-QNK!0i@uaFcid(WD|6JTFokk40ijbzzqhll?)mBb6hSEre%;6AgIuf*BE!TtY7omfmyAfv@th2#y(0MAq9 zNPrTOlb1>k{OQC&U<}6>h)y{&+&z<0wp0EYJwS(m7$Nhj96&iFjo%+A;7eP9P770+<<<#Q2nt+=fFBL!-Wa>hI)ByM-Wn1f?A0k8v3D$jeMmc~kp?c(WYV!L(bN-(QGvp%R&@NZ# zho9UisTl5uWl*R}DQuNtxf9t4M??<7#V{u5qCmG|Y7E>a@+~^^$_c~r#@jJ}BBq9@ zHl>ce)Eqx@2gN^@AQ$Z%&2{}*?v-!yQ9kg@A6*qa6S) zVm9^aHqu$kT4-TR=9cERSAi>ItX2A|^O%XPowKWEPqxdY`3_qFoH19Kfp1r878VDk zPs^|)Cfw?mFw?LIj=RhB*_skmQ<58R^fnMklkQqgWW5~nE}B8L?+%IkRJJtwZ2`Z> z^XIe`%K+DLuEV>=+@n9;I?eKVy;~VIN@nukpK`3{VkDI}NiqkfdmWM}Ce12u?kLi# zZ}oawAK7nUw}(6cNu|XRE$k~a*DPCv%jF8d_md&*wqP1CIUsT4pmsUs4m9zD?`;J& z-ml?+G?O%^FDrM*`^qic#UWnA8?DOFiGPJ?;bLRmjeJN+$w~CJa@|@taX9F-EdTV0B~E#`sUH^t?S@f(Z-irWBJV9X{fuHaH(FQc z<9=NBa0|DX<-Fr_Fj4}74%Gd~lY*KbS205XS%f)jl5hQv5%l@ODr4Rp}68d_&gQ+>)i>Ny?^osOGa(whwnm? zrV7@({jfQ^g2CjzQq$*{&2F(G>Jqm+dhOIh2JLf^9&+hlAZN_*2;jfuB z5t1|~_0-y-WBKlLW$k;@C7AU)?UJPB4s(`u-=K#=Q^qGG|Ml_K2JQ-eC`m`f^ZOYe z@3`cVOU%<|7ET=KU;md9fLh+H)5U>1KjRsq4_iykrtkWJC-KK7r85h-iyl4+dJ)tL5_O`&3z6V7+JcoWXY3I5ete#5X38LrMrnBt zuXVGx@9r)Jo_(zT+z=1v#ixFIRW4R3x}6=Rl3di|65GC{M(7l2kuJ3vLC4|d8@WMw zk6?l!5e)5~F){p#=LQE3*>*hY=fktsPXeKPk_+`pIe?+*!JmcwK|D_P;^my4oqyv$ z7ZDw&{GsDCUmRVvEvS(70-l67k_KHB6;gNPyz`hNjrj^=&!mE(8wbyf?Ld_rFQTU;bg2*uubne93To?0TUXJ6Bs5 z9rk-biS&Pd#OsocWWPS@S2SobVp`9jU(f;eaw1Q%UpR^{?#l%|)h(XzHzM7c{0ALe zAwnUO?)Yr$=prN6<~Y^dr6tR@`zu5usi(_nxa=eWx-j*Z#_#y=D&@>?iR>65C|>1W z$?O~r!ej7Xzx-5}QhukTDVK#kY<9t|vnJnD@lA-Lad$^(YIk}R)en4GzRW9uA?OPa zg)h5mh9au*WUfDQ4oDm>4bO!V6yXb9;-P~3U@!VMz@bBpiJIVGwRe$|lA1ryxC?!i zdqM&?jOZ!JJ@~^iVOdVbse@OnE$4oHM*TE;agz5w-#H8y+K5sF!aXZ01FMK~wpq6-Z!v@70h_YK)k?>FE$Le@+ z4y@;;=efMly?;)`JL$khC>R1|Xwv=UmR#Rnxj9OeWprkG<+O=ETlfOa$s>tul<-WR zAuVTI)ERfCC(v>ANHB^3-4Ua>At+$zavbSE7gjikYv<8(N99p?+GwB|ui8o}7_12X zHtac*=mBwyO`8x>$o1*{?lN!h#de+puun|ym^=@-$T+AjZv+#5@O(_M=>BfyDZ11R zcRmvdU0bF#7-o~n>ZI3e`?^QbCkB8JC=yFRV~(*&uFe)|EyL&C4-sJeFTBF_a5pmZqF;-{k#ED z@j@td&KGEFIp|L{^sw2n*E*Rk0bJ){kJ#!Ufa-#sL@VsO-J36I8{nMH7L3<4cv!#Ci9NX@ZFb_a&bPH8O{Tk5=UN zyw2CnOXVe&kYFYHt{TmCV`y{Uq%ITXpzqxi>@eVIo8j9&p4@uas+7(qdvR|r5-Vn| z1d{0Xa)Mh1;85`iKsS%uJ@if^yg+!@sI|oZTQK!YU8Tnm%E<=}_5+IT;$tqtXdG0M z25%I2C^Zx+DpoTaj=nb0P!jC#vu^j+cluN`rf9Db1|;tG@kOB8XJ{7m?k zxO;D)yl&K2Z8=QQ;vy+P5E~8;J|2V$ocmDJ3GLT24lG15v}{lcHk5H zSh#v7DIGD<7xwe!#p6g6tvK-lHu>D@!xvf$&bS z+~`J01cy(H&qZO!@^&d>L@@YG`{X#K!(`sxp_c|aNiywl z;fZM+?`9vJYP43z{+d&IvIz337p6;Finl=sOAGZ09mm#oH=P8$IjMgxH|>DsgLcEG zXRnY7_Gcw|s8?OQX+->p1zaQT##5~JzvlIE8)65x&;HAK{r?5Mpb1sETWNmNU&3H6 zYdj^?S1U_7z6Y|Jrm-{ZyCUBni5lj^8wf1uJJ(M~n9D#)xx)(pw)3U*j>(V7v}4u> z=7(|ni5=T5Y(YlTURX9A^x~Q%OcRipGyHnz9gW=Jn0{Yc>)U5ftT@j!yJEmKv+kO$ zy$r3mbi>)ZyK&@Y1z6gU%^f^lWZT*{WG<#X%K)1G<2GKe3&5vVz4G0TetIo@@+}Wn z0ZSiT+uF_N3wSLL!gXkD0=muLZ`lcS?5Dy`Rw6)F|4+Px?z-f%QzSIs(;{3Fu+_}UTNEfZ4+H|e{W{?STc(Uqj&_e=DC9|`wkGffH3Ff>fEz>b8%Cm*?`@PM@6 z5LHVB0d8X7w`yRii}z*=Nl+{}-$HC{I8Nn z#yXQK(@opxH0|KK9U(#3oBgiVX9B%G_1yb8?ix@0RAl8Iarf{1>4Aa_`pwhQ(+8>* za(zWUf<;3_+}=+UbThSO(wc}z8+jH0@I_rr!IzXf1ne|-Ag%${C*w&T zm~RD7k>f=ALI=9-3n{^oh9>=XP5QJafiC}J03Zhm(`42t^p6xlGRx%#sF{T z8=33+_P{TSyXH3wze0dH7nnkp$auKtAo88DGUPPm6X>zuuhHq^wDC}+!1T4SL&SY2 zjMrRSw{BOj$L9TJt>BVyj*4V7B|0RGYBM8xf~DmZ{_aaYmzL-K3n}sU4RlY;Sd;3i zF!)5wg%|SoG_rK=`|@Hn2sJc*%CDTPagr&2b=!Mh=d$d&r6C7q^5t*y`ezLjNzK-A zk=;a7cfEf{2^g&eXsoL2Atr*hLyOW~DDPi5@6oaFgziS#+^0PsD$_@) zfW-vosNi^~K~WzSW@0X++WhYY99-Hn+&Kv4?>Q$CXlWwUD$2UiHcs33Vl~M|HXQwE z{+Y|;0sUh#mX2++~ZHu|vytGnjzy++q>-wJPJ{GREbKi?oxo?p4{5lHR@k zt4Bw{Kp8=(IuPw2;Ri=?I)Uw3b~@PY-wBjoHUx@LKpn^khR_vu9>B6xr}Y*bU;pP7 z8aW2)z;w@226Xy&ubXFBu@3=U&FhgO^lvjS@oy*jy)dC3r#PlBym6R`-lh~GaWfe8 z)B$NEtc0a^9}zB9q_}mjtIYc)Ow0asE$t!TOmO7JCFt!xomD!Uwq=Nv{=Dgj^hG=R9Wez;Cy+;G zA!KyTUbFi!ol80LKDO%zl>w1<%z0*M?oUuloz1Gi3{lMn$S*6aif+bcByXV9gChjp z0>Q*&Tkd|dCI!LP&%*>qkdSw$=4AZHx@|uGCyyZj)X$@r4y4=JPB@b4aboU*xt?fS+H z)E`dXuM}5Qgns}21}d6(1Q=Na+!8%{lS_5)nuE=hS-X++epJD!=O@M+0qBO;gyQ%~OH$de}-uCay>4r-V?lmsa zH)q*evLXDa=PSScFW&+55SDtHpYGNt>#rJIG3o>NbbrGSeOk_$q4S}F72JRRZf4b} zV2j%_;@>0On3-}@94(MdPMdO9>`!a(7%tQ^M>O#Cri+pAH{<|%qy4Ul<;(}(x*7M5M@w(&tR>|;ig~>XbMat##ro*xv-DcMk?OPJ! z%)4fZLsd1ki+MkRUDPuYGN4N-xyxNR`0&aSrIa}5FkbER$gzM&L zQ2#aqX*7*HAT^aBwSA$BUbl(qg%doJcF5&bHwxqD`9R$Ec=D0zLZQNV9}%jnDfpsi z6Z2rn={AGk`o)sg&-eUYi5e}{C4qA?k4g1BH7ze>L`K+v^ahbvtvEhlm1N^E-NM-T zXuHv33=Pj+C1-a3Zx)Q6t;~A;WZ~u6e$h=Z%i`kG3Z;KWUNj@CeWS2p zI)fr&i{xpDG3l9(`T@il!fGQi{V1h<#lSjQ;=;han|vwUW!3?YBltnXX_!BkDPN0Ds};ld0v~?9?Zo+?lXy71P-xReC*Iy z{rmu^DInjpS`B%8BQ7qk0Jf1`2JN~$-W=Z@9?e2a$u5d}cyK$dW{kPa>PjBYP};V# zrCa!p*VwH_cQTLTTDwV0BS1h+X}AUb<9V|1@$vC3cf0L>b0q6wT~4Dvh#lMjg&rm> z-#A^Y*$CNtn@{PpTb5*YQv>$Lb9hmoE#I!J>~^nQPC|wU`7po9r-3CMmk*(g5s}3DX3Zw*Ms#()((YqV`;L9UN9n_w!XsC@7+4N zBn!nvx$s?u$>~-U7>vncjfFZhLgGyPLY;|JuB!AyVQKjEV9Eg%zsGB`>)c_&S-TLs zjB|QF3W0<@_%=A5_oZ9G)K_Wv?{0Qj2{FR9a(Pf`>lx~q&0pIBM7ahhh9#h4z|)9y zJ*SUlVDT;UdWko0oSh7BN3h(mPtLs$BPQB#pq`7tXy+!Dcp#S#$uvMIM*f1*1LVJU z^7AVJjWv#}XFx@f1|SK3%~`(Obal&Hln#I~AUjs`s`cgD!r#Bw7VU1w1*=Gcf`XjexRV%kMWE(>w%{`= zDn3Zw6g!oTm~I};S4VmoBhBia_QsIUH{c^_l)AK27rxMG*IM?fYu8=w4w&A;O-`o(cTgUQZYDzy|1cIB^`sQv_dt4#j3wl7(%m_hwm7J+SeN2tS zZg>(r2@ov%bR}OL%7{clb;_ljYg)H!D+&5*!IKeQFaQPmcDlc*qimmY=NCYAj$nFfpmldU}eoq)r*Nw3jN4PJ2+EqHS6_B!osU2K$>7I#et#IgY+InWx`=>`ybYLi@&lkY zUI8Y%WC1oBf{!Nwtt^Cvz4XyZTBmCmJ94;-O`a9^4~vS^zKiq-1#R_`qX!%9B;AnX zpd_0U1#z#Em^}h!q8O=^l5sq=Xw*M%|4* zqq-e+m}UC*{86>qTPb~yTIcSMio-y`N*ginv`WdT9tA2daJ4b(i}Fi%Fp`+e66J+j z@qFYjCdb(9YX_NXm-}b5+;zcwI-g2_PnO}InInJx{0j2!{0VDnW~RQg+GEb<$Z*1U zycmx+!l4DJr*$#xeJt)go&91l^*5)>C^oiyeOuFk>9wcASaBOv57ge!=*K+vq?>(b zHPghZTK2?2-nzX}jLYtEDAVi3p=Lc>16xnDoF#@T%S&59)NqFI8iXR`S$L%Rc!eQ|}F_G$WXY@@+Z|^%?TwL4brrxHpcH;*Em5TcM-K>xWjhgdCyY?8* zCvxX|laS0Wk@Q%F_;EEDjDN4_mZS?L_&4 zH@{VjaROkGKeDidOJnL8LB1*3uE=DG1C=>DzZfXSkE5X zsl+gVT}_uCkfG-0lG;L%VPWJ`+4>fn8}B_oLAmB$O1@sM6$TPMc;J0D6+bT4I0!>6s~c_!lT5My>-o`;Yi&R(05j1+tvHp-pA ze5R&iVkrW1vuD~Mtr7iXd&#tai)uCrMMOvZ=-my9p?CqIv&&a|OU8iN{zQaNGBf`E zFg{f6U2`}IK5h<-qgfJh!dox)9AcJdJ~!MFF0`pyrU^Jh2g`#~r|fS|S)1`&n6s8N zn+00$?;QcNx#tFCa-^pj9#LS`gE~i=gdrkChO`ik4sZE@FGxFH9D>* zfra?4dL>OEt`C%JW?ZqKIuc31o3gdF>T&ukKAa{HKUcjw*LdiaFPHIFLgRXzszur!(~%UD=&>=zwXMR* zDJQprF--8}Zdm`RJ94~CFK#C8SWT_R5XVm$iU2s|lCLDivWcUpPGk>A{fcQDDInxJw+pE_Z*NX6@FY-k+P|D+86Q4X2=dxRI`VVSD8vnNNwq8bKo{VR*!^k3m z&9;B+A4NvQhkdWLKsZ_^k(ZMDtYwA@i-chOOA)z-+oLxJR|Y$pUG_<;{>*H%|E0J5 zvq;=NIEC<#jsVBEyNJZ+Gg> z*1jxOf?*#yNVGm5+aKM%JtVGSvCM5AsCwtXMluWjhI~}v)^ZsogB*{c9rWGIOTFxe zdT0^LdTr$nWOQuI?5SrE=W)0F5(h+KDI`->UtjR+m%m!6*2R63B2;L2xar~zq{?{w z5$Bo=o7Byuk zxxx1tmINr%2TY>#g;$b-FY08jw2`$nR!>iw@lK=#o3(xs1dsX2LqO++gi;Va_`}Esan|_cYB^3osewiJSP$-qf-QKyRl#=>?qVg)Lkx zrGn`F_kdI*{x{}$T4*#WKR;2FS~u%+hUtC?t&}u_UGyu2KQ>9i*V75vfcLDS$^ z{KM9Q=qAz1{}b94|46evk^dd?nN^Zu3Z+J27X@R2$>TMWMdc>O1>PrC5Vd`C-&j6WuV`7uQLBFD;qCNFfl1J)W5)pXi)}l(- zPvG~;1@H(_(BcXiDY9}mDFH0{SeJRTQfF_gL&vvBV%3A)vSaZrJB?niO@ORW)f!?`MXit8^UYT@<-+9^TJW4pq- zWCW8lC+_X5r!n30HMA{5f0>#4Ja6 zlRXHyjL&~YQunWp#)(=%W8YB|&K`PZ&6nn`@I>;yBumQ3EL2_d0ybJSgW#)arbyN= z2P4KlFhPJq0r|t0G!(IWM@Y$$wL)6xdW_^#$<1Q8HgyeMbZ}&(x3iN?)oqM;8Qz<&LnqL;oM~e-^AaQMINKiCUXY#zPlB=e*3ZMD+k?5=jhdfGs2!i#iD`8&l`#_@oD?~ zSIS+uLCla?svJsK)?b=~Bx-O^lI`EyCuY7XR`Db>Ynjdd=$iqz8JX>0H~g9MPcuDv zGZY^}KXbukTw&(-Mghzh;kRzNb-+3vxZ{rglv}X>?C!a7{kXy+{H?XRczPVYwwh>e z=2u&YRhWMs8(dQ)eD?d4jWw8G`J6f54e{GKzYjzUJJYm^cyebPj3*RE)Lk5-DkJ$d zu|}hOUh(pQI@ZDg`{=C;9eL(~q==LO7Jy}mXHP~(RDA_$;<4U2B4kW(&NOFUQ z_BZYWyCoDFMpc9voPbdq4GEt)6hZq!&l0y?${|Tfp2qy#oW4;GHRto6(a~rWq6LQy zv2*w^ku3eQU*D`(TB4$f788>Ti)&cT43l}sJkebxB!ag~zHBpnh_YU(ifR*9jERXE zbXydKCuW{Hs9bbA$^~{Vuz*HdY=B$fMdoL1YS%lCRC~ui$;oQB8DhJ-_CD5X(Vv{S z&__2q@2f8@>CD%kLUob{s~-5I@%RJ-RN6S;m@WQx1Ux;x@kM$hfdaz`NB~bNB`v+J zzXz_dc|;>xsDD&BOxBnzHcONte2tUKmH44UCjxf$4ixP;6o7t`BHrLpMfxKvXx^!%V!*lkQKd)u zOS#@Fl<0bKOG@ROZ1lLKRL8^!ix$v4q3+Eb&+_4|s;U}7){(JXUAc`W|A@`}A@yW|C|Ie+4r(3Qu@xEbL-xMRH}Mh|FpOct5_pK&A{Z$)k+;oe zYc^1Z9PWDo z|D9aGyUhD=<~}>)Cu|n<`@>>=$eFu7qtkNd3ryBhQ~VI%x7OB`Nx%=+9(!3cd~2H{ zE6;ExupfESQM9$Srw;fmXJ3qZCtKgh?dwbApu2!Tjhus2iW#N{L7b&0D#cDik^Xp5 z5;a=%9RH2Ew~VTz>$Zd;1W0gq2|*JyxI+Sg-~@uZySoQ>cXxMpcMk6EZU=Yi;(4!i zk9)`0zrNA`Y7~c(U0c?gbM7@+S#|XcE@u?hA`%mOV+PSHsa5gyt_tE6FVB_Jfc?v! z;m{e_tL_Gwok6%d3Q$s1IpDO;!ArdA$oGCVNKRMj=GUJ#Ufq~``iSFxt4VQXp51cMkYZm8>oG>IKXPI%m zRGX~YdEJ-;owIXsT^{boze=Z9S5+mjx?#cjdOchpPUKi^G4?l17Ye+(yB*+P<;<`m z`T6~>H$RtX?bKYq9<<1iS=ib+7|c&E+wz2U#bL9r>2)!jDI%ZBm(rWcvoM-2AXyzr zwz`-$%4`3I3*H?8xguE%CrFr^(*d`5d45O|76v{5(`rg^XNEz~*=9@`@c9@G*CB%W z$(ffZtG#sdwC==UwIH#$(;OyYFAFVym5 z{&AbPj=3)enw&bppPaAJgkO^BY|CS!b%ACC9}I=W7=BQD=E$V=Qkv{v(018=2&Li9 zh0G0l;3Z68DMKFtNu6M24fRsytgqB`wx0HB0N}Yc1I|~TR`6QrgrQ(QQz?l|Vol}H z_<=3vY{XOYGT7tw$A|Bju5-Eh1{=HbdqnR)ZH|4@R3}sqXh&~^M1R%4xTW{GV=E|v z5H#0&HQLtrmleU2_uxs%oAZDVO4j0kI13c8zU9b3b=g|(w;JTs?m<@lAgk5rK>QAD;K^c}R*v|HBEv_&;6i|Ib(Z|Np1+D@RBlNKT2{ z^YgMN_8D*x=I7^^k51njep5>3zrK1=j>JFh{F#HCP{K2g(~iKhPz~Pq2aIBGyRhpI zxK#=K~uC?a-^w%=aie0 zkF5cgnYW9f#D0Pd_-|VOmK)-CdZ^~hoRw<(5!1EmLUS@MzP3n_DQ6Oirydh))ke|I zE_|ko5`MIfbEb&?(!+<(HYIFUJ00e6gd+`?wbqjjQAO=rE&(fTzJp6qg-KCq&9MS^ zeijLp)Yo)n<&-!6P^Mh*28|r|%Td;;fzBa(E!k}{E>P%VZRU(usc<5F zRI*&Mv>1o~xp0h7e_@r3;L)z@3tPB22;It7MoXjcOjJr=o3YXf?+nTowx1`Zodwjm-07LluRdqmi%48qpArrsi(dL}JC z96nJ)u%h~i|Dh>%v9O~1x1P$=V#M&_!W#P4aag>-J$TPq8}B;Z$rl=Ohv?5hVw}W@ zQY%-~nL5;gTH=DN4Sm(6^w;ZFvx!}kVX$y=%<$kJSmz_=g5Y;ulh4>$XuL|zVd{`C zHLevuefxWRQa1PIt1*eDDg|6PZ4DLlAM-5g#tVK6I7466%(p$ale|sSg5VCuy%Oc; zZ!1l98yjJS!%JASN`2_9PzUpwZjEjO0|NlWxxTwA^y9~8mzz_AuDeRi8~jgC15(Qk zk$pDa>Cl?JLo;vSTqqt3GqDac9=KtBYZ6)E>?xv?+5Fh9-z3h|VW%kE(S1M@kF~(j zEZFT4d9pxDz}1bI(E>CgcX`dW#%MmgFG~OGzPGQu@Z@;78Y;cemJhISd}5N*fQUi| zEiY{JC=-_c(!Y598NXn>R)@USHv8^TW@#q=v!jDsiqW>toI}X6TwU)&I8T35C(+KW zutT7)EE0;*=@`}nG1V#|mj_ESL^~i!n=4JZ4?`R*apUsgF~+2`BPaxKh6D#g(Jnb; zfiT9GP~9ZXl_vhs!N}0)zDZD7+nQ)=#O19JPxvv3kF>1ko+w1^jKJ+EW^INz zycgB#kWnFe3c_&rK=L+>mwUC=4%$L`c`S*=tgG!A_7vwY85xC4eHs4PmB-@YOX<=J z$U;N}3vvJ(zny~j1x_hZi7HkUh&2Nu>0vG}$0}3qIpU6wO-;?rI4)%0Bj4RIT=b&u z+8_#%3T00`JzO26H#!14Z)D4>50YsifGz^9qfV$d5zfT-IvklEb}^g6HetxT{7bBO zdM{(fcyMfttzB|#fZsvIUnqNHvOJyxl~BO+SSe2`*(={5+j^-`p`7TI3u9D_)SKE) z4FZT0mY0|3s}1o^P%BTzh6Gilb`L|A);Hq3^0 zPKMVRqa!3tYspH)67N3QgV;=MT!Nrm)kt2^Kym6hJ3j7Mq-cxF+|$6QoAs2>reFf0 zx?ui=YVB|7%3;O4UW%j3?z?=Z;*S=lKx$A8UZ06g40)&^R*SLJdlb^wwbOds$I>jI z;*k6~_X35xRMhf}YpT-Xt4Qr~yaZFFuQS+-)-_uEA@JIMA66h9+6MI0XF?^?~(EZ#fJ7ha>O z&4oHzuhcz@t;geP@xx7Zio0f>yyIXHzE zXBJ3_{r3a`o|czf|9sB}_R2scf-9o0E*7XYT51S37b5bE8+*U$7Ejz6+e$LrIO`ei zT>_TkB&s`>w>cjEArhAhhZMgXV)n$M8i{g)@zYMncwY_TFUa0@3=^> z?qHp^-Wj6nEI8E?xj}J@r<;@&iDy_p8!|DA;c4yeW5S+tW?VTTg_L#w$|nGdyC51>oU>PBgYOg?(73_dCBv!jrm&J2z`4> zwn@D3;J`qJQ+3|mT|yfq5+Scwwl|boGqNEYI9-!9Zdi+WSN#hAHo?^No|3|5zwT-&rr zf!{b;yl?|IuzZX5CDU|S&K@iWf25>{uWjebR>;VfGl5fYzaEDJYr03?AtL|c`>JzN z5M^*IA>@Q!9!m02Cur*32dV(gi{(GA{?|HD=?D6X$&N`s(*>g!z6HdF$2!B68xGaz zMJL4BCE;2K%f9YJikp;s$+`^M9(5!orcymu<5zDm&F*66iZ`NjJD_#uR2p?+eO^M) z8{v15g_Ca}Dy2ZSGe5w0=b<9Bq;U$5CIa~dEWHnLL&5%B+BWvE(lm9e3s|#l3`Bh^ zg@26g_f2>o#k@X$`2C6cAtZRa2i+M%HHjxcLjcrfRNhcCF&yA+oti>vkM@nUxxs{xDFG!?Udv9-|9q^_^mv+H+wEe$vH&Cd~!%DB#-bK`Rq zjyE6t6dREjZ==6hwCe(!77X-0;A6LGuf{86=&eZ^I28#mRfPsT3QY$Zh7pBs`>t>3 z-RK$YolW$cIPL6U8_g8u_O^9;!!SCIcZh0G(w$vEz!ESuh`)5koL`T{osgP z_S{jS+ESv`mWIJ{!o+S(dHt&U*kM3V!+Cl9!Yp+LB|Ts!N3_yBk?q3v!vld7AOWy7 z7;-%q78YWaAcp>vY*k~m-t)~8&543!pR@jvS)m0`0}YnvQ8Th>`-H#d=)z@+ zH55-iA`YI6T%#LQy}2#{x6`QJY)BOcz#}G6!UZ zLKD;a4F6_4k>-N>Z5L|7lJ4rjr!Qj<9GDZ%%P^)!_rub&_{^$zYwGggFyW=4^jqPF z$rc9wA~5!VXgch|%?RWyo#>~FL4FEo7M7Wcw>!{zDYnA71h?aGDf2SLkmnZ9*`3q4 zOfi~e=jh~b;jY%(B%Y|mh4*F(oi~WpBk{U6Q;NQec$_a)slNkhQ^10SWWM{evuYc`*xZ_FTk%l~gEkH??<$Sj6J&czunrI|PM0f$pO=Sb0?gEV zo*Dmv0je89_JFQFKaw%TEIX4Ur!av2)gI4)1nA#yMw=$bd?;^d_WN+0p-DYz+Ay`2 z@r#cyH?OC_=VUb9k6>K7epte6^Z&0TFV6o&@_KSS!>y;*@4aJq4*i1FkBNa%Vg8KW zllJVJCy@lGk_KBEt063{tU7ypeO2nsD^D-!6JPo;j!#aU_DMjl(`)XJq0>jJdhbvG zx)GmAKT#uIvXhZew$Nun^#0$;<5A}}(?3^62r%An+2wCUfMJ|KY1(CyPp7wNzy55C zF^Z7L8?{c6>o7mbok0w5yY`Ko%x4e|);0ZjtRx>a>l1S0P zXs0RSMEWVWu5gUpx)UPIPq%G8jlVcEgN1$E#SnkfV_^OM)@whji|B2%p|5&Yu< zpafXmsuQhrgrifQxWKLL0f|%jXf8JdTn=tyF@w<^ABuS&eC8ebh&W&SWdarFNwt@j)Rx4{cm)>r0m#ADz6l`WI82L`xeWe zub3LH>Q5*CVv={%La`uo)Z0f7XVNuIOh6@x7UL~WOvU|X3r(p29i25gQp;JDJ#_#~ zL1;kwtON`JkquK-Vh>&1lINLfO}m392Fk24%cq_%L~c3Ry=~b5XjaSVeDClqRz~ZC z(j~(J{pqW-RFWVVO(kgZFC8;j65O)o<8oy%(t*~!rNp7j$+e}Oi=&bp*RlFM;nS0o zWp|_55y21hFwLKQRdMF`?^=Lp1NE^k^}?=7{lH|eC&4iC`3*x8|G93703O>Q>Q+#l zS{rv*>R{)TtnX+(X&ZJ})%9VvA)=h=;Bj`cMxyg~HEEc+>Tr=ifE_3{|D~OvI<=>JCRsCXqESnHr;ZhjNhLozp(4 z*8Fb9CED!_T1XADxRW~3J1ZlwB@bR$Q9Zx8>2>g-S34^Hq~P6@;-I`n9|0|qgqF=T zJny?-jqFIt=_qg^b0W(p3AWmjI7fPqGEijyyFf z{N-aYPVn1zzP{*R)8rt-#dh%A==Mvn2&sQ%dmk(Mvprt|TK?eRpyl@Evkipx^8+HU zVoi)XB+tS2Eko)PQ67M2&d*Z?1ab@x<4z6Bj)vj9a1+zL0?O2o?wOI;t$rzhI_=06 zi+3zhpig2oGd&fSltd~kb4YW|1n6}Q`hF(uJLxzYHA(65=o(rA+5vj13`xQ%TdOZ$ z3I$UGb_Hz_fcqQP;H4ehGK=x4eit=fz>H2}Ga2gnxHVjU?aTx8zrE+%)k-Sqb`^gl z->rj%fJzbOw#_IPPLx$pheog0Dypya@a(lE0-K_S_ia=S4@1E_x-sg=Xwwvk!nrW3JiC2*aE1ttqdhEq(6t&EKg zSfpHtw7Geea?T8z3AD*rrn-uUsV|`!J4~cXllg*>!84EHOR68A!xX|}UYI5$lsZ5B ziuN-n%h#VATC%M+V8&Z;yW3-AAsH-8WHwTCw!*ODYjk2ttzS(G7s~!N=6J0$|2q6A z;DI2JKlKe*KWdEcH4`t}*IN5kqaz{=zn;On?}>o~z2=wMh1p{Shar&s z|IccH1FOE?;P^ZD+cd^P)m&Tzn0LfSy_W(oiS;0JZ*bI-D?&DBJ-`#bj~=k_RJE5s+Z}BKlAF^-gL1M-MDu!wVt5C49k2l zze5Jg5hoT_FQpKJmK;*&E^|>7v*2l{ci8h;3l{wR=493vy21Xz8k;o;YFmh_9iGOpdf%sE2pnH2Ge1UzZtN=4en^uP(D#Yq~ zj)@oAXM6^k!G<%AFYa+CpnU-*V|28xn-bh@1-$ zk$I;5VvA@0BHHechp`kZ@NbN~Y?2di?(YwH-CL-nDg}2j=Rm;<99;Ss&DZ`6hCMS| zic4*_N9We2YHVy|XHU>CI09r~011{5JPw}S0iAE}>_nzTda7&;49iOK{x*k;6V2TO z0F4YT?i;9_acK z2RgUIWl2*S*_^kT@h0gumSuz$NlyCi7fhWd+A$JO;$AuYdJNG}qxHSsT8219g~7;_ z)n?9zL1Qjn$qg>QRU+J=`+?zyT&kmoF1%_<>e0zq)2rgBr(BE|iJ|Ut$;P#9Lrnf@k5s7j>YZkHUpZ^0 zG!+ilE@tuGa4OT(rriNXNl*$0fN(m2l~>{;Begh+|8Rr|ktWxhW?PKQ>gwuVtlUIc z%lg)V=S6^V4~X>GdrkjE$bUMREmghzB{^98P4s^wmmL1CqjsO( z@lqjBiB?xucJ>MVHh+jsO(i7ctl8=b+(bq5{n5Gp9crP)37?Rwu79-bDLsL>`=viJ z{WHxfJpcSFl8Wik#B=#a6zA*Xi})I90GJsqqJ;SEeD);vd~mWGs2~xrfTGp7mO&yr z<7Y&l`^~|PyMHuieJ!U@@7ce~`e&LvN4@@{iSuzRc~{)cchlGK1Cc^jKF^upu7Rs- zirYUhkmY=!zYh>~2^W>hOgFW#=S4;RFK_K|(SwHGJ|uNEJ^bdrB?t!~jUQ6=-f|I5`knqT;mc`vFoZ;7p?j0Hr3% zTZV65{TKk~4C2EX*y#Fz%ePP^-QsRiTSa+M0uazxS;bYWwVZWX+L#GP-ki9B+26^a zW={+NsgF?p%p@Rxm^d(Ja#-c6F`1iHo%>Dp^=p!Vf0xr^=>itp<>+YbuvzYkI8(U% zAKk;4AlV8=CZ>Bp2@4)c@82W`0U)dT0j|TVHK39prKWCP?(prJSrA4b7X9mCr50X` zQ3B*n7w{J#qo2Tt;*+b*)#Px-8fnTA?l&9XvD_Fo3QKJo9<(Xcy}Qx59N@+3K_*l|9?dv!y@DebFpkci77;*&nL#nl7)Gl$j`@8B`ed0UC4%GVUnA^GgIHY9qI zzz1dEs?vz&LKcS@-?7^IMPQMAOZVCly`6-VDs@_#`5mLhO)C!Mz0J>kCSktb@czwt zOnblL!Mv7d{j^hC@P7A}n#$U_>-kuGV&b5M$RHURnf1f)*!CXwnIO2o(M?5a`+Q5a z<%;@b>3$LrBXZ-jbj{2#vnm3RB$I)7wc(Mu5Wi#^_sBH7h4Mw)}EyBxr~JD`w;A z3UQa4o12v9UJT2*;yrUKiBfs^Tr6<&|Fsez%9fK55Y83MI8B#5_Xo|pKwmMpO96U? z#GfC;!rsf}h{ab;*#Y)~cYDPzpRZCJku)Z=M?V_$kt;kc)@pX_^WN1nK94un9E?US zNGvpxdX*m4qj0e&KttwwyuT*%b?+aLE>>VLQk*zxNEWn=Ii7$~Bf-gNF`b-i_K(c^uP?C!1EscxYVlPYqJ*M^eu7w$8I5I7)bO{hj>o_Js0V9K330XH zv1RDlASbyrY_4Q|p-n|se3r-Qx0PQF`tB_s-xFe#U)nbH&zSH=|7Jr}*HEo9gBHY1@wzIGO zk9k?rPqDbE0xhVP*5q^TGt1yYby%K9guOA1^{!qqA78@H0EmP;l^>OqH01C~3l2xp zmQ4FvZMOdRWjCWMSCa7I_DF0kgR(TugMm4uiCkWt4F{ox_a5=jSC9)C0YC18Az1z5VXY1bzG?hXNTjb+FNt0kE(XXp|F4;IXxBag@=~v2(~> zeGmesh3Bp}2?M0F0G>;oh7W7$N5dUs<^3{(#T0JaQKVcURAxc<*3@o^hi}FC*ZDSw zvakv0a^Xhhb`=De41j{F*C@sBI@`hdeQ{Q2eK38i3Wuz7WASjY)iFnmkL>yuf}u=` zwk?S+d~(V=oZP3x@g%hm_JLbdhOiI3TVkN7_Ee>hrc0=>tq%-2iL?qx$GcOYn;O&E zzw*3kcdRzOmEuLQX~R8a+Vte;$q7O-O+l;K-ur5p=--W)3s@c)S?DpVdnc6So)&WY zDsLFxBN|D#wYEKJ-$upM&9B*6HQ!MNN&V_>p3~PYd9tt1Fu2<-=uf2*D3l8d3NR=N1%zDk8wcy9kbd zd!gpP;jQ0P4*w|y2>2>%?MME0Vwn#pWELxt^ci5gvqa}L1@!GtTTlJouJH1%ej0kZ z@ttGH5 zD14AL!<6V&d8W>UCplFKk+>{`H){&B!27{~_Xk{K0?Y`~Nwfd3%n3 zjshWPCXZ=_OXJF^6=yxfuo=t|sPNlOF&YAfVNCbywdNM12zcr_}*DgK()b z(sbF5WqI?PJR#s~mNeCH`w4KXA~J|b;h4AUX=LQa>4dthAilN96SOhM?5B2q6>>8X zKsZ-`2JG&hEPMOc$Cw|P1yv7{jVk|Y(f_G+?;l}46;{%y;C>IuYk|7@cb!8MB?xi9 z@vPm_K5gu=n^u**B7R1AvZzMkU!UqJRc?y8h2vPYDH2fu#MfofgR^T#{jD^f!k=1! z>707c@w%~_W+~Z6r(KeLXE)NQat=$F67z<Wa(+0T1UiCWx)F=XS-J@N_eaGArjLW?NNuM!5+F%kBU%?F5abJ>kjIx5(Q@s zqDn4@$QdIX9(>6ChL&5KusM9miu40#r*9hP6TWpJh^PD~QTY@;RX4g&>Nr;@v1x|v zTJ+RmEc%;g{#2JNSsWvI$Xia1vzp3EZWu8F$DJQ+PrMx)h*H*?{yty#ealr?8B%X` zO%zsYexdN3O6%MMKjMf2^Oajs(mNCb=XOpnfB3&*!ineJwAmDVq98OrS4q0BQSNts zUjhl|*)v(fFl+MKFglx$w!}$^o7;4@%c}aPJ&rkM5pSqmb1CiTkg(Dw*VO7UPv4Ib z4xu2A?`}sZX)_BY<4K8|n>{VVH>BA&FH@u(vTqgCSi4Vhd}cD4%I!2O%imc(f4X>b zqzMat_FQzW(?X74LhSaZK7M)meCiFO0z(Y3(2n|8j8;4n zM@oB2!xn1>0?utm#yLlGyK(4DIAMQSa)V31`Ob~7Uo|yY_mU^>zSf)KaAQ5P7*J6K zg|5*4qga(t6dN|C$y7$B>V9jh9_U3q#0qBcsGPG_y{Nx}2EWhcK&jz3#eHNv<>t?% zJlKcawGiw0ruiuu);Z3I^m5<4&w@U~!XX?@#q5C5nR`veL?*s3uXnAopZ0IKhDm7f z%+W4tlR2r$7U*=LdKdpDW=R9H6{syLlYB9@*7$&Lzk2R^jIJZ(!?^)nFN$(e(GJn?K>=`LWj1ynENaoNx$i<(;=_Qhb*Zx%yXQdlm+y#txa z!ov(T9?*aB-@@mkq)`f;#HyoHL2zOdX@NxaP#lR8b4$EXJs z`bQrB=)LMf@Ky*bWq4Mu_^})k`>NLOpJvM3OLadhE}zU?)7|1k)RsZ-i5Gheu}*>}a^Kg}xOv5u zU^w38T5%uCU?b7%7lUA3XIYbLiZf|=VnUIm)1HGqQio%OVWj|mN68ZTb4MdwU}l&d zftIHY_9iONhVq0L0jvIvY1+I{cA9u2_UEKM3?){Wm))C&Y7NP%f~ z8GZ);Z%)4r&2Op685E(oCkeCpKo%QncZz(FI0@^VcYHoHiZn{+c4Ofk(oug-SBsh1 zrV*AKnuLD;Cwbmo<-*f~H%ZqEa}8aa7G2&lqT^ zc`i;xk@O)FTLqdq72Ca&taYe$WoDar14dmDz9;awzZ+jFbj1f=h}{wdt*tJF;l~TO zn&Za<8mVhTmwYzzo>sZ!pgG*^sxowpcDccns^YUxsZ27_!F%YB>a^xN~rmHD_@_J6dmd}?U&jHlEyRyv9G^G>u^?Ccac(| z*D)CgoWCyL)QQH3^8aq3r9J&@OB58&m|79_YzwE^mk*i2F%-l$I%#vy9)q7>-QGju zly6_jw}+bN`t-T&D+FO>`iQ2mH*U*R`FChyudw+7je#(}kt?gEVBYUZ2nn4j>akA* zZ(^(Lm0!&wJhwqd(9v((Ru?K3AO0xU!hBNryxFk1HP$!SwmacRy~M^y35tE_xP}|G z`xgtU4*fr}prsY=IRUKSl6>(u2P|bgUs$o-=ew3=M-iMzB1mY5=)cXVhw5Jc-sj1K zQf~?#PA3!!sZBXbA__^mpn>8xqh;0LL+kSc(Q)%tXQ9Ri5pofZowcQcOxLPhX^>cg z`lXue&Nh~Kexv;jcm(;53@bV%Ft_S)#!RyO{Q~blAsR27mPuhp0HH#N6GL?(?%6YB z2lYXvDIvxkjJ|w9@reEGHTn3_nL;R{0D5IaHl_R(Va!<=)n(zLs;R{_<}0kMXk2GZ znB4EAc$amIT^xwXQetU!k)+*sTy^Rldkgh&-r-$GP@*%0XrL-7%WWAO^%qMt9upl= zD-{lZ#rP(Ench7>c-TPyMBqYn+f-I#VZh_h_w|7p#(P5p?eBI!I$GiG1_^Rp!}%!5 zO%Y!C4NOoI`!8EYXH)il|JgD+)Oe4&X(1qdY=G``Uk!(3 zbtwO|M(ba>J*AaHs5;E`QL4gP92Ug?i48whz>FZM3g6D29WduBdkuvmcKcyQzRxHt zA}biFz!ikqZyvR?IKL@fD-_%+u+jao6)81qv$3KoyhQ(|9(w|kGc_zanxYDlye&JP zVWPZ30FIha*6H$iyRbmbBx?!-Gj%W8PRxHY4s8kU3&Tu&2I;vbRUmDemiBMaxKp_E zL33s!*S#PdV7k8bU-jexfas7dO3CwmQbO7r!q5;QVA~F;{fOs?cn16Le&7n~_nc~a zcvYDI35%d|{D^4r7z&XWdb0WUw> zH+DnR;7OQU*e1Q3W)ZDxyXSNmZ^m=?r_`s*=!F`4`b;C|BnSISwEb~Sw1=Sye5f8*R4{qh!A{i7Aej^YJgg95lNC&Gp2?RAmVh>a{hyB z=VUz!msX-nU(IA~Ss*)g^&?-PSXw@TNWOXRS04LHPpcV`ioVde`FSuiy9=~`ou~~y zr;2pkOH$C%@Ufn7rSdfzoBy}9xYd2}F(Waj#?Ie$LepfHe~6lI)ju&5kk_J*TB|Qa zeY=MDmwpSKsjn`;Lz!nf|JsTvJ1hRLt(dpmcNv_*{HjSV=*xrg%K;-aoJYfdBi#<% zo(U>PB|fxmeTX2st|ikRrLaDZf3ID>n?Wb)G6`(GY>iFKfjbgy2~sy8uQ0P=Um7(s zBpMG_8e{GK`91MkpoJ5*s;fH|Q1>wCC?Q!$UiF7N%F}c4HxzwQ<3=mV55i?+$BOm_ z4`kjo$1mmw?oD0i516746fAf9R_k-1GuxA?1)0N@{bX`*Lvk~KnapL_uT)SX9s??M zhHg)bD?24ycLFNCX5?4ZJPI-nmS_sZm6AFDbxS&B8`Ze(xaBaA*0*7DM($s-%g`Vl zkd*wc(4PGTXX0r5@Yt&0w*=WGN)y!9E!W-pYg?b3-Po1ziyTJ?%{6if z+zXTJ!*g6O_^HlZjgpnYLF+4Pc4DN|EAmz|n|(K`c;YpDnMwR$^U+HesK4JT*@_t9 zDfQ+71@-=86Uq;JvXera652Cqi1W{;ine+<`z(PR_`I7l^|Mj?N1tq`shn9KH}*fB zbW15&Po^h72&3p#M-j3__MV4IvDTl6Y95v?3J1;K-C)gPJM5$#WG67LZ}QObZbY^) zfQGZ$Pj)~wu)m+7_L-=XzSZA;elC9%`z+l;?OAwaji>&!i)K7lj!fi4Zy^<;IRrk< zcMIpATwPSMA@=a_qHm$P?1i;>$9a#wJWO`A5s7-d>QTb^*R|mpg0VAT`Qq9sa7P zi*3cGi-(V&nD@$c$7c+6jjDHtF008MR()Z)O6*D34>N24|Efi6yE9~~^K9P$*R({Mvn75Z@B4QxfGrFslUo@dnDzl4yyL_0lAFet5epQJqisO>VJNTxHAdeJ zk0UN9(GaghPVKa#=s<+8g#Ou8oWg6#h3z8K{PXUHf510qNF=m)MS3evy-&B?jFDRI zo+G@=3h+RMZ>QE`iiQU?Hae7wXmvYI%>lxaV~;X@Xc`A3YIO;}kLZcB#d&zdvU>DF zmf;z}!_0s|iWS z4=K1~;Ja$>>n51qV0v+-CFPyV2RD=Y%>57j$68NC#*km*SA2_Ckl{bY9xLAJqhL4? zZx{ud@>wwf-B><3xI}7oW5vQk^T|VavbZ%;gQC5=O3HlwK*N{C?e%8m1Nc~Y9P#!~ zJ?gN?82jlhD+E zc~z5qfGK^wZw{;DpL{>oi0Hy^O#N%Ae=tDhK*cVx^caC6`lF7GOJMV8gx&U9iq+2f z%&ed!W;g9$Y8!ZBf`dLnbe#kIhV=Ng6)(LTcITOwF;sZ+f>Lt7vUJeR&KkG}VgAEMBbGyfH>YO|DRdH}RP&JCuk^3+EWeLp# zNImE=eD^+*@2MLgC}dP8@BBRyx0dy4&ic0+{lVMSJpT8VkC0(|7!c#6%mMq~TXA?= zG^*!qp`^jzbdEzbO;ax*hxT8EvFHhd%{yh>t z>nO)>bUA3hdnBfxgxX~9$|KAVNJ0yo*y!rToeamcRtuMm{n&TS0wPKut%BciSyj09 z4$Sy#T~e6;ftbastW#)miLl4cn2&mOHPmR>R0sy*Tf5ei0{k6FBZT`KPnvq4YKaKf z{r1!ffeH2?R5j(dA{U9H5T5>Tj|*Wmk4rMUc|RGBXHl0K$*LItqz-OJv%Icvg-C{^ zvwRejg|}-gk{>hfY$pWj)z9uWLTuVcBt{M66T5nsTF_j2Of{doF$|q-FO6-`RQ#UR z)x*@KY}0UH>V9bQRom93{#q}4{EmQpURC|B#P*y6441UY)%~-UOdF1|K=Y&&I>2qBb8Ix7&tnyx&6-F` z|7M9paG3~HGao^5dt{ksu@_11|K;YI+?1c0Ui?VGVn4<^#(}MZ$<;KPhpNtPDIs~$ zSE)TXrx6Em=T2>Ges(hMTgMXjtFLxCe~p@V_#6x_NNLsm58SSRYCoIl}hKn?zTb0_5 z9rsymth7AY{3C8`prq%by#y>!k{Z>h79tCL^;S|*ut(<~hm`;GAV&@d0cP3!cIICe zE0E^(_}-azS>AvI;AI zziN150*tePH~L35xQY3CfEp{g>K$QHTkJn9q}6hsHP$G|e4q|IGvi)`kl> zqmuiNg$$;7y-Ii4TigAH@y?vtbvQKo{`SQMx&OUz=YJmLoxntJQwL*FM(-LH@k1x7 z@ao^dQ7^oCphyliy^qUXNG@UHBlSPNz>-&R_mT@nSM+GfO0)*N=jYlCpoQ%zDqp0# z*%DHdh998FX`9@vhFJCK7R2)ERNwkrBrzm1ZMRBSA78m{?|Gh>AkQ5YeMmuVNqn}? z@K&!N%kNctL(1SfT^%B>gd08kpre%QuH{wibfK*oj*DuW!4K?nhOPI7O9{8;bUef@ z>3jb7a~yj#Uoz+AUW4rK8mvX`wo$q%Z2R+9mC|os-rsrAUNV5>2}m7>SB4vDKM=Qk zSa(62_3+%e{dU!OHcLo3f0r5iv_vaj;8EN~5LML@h=<{I|08)wbl|>?&~BEDiv7E` zK3A5X56bv{Glr4Qa$-qRvtO9hh>qzTmb%Ru@v!7UHz<5Hq;mAUc32`%^E8_+8`=}_ zkXR%_hDPz&Byx&K9(^b5z~mB*J*AJ7D^>b;oVO$XSfbd8lR7Gv=|PT9ldaF5IT1Ua zxa|1;?#wOEeZE5c%rGATDe) z9>IytngC79h)<&j0zC2UPOsj_mL9j^cG`$_)OwWqBPjXfAYCohoo7b$c1@}N?=9R_ zFVCG$rhHs|zf#xK-0HF)m2N8eI=uxx80Li^0ZXIEszb;Y2Qe zV25+~pLEH=I$U*@MYrsJ^8QF%8ZGC{pf=;2yD`d2M@bq&deswaEiRSo%Z=KWmVD%D z;;^25&hCTBAqzNF*w@ZwDU0<5rONkC+dM#d;a@h~b*P#5P5i_B_R1g2&VKnhz?-5l z4keZ5dL6GUIT}5G9Im{rx>+5EvBLnrB=obT=!x5cy8Wv^d0!VhRDCNZw2}oIJY@JG zzs9!gGnvD|gA2IRJv8Y>mIr)1S$2YvPYi6F*k!Zc;j5a3;S3SGV+YI__Q{|A4T9L* z^hY&?QAva<=vXM^l0B_MF?GGB6&7k_gjbzJO@@fo4B^~ox3zStk}{w|4ut-3Jl?TwD27ZTi&KzHZd95e;r z?=1CCc4CpO194o4Z)?arVs;`M$bGMyZ8C2^?GEFM|Di0$YEOO=kY}B$HHQ$XuWIaR zpMZF$c{-7-1zTsimdO zTmp62Ag>K3NfdHl9=f!!?s?9(HxA?$VRoq%iX~RM^3kz%v^!o!dW;{<+2Hc6V}NtF z84n+dybNA?Z!EfTSQ;=5n{?Va;iF=j$k7 zir(ch3RvivGBWM$XeBboQD%Q7eo0k&bh@^1`9g#-wz-7oac9v19|TWgd?EN^^GnnF z9zWD-H<#hEJuFHIvH=pUfh$)YlC1;lbQN}eEFnLSu~nF;7z<41aYjWHjM&A^kcQ|{ z`c*^y?{yBYn9s)wn{9s7&bV=Xe@V5l(sbhY1?T{-N++qgLyat#UY%}Nb$#i*>;(Et zJ%vV}a;-B{z2AJn`Ie|7V8)Wv<>zQPf1=yTKapPPw(*eO|J z+StvMCwEr&Irve zo!pPH)SuSuhN(jgl=CedbxznCV8ZlYa!x~si3>B>%L6uT_3UE z3i54Z$Hx=H9u*FH9qevim>^zqa;i9A)YgxdF`6rlp*|9s;!X^4-+1s2u)fwXK7KT5 z^>#uGzh~p|*BN_3pa{pET)%6Y%hNGdK<^e3ywM)n{R53+Yt zn^jIMe1BwxuLUKbJpCx$9h_FFlL&TB&qqf~Fk;ZUpIPDdQ0V3$foOpLb+`0rT9W!r z(p+nIbQg@la&4uKBf~;doK-cq?f+q)c;w08ozjKJTC^ILsQcm`%}NTiw{WH955XO9 z51Y?NrhJrI6H1FGGt4ifLf=eGZx2^dh{X`f$MAm_&%#~Yx(=83Fce&c!ARo84Me6IiULTszS*+U;#6}TzQ zr)iIWEp}tSF7}Tn!_IKjbLr7b<_D|j_-WMMY&1g1cwT$!$~@5yBM8Gpe->yk=%PA3nJGJMLCdDsZ!fCR{GhcMEX9ae6!%`e zmk8uLxD8#B^vXL+B3q=8WxULxYJPTJc1?YG(HED};RbkWZunYRZn50?TgUSc0ZOV%QOTB;&^tKF@?v%Tun<=v+X2XUAQ`_mMcvM#j+%+j~vscTn!2&D`iBKPI5S zm7~9b!?d&8-6w;0Tsm+8J=WS#8j@+CH82}%$<0#ju=-Y_17MmqDZh-zltL)tG9Q~V zG_XJPn_eW{!*l7R?QjE1>gMnJD*$5Agx4E1ak|dnyA>xCP<JFq14+SYySH6(TU5a)knJJ;@n4b*oj(o`xTn*WQtw+@S|S@%SNpuqwJcL@^QH9&BJg%DhW2KUA- zxI^$jBf)~ZyE_DTx8TyaGsp}Gk5*dt5^54q^efc`;)3Sg=oB+ zjD{!ds1^PWY%p-hOv6)WY8Mk22r>Mla^FCIK+JPoLc!F^+u^!7$s4rIX=6NA34gwM zV%FJUoW3%iFq2L#b|@4#6R4w+e(*qg65{k_=u(P3Crw7|=3ugB;Dp|AqhF!) z1Qy9X;F`Apqo%eCWx(&CPNa1GAbhsukRNueRUg#O2P=++cq(ZnZj$BU>#pPP2kz?_E2y_Hi4|hpVY*>8&ZC;U@cXh%BC}wbJ&i* z@AP&gpS+*F2;-}|I-f{Y^Yq5mlc@GlO+gGM;Q-q z<4Wt4=$6WB?~>W~*;gVga?1b8&Z?xN{gMn{XI*-kHm&-542JUAxO0#Y!YYW>R`F>0 zCctSEGwpF18$+-*=4*P!T*3o0Ih)6_^7(;J!Vg{1TK!j9_);_on#tVk@CSp=&6Ui- zhQXwk8+hs7U14Ko$EJ#p;HhPVLw;Ah@LWdg4ogQe3c<1vgrPbI@mbNoaX*6hlTRZ6 z8#FM=I02+QAuN@LHsr^&`uq5yv>$bD7v3u!l}6gsiF8y`YH6zjSsnTYH{Vf=0w4ie znY01TcJtoKRS+&4`HNyP0F%HBlI*fLZ1bnFly94qyQyH!T#yuNzLAi3kH4kvt^8dN zPExZq>dg}GUM7-#2ssY872By0vZ8zu@(Xt!4zc&Vvtcaxx(!9B5+My2iso^umrg#@ z|GT`{R;DtTqvhHJz98&n*vpsw#g~VwPQ9U38%($J2sfYAk22?!$E}>l-g(kx9Ptka zFJjs?TM%xLWxbcc-0%6buE4sC?>ozh;DVe(WH&q@;cx~2SOVp)a5 zYBXx!^1SD1r>F3!^%l`v_2+z>v9(=}u-!)#oNrQig>MkGS2cE?@?1)`T`d{v;%r5N ztJeWK`@ho%XYH0B+f5DLiT4=ezm5f`$mMm(XZYc5bb1X4+l9otsB`Yc zy<%!A^h7gzbjjvU$W9C^PO!PlYUF8jnK9Sd89k*9L_rgY4~Gx8kllCo)VpWK zrfp#H?xPC%aCCFSpS*mNb&&q=U9a!&uz4tc;OAXZ*DInRF`U>KnBC0LdVI9HuVv@0 zL9Oz}pSQy;KF6_IvdK6544)Vy#dBArtMmoM>Adfdo?@>H&C{DZJ{3?LnWhy_FW(0Q z1{v&OY23bY%6iO4EzjGvqq+CsP*Ss->~`%9_*}cFb{syBnTCN>8dPOMY>+2T1{tb2eE*|w7d1bB&(&N47& zZf%u%6CqGo4hR5EvN2mae$>gD@)vXRghBg3?g-#Ris+s%N3;%V;#aZAubztX37(nP z9@-Sl3h%EO*ivu!q99uUXqTS?fjjtHhFIXtez2s4A_uHV&*vhF%djnaw0~}?mT}L$ z%JbGo@B7#1|KU5X`bUUBomgvsqRcpA+0dBL{4g|X5A{5ld8*2IAAGfP@zS>M50>8& z)?|UREf6nImF%1Cj@4al`i97uoN6@g(BR_kR?IUBIVe>Ppt6=_oXu_7yafJ7Wi9_@ z-CV%Au@oKYnemuOcm-+t`qML&C9%bl_#oVa-C748HpydblAi{A`o_ZG)lTndlcUB{ z9xkM8lW?*GDk~@rHGk7I_HlzK&GG|+G>=zzVO4CioxY1FOWh-tb@$J@s`&&h`FUJq zvPW;5ohxm)(8E=~Qr)*tWdn~Z15oi?&pS7);I^9am93tBO4wm{n&RmbR^Z-5h67 z2L=fvh1y@#lfK3muprwYrMuziOBEJZ*usyWVzxYelNo2LP}b>ZEw7h8P66}k^}vRR z#AKD4w$=)c@_YL%^!%oCRlBF-YM*Oj>?$!r)55}{77Dhi7GNSfFDl;$0 z$xN*AhHZBm4U~%q316W_?*m>cb8#Ualx0s{3R4Qf5_ol2nyw}U9%Mq35!LT?8E!rc zaXVXQp1^Tsdfq|^OQvqr3&#Z0^dWu{c8QY7_^h1xFP)t~ec}CYA^8z*|Ta!mL znI5}%KJC|-^?Xa1{z7#a723?tf(( zE5M))$7VAn>K>rx&FCq#`#R%TxH~Dh%Jq0%kX6r5hEcn5XA74Q#OYTa7oKDc(VAdQd*O!|4_*;a1vV{FGhgV0C&W=$_sN%Q=(b zBDj4@NoyhRJK(kd>d;^BNk?rzHtAwI?H}K8LV+ z&?QdGx0CK%j>M~=WQCO*n9;Py=8In8;kNW{h`MOrJsDOrOai8zqI4&702mPmrJFo%GD7x6Ir&u`VvND>Ejk{vz%*Nl%apgCo zyQNtQsrF+!4h%pOc~jZ;irWvW=?M^ZJQTFBH-*pFTM?T`*|G(&9Yrf~j3jjYEDiC>(i%*2emsU&*b?st1ouWGY%S zI%4AppSaBOU>6B?KLFFW0boaO2gRp%56!?L`*Z_HT2n03ZVQ56O&nlI7$Dr|~)zOBnd-y?T{7P#%CQAgMuA^(8a#Jmdi z6*FO~Z#1G8k%+BGzvvh!5DR6SaWPdubMIYMa7lK0{HQE#KS_SOKRO@5ZX*a>-B zUu&sBVKQV=!a$+1S&;Zv=lLFlqiO{W#Php;35o+RufXzzx)+u)MOk3dJmz0`)de0_NX zNsIS5j%pOm+H?-*3$`crfA<1}73l+_SbDUJw`4}T?m_&}Gw@CAZ3#DX`ug@pKX2)T zm?_*{ShMz{8H~Ab1!SwtY0cTE`tDw7@EuG9;Ov zv&zMct;EN6*o{AD5iaCFk9(`|fr+OM|L74Wn-#WWU5Jed?qJ^*Igu;n;>~&K3&|HMlfN)A~EY~Ye4+v!CWOnya#O`XRhsX0H+Ygx8?ij zao(RCcK_0w!SSafD?cJsvELgbm;{tS2Fu`YDMXa)J_Fj6b=43 zWX83Sd>wTx=ERa}jY_|njQ{Fg?{Dt_o<)Bn!?^(0AXt(SnD)69d`Ifp6jpinYg8&) z;a>wp`l%2Y)I?hofX`kM{wcCP>$2fg(Be)lCQ6JICcTU`8JcUUSnJ*bgjZ*0X8A1q z0iF-@3>ZF^U2Xn#iEFrj4eVs1X>MwGk0z`=kJ6Bbez_D+?+*U3aJhaLZrx5(+xm^j zH^(-3eMl3NZ8k2F8Jaj1rP_UR$H+Tq?3+%0(G_q9SwcF%GEF~T;+K+qisJj@q5gG9 z{nWzb--FP9j6F&}6>a4oRtzlP95k)g+}ZpIS2xC)=*jPC$~vh@EO(XUIa1IQ;+YqZ z8-5}m134=rByW6I}ZTV%S3DnkoRx7G5(LwO`%8?J%ic8=}GgY)Is#;}X!@cwV zrxWK_?}!aTjCM}iC?<9JKQozXjePGI{f-?r^r5_=1%*e{e!&~m zNaZ@{uxB(0Hj#GQ3(Z!*uMaRM&JMm-nTz4sj7nDY^qNxqWMN-~+4BQpfykL3$i0Yj z4iu?IGZk^wKzOV;+|)e~0Z#O~GWkB!D7`yyRJ~DVT2{zAd4ph?FIRs%Rd@20$4 zd2g_PGkilC>(zI{2!V)VSBdb}6q`{w(T|DDruy2@8oXj{BX}SCVgU&r`=h0+#^@Ei zsZAZ$E7SFK7Etk`TuA-nsDOCCR`-@t2CP3J#K1Vag;6rN)xgW|N%cS#t3juVtbnAy zp7A+u4R{U_>Q=F3jGr*3?>)D?PmG_kJ_$cIhjgtjeAUMlW~l}kS&4K=}4d z2TZvpyI+sm_(bkCw}r`DIv3g9B{IMLrTgRpc<^~6bENcjwW4$S3rS-Adm#DWL(BhD zj+_)N!(cUl04X~@et|*cp!*1XW|1e?d{Uc zL$;tr6)vRp=j&KCW$zhTB*&(rWi+6$8sG$y7l9-5Z=HdPktwokS|$PkJ^_bF;5JHl z+EkQKpR0gsgZ-~C>mPQkd40DuHLLkjxTGI(K%ZvblrxR2bO+*YnQg`Bu5{kVXBbRx zz|WAEea+K>o!P88(d>u?%NC1FW%?QC(^f%6Wy5Xs(<&oVo*OOZ;*{5^u${b4es9F#7&{qY_?kLwIKuPv$g4J7n<^mJuXb$yR#qof4{F zp1(<QOcZauOL5zM^xrLxvr>Q1<$lNRP!kt6z0@V=jt0 zZU0?V)^t|aD88-GNM#uj0~8|5l#V0UhpOJBGdHUC=;_MLda~Db7);IHIBM5eeV&Rq z+u_4@JxS~eQe%2g=BD)A3`wG`CBC+@yyA=jt9@e>`o6vlM;s7QNv=`%|3Z~+4GzhA zSaK>7s=A3&$9GWi~{b^xy;h{&b#G?-yW|VchG4I zs=oiplxa13 z2>q0m%xjDM;_gzX7n85YgP|d!v9)k5#i!zNkxfeB*fW8M8K{rQGb)q#0ID? zCofLThE-HjR;Z&@!(G0MxW10=LHt5SFc#FNmcYu|?miLmrW1aS-yt)^K<;amcs@(t z%orxz6bdE}ooz7TSD;*WF@fJpmtP97oVQDyT*-}~z zHTWk#y=xF~?E0{ijzL4vZ+kxYG7J(%FO2j#{^J(RVhS7w>SHJoG5Y5i6>g-T!jAbA z-ySXW?wyExI}2Q340Inc!t4DLFoR~Q?SXS7N>qWgBuccz2yn;;85vj2Kv!RPMCO_} z4AO)EN|i%40yyN=I{0-$QD8SB04m zVq71Zxt-^-eDaG0Td_It#_R?MYPysF$xHFhwx6 z&3bC8&+UuMba`>upk5p~Ri+OYBm>2G;K@q~q)C5ko>ArGh=)ej(}{wWa5C^ervo$N zfh#Kb2R?vou-Y<&^X^=~%D?~;vCkYa-Wfd|OA=PL`u4sWC*Db3huES>Spw~0N{$aw zecO(Ir2gc1wO?Sy*38@HjFjl&l83W9S3PfY67`d@Vqk#W?T%~=1cc3-4gGrpcSxqd zE-3%7XV1yra`?1pMi_|u{zE{TM;ocm4zLwHbSa3ca(AVM(c7KI=WuExKI8{64AYFt z+{Yv=yf?11?n8PjbKi05%dTEAHM3#ZG$Urjcn|-8OUDZ%A#GPD+FAHQ8ezs-Ps+FosIbm4EGoaaS-L z4T^TXEUBTn6F?^AEgTi>THX|rMs_vutCyNIytnlMFSbX?(-*$s<6%-_@}ct z!P?)cp)LMC>4fd^>-jRb81gR+2@`AM34I=ZAl^r8bWXp4hE?kUF>wi?QvXLTe+YWp zzX9IcCV8V*IAql^wXTA!h$$)LtNm%;E3waqMkJg=*U|%(&W-&N+`=)iuTt-mSK9K_ zyHjeCl2)oWAVvL+>o59+Vk9+BlC@Hi-DjCF_qPL;rgsk2Edb39=y_qD=|TXuJ{y~o z6|xMBmg=Qm(Dbp#ZuJw5nR?feHtAo^pG1KihQv<*~;l*EQ?^3>fl&b#YgiwG`_xf=RVyxW<$YKR^>P zlUt7IZ!g93KA{}9pWiQBDveFwN9vsrd{rv`O83htJY~(g4hWJXE(E$N1Vmr_= zgZ;z@$JH2>kMV)S~Xg1|0Z-UGSyM9ovfxee~_T<`yQo8XQlrS6=|Z$sJxzxLc?GX%7x) zGb97h^x-(%B`)@Kc1jpPEox1EY~Qn6v*25-v6s>x#A@OI(-<{IW*9?-(*CgdINoR8dH4pUV@oqMRD`AG%vxn4Xy^rvV*01Ns zzR0Z(eOGFBb1<;A!#_1SXHQ#a?+)Zq4qlW3DWZ54>g~|Aj!~nyDZEBRTTZF@%EYc( z6lg+QY-(z#9R7nCk2jY01l__;NW_ag9K^42bNJDn$oHg5cF8MB*vJFN6vnIi2mmVub1_*(+&Oy%`er$J-+XHT{Ns4=cmOHs z0R(;v*E@c(eKJDk)C4eed(vZA*W?u%55Apn99B>?%!X)rWJ^lHNH)H}46LedlGE*h(At_X_3yu3Y_z2|jk#q+oULB2!I7-o_PEYb*y{{F1j zTd!X6h9Px!>=m~6{c#?@^7)qlTI-JS)orYUy;UEc;w4$%@BQCjcEfqoP3P4kUq9W_ z;EjdmZUz?VvRIiFc?&luCS6~Ax$24~&^6=J-7ggK2Hf$F7l`R#T)D2YXJTZ_;#3~S zKEq%jEn2qvg>m^j`l&E0p>KC~aT|NktnDb}djhN-@>fcZMOMRTN4PK>l; z$Jh9a3_Q9I9j&s6whQwRsx2r+IY*S?ipryT zSrCdJBsk?Vo9vh=%o;}!h~5lJfWTqKpGQ=4^1a1({mx#J1D%0&h#6c+mY@=g=XW~4 zhh=h3$4e9|DW9OoCjWc@w#y@!Gq$yB?ih^wm`ycQk9lEMuhpA$fLv9@qI+l)ISQpnuh5&HUjRV@ z3Mz{6xvqF&G^x-J|GFf<=W!O8-srY7eeG&J`hvM3wZEoh#)|v@F^XP##guuo2GYBm zlhWX2wR(3q?mZ?w{9wv9rgToX7xN;cmA%+=;@dp9tI}<8O@z$Q-4+HF@?_|T%?N?U zNG=s6Km^WlR{Q9ve(;i?NPGA;KMs3k`+Dd%gXxV-Y=awCY|exqrO&Rq@QJ^v<_aa{ z#FH?Ii=q5_r@ETZS14j@3faq}9rD1!^WcTt^XOjw4?wo4V+ro<02_u|L|u^RU7?v< z%OCF*&q4=`kb^}&rd;mj$o~Y$78fu7Aaid(EC&)K6t-qcY&mdcrT9kI7hK`pg;I%0 zLOZgU;d|mB>!KO*mVqK$D5idA$G@Jjy)XRAyEVbDa|{(t@8;&#(8hQ!ZXBPUg=!VS zYeCv}1iE=@@M&Mm>zcBjGJ$c6Op^Hf&$ogpazV$#5US<+{ z>gNAOY~J^eYU^nJ-DOC>Uh#ZdAq>?-J40pV2RpB}Xx6c%;ongP4{l7GuPidoDK|;kIEzE72Znh-yEZ+QAxw zg6Upi0Trf_T2+`zlGRZ9mV4t-Dd?OV?PHVxe)BY^%#)NH@(aey9XoCxy~BOGE%Eac z3EPIAny^MgvD)04Owf^>>B`|FU#ex*xWrWbpTYFkFi)9-SM}PpVR)_3i-@lepJxWd z#KbKS9dQ38de#Ps#FBIWd-U9^*VaE~nTz5s8%UWU_O6oq_bW4)e|%^zEh=glTfJ9XhYnvGkMy;vU{Z~d*|3_Pl#=jR zFG@$X#2g}E7;e~7%$fIfKB=j1y-!q*c4wR$=&Z6z30~opGz8A?zz?Y(*bXtaciA4;dIZiJc%G zGEa~stlQlI_Um^(T}8Ibn$~3GyHPG~p4JK5%YyubOGJ(znb;eKZthC+Z~Nv13W=Xi zUgR-f4U;~HPH(-rf00{q@&K;|9wLTaUE{!w1t&{V(Lfi{^LTAMnlTivxw~?c|E_ZR zv4c0PfRk}&KP0mAOb-$D=#`64!T?OzHM`He_k-Zwnr(!^21J(TCNYj*g!D-b_9o@6 z-i-pTLV0t`X@S`mgYO~c%4Sa`r6*gKJDs!i%*$gftnOknq~8^-{^;xSX;2EBF_v9h z(+T}(j{SKW?ET`3f)cN$SLe~1fAEf4`#8-;%MF)#YwiNJ$g6(0>dJH}zIEUi^ukV^ zByJ0X5=j|F`m|5ug%2z_#Vc0CzV>!OrsEeM40Vm3pm=QWyujGXSixEk3)0W?T%P3y6 zUp&!ZKw(TK0g_}Uz0~Bfs@sbbgR~k!cAxYJesMquu-*QIFa!bUNtkSm}VXH#FPuT92=&<=#)BQz)bz9Z>q!l3HRmjJ)-9P z@y8qFgfTG_+kkiZYElEt-F8$Q4DrCgOAbNfRW^vA*uGtqy(p<%ZjB}!J9O{?k(xj+ z)7M!4?gcIMxFGS1GM#|ReMkdDeQ)+Itq9H_)Zaj*sxI^1G> zYy}kSy7dha?fC6y4l`79EwYz?ODBKj5PPRj0lbp^xg*&S-<#@}x!T4sgo`hM{D{ic z?BH8)T=Lw2;?8&6Vg5NFPkJzxezRYnp7uyu3{BouNw!g7QCf?(V}(Qy_9p73ytqc6 zeNRry6R!Tfi<#+c249@Jf2oSzwbMSgko{AMXM;KK(4>nUecLNv46H1)Kg*%1_s&nZ zgLDo9b`EQCJ;l6erdnx)X^ScM_jPktWk$1A*#;>Q$8I8{r7qiNXBnoI8(&HL*2oa# zfUu8+G(8o`*qJuN>fNxOx_0k!>Ttac?Mu-1$F+p6Gq~aNd`^#CPs3= zRzoe(-IJGQf2u5&>%XCdJJ`c`gOOg1`&uq7l{Iw+=`^&;ZFbpeIrinmR`bGje?Q;R z`DAficmE=N@uQd2`|PCgcdOBq-^V$3IT}kLyQQWx`9DHG0`2D0MwXlC!|639jrTA? z`aYo!KdPHX^k@L?F>RGDxhZYW#HAH^SlE2GSXDM;yxIG+AylG z^}Ns)g^$PL68Qu{B3vQ$g;nW-5Y4;jrLa(#A%=HpO7EM5hdt?Q({CkVRw)GZj)E&% zchp;gtBQAI8fZDOuwZY9JIbEy@cP!tLgoC=Lv-e*yWHGOUtAq{(~V6J@6AGkG-vhJ z>VK`vdt6Wr(g6`_QO9LE{|uMbjT>?k}rDG z{=&3a<|O~UG721-pa)jC1Uh_Jk1(L^ZTD_Fd|~5KbovP3Y^n9d&S30=y*!qnXQYMp zp*a7{TKVMlx=0w{OXdpmO*H-R!77cZqJS1?134*n4LZOVi)qLRaD{dj(o?XJ9I!r!2mUt+DK1Dw(ihCUy+{I{|W9lJ*5O-;Utm-PMpX*0$#Y1- zsIkDBt%IvaJ#T8IP$=%gK1mSu6ii}h-PL^EHv}%+KbD!RkE#d;aSb*+6DP{`IxO5x z&#u-yKu^!UJegVqgeYKhjR30bpLTZPLRw-Xm~S->=03-ybR2R!+ZOHggY-O&7?BRX zdYjHyq}(2$HWk=W{10a|PTQBIjef)EO>>K_sNVPj!OMdkCx`Jf6%6#hBFgZKsf+tGu*F9mF_OUF z9;m`bgHY9l9ihn|wCqXmi8@nm9yFu^VH5?`JR*;1alCsMf;Al-`{}L32Nl+DbpE6R zCA0N%eQV2w-?PeEP^F zZjz`wNY%1dY154RzIgjdslGflI`mS zeLQG_*3KPH&jnn3JDPx5%SP|M05c3QN;#PDh}C>J?SVlHscx&%q75I#Yf){6=k;Mf zEnN=ka?(Xr5`(JEcH)e;>wWpV zYTh25X#E`Za9MA`@9Ev zv%^a{ESKOU^U-`4cuOfM!NUArm%tvNqr2)O+a4K$DUERIN0HN(hVGVyyLDA6R`>ip zp#ybJ#3CBploQ2nuCz|9jZws7#Z}=Z4LR0~)X?J;y&<{&eeiH`fbV`VxPRw% zk9bad+{)sL^B$$i9H=OizA+8?t9`E$&z$!x3=M-V)~%ja-W(p}`?G}$rr+z6_& zGIS~_VI8}V=sz_$ZY;6gZUo;$&Hx8=_hVh9>oy+rbRxLVUrG-668m()%zo7Uxi6s)rvd2Tp09 zX&>0P1oIQ$y2{N0Q<>(7Hpkl_XL&0^JQSIwIH6pqWEd2x365-Dj4811ZnUEzt=r;7 z8m28|sKGp^?SdfMF%q!|Si1!AB7*PtyWbnzLe?q$NOW3ai$Q0@`+Mk$eD{~XHseXn z`0WOxx)4TzhkmiP9hs38lUu+Ke@QGp8}?J=?HosG9`*UM#%i?$SRGNE_E#uroZ(u0`b}dRu2}9WFZd74!Pa$8(VF;;V`tl*F@b{-?)6+guJy) zPRa3e4;th~>pSPdX=EXw$>Iwmr2ua44j~cN(GJ=COc_Tu?{2f&g(O{K!~to!k|VKu37C}_Jsz04kBeb|7GOGF5G6;N$b{{Sh19mgoPkSR*=?EE z`wr&K6#nur)49RXBy>~{Iywvj<|e9AJZ{qAH%5aEckv;o6d2_EE18aAT&SxhI}IYN zyXBKIO|32*+ok%3-JvDjq3nF+T0WTB^AY2wo5l^MT-dQg@7YsQ?(N_*+UnA57)l19 zS&ZTW#96-vZGxhfxOiZ-4RG*OSuD@I$~Hx`UCM7o7VFpVR;FvMhnK>-*0E`N|w3pOQJ%s1C4QKL45OobX!qqFODv znJjg8pb4aRB(LtO3+^tNtqSqNpUiK1U>eOof;+xT@34p!kky9 z_Hn-Z42#`^L@38YbV|`o#TI{{SQE?Ux05GdP2d|tU&%EkN~OJ_D*_#Ksu_0et>Qrt z8e>93xLOQ(%H|Xgi0>WG^;ajLiOTTD7!=jck*qpkw;Z2Z^xY%s)WXb(h>Ir5s4^aC zFhCT%oz;E0?w^NB0pi$c8%oo4wh}nU!coi6JvIF8&mey^o)U_a9m;iLw9o`HbPvEb z2T}xg0P8OVF@z7M@Okl_L1B0%R$QZ%79zJJbAG=~V(R*G+WAMdVr=S}ZxE(Z$O}m=6@00APe|ax((c&^LV7f`jLv*B zu{2i+9ne=xk%ev&G^!R%ux)hjeY;YgU3;Jk?kb%NgOVv??0SZu{b(gB{3OBRR%=au zX0OZ?=T3Bcs_%Q7gce#>DL!XF`_6Q83;*Q1%>%B|?0lNeR$o)a(`B)428!9J4#!_l zPK!;eK%2GD`13A!{Y`RmdV7}FwE80C)^6VW54hVIK=V;YhSN~d4O`Tb+M=2%zZ#09 zvbJcrVH(BKKQG`kW_Njt=S=b|5*O@0Mb#8bEk<8?CG)>a%zVX)p|{3Ww=x$e(tJS~ zu5Pnlx_Gx?#&fnSEp2Z->!`beU$*qAp-jfnEUGoAojmbuU3%8;1@kOV1KOJ zyQtsEtb$XBR!`}0=FQF43hUvPDE%VDL|>R6B-pWvyBUJ<%Q0kueETyY^hn&^O5UUs zN{@|L9n7rF@JArI`)b;SSwIhMn@(0?SvoCTYZkO+%(lKBvCk;zRM+2p z9sfNgx-IJYV4TY-zy!Fut(c)5t@>Z72iyJZR^!K_%nU`|9>n5GmZs%*d&=G(cHh^v z(u1u&SV)SOmTI)*doXI)jU{(|dPESqc4O~di|Ss!M0RmfeRu^t)$KxTMCO$c1x%Wd z%$;=jt!sWPC8mODH}_ow?MMbNPY>L}D6)N9vwa~KlI8R$Ex#}ysQf61g@Y@h;fq2p zjw%3(?8Vwouj;a>+bo~2sDJoF@TF9+xH`;mshhqx0q=X_9fD($=~{buDaww8qpvTx zC0KF7dCP92vdsXB6~Z4s)G=d?Y-!SKYk-}B(R`}=`6yt8Aie%ct#zq7b$d^cFJ2#6 zG&tlV;>B_I$YUe#gsKD!=1wU}j!@jkr>iL7Q~L>o6+09hNxjH(t~$fRQMbK5`OYui zObUCl5jHrC>qR;W1>IGJoi#hV%gVqOA193y9V2sG?$cdzL!V`YR*!e0n&wNQccm#6n3lE%;xT~X>`%sw-uN%9}u0DHhg<>zQOZ{&w$>CkUY?6=w;qR zQAlS0M?(SWan@2)-7y}&O8nT{TPeKbmlP)Z6o&Lv)J4h3P~~YlRHp>J|AJ;=QY-2@c2;d;1CV> zXBVs!```G2?FK-rA4vtkq7KSy(X9_N8n6MBmjOo=LEoRZ=K}ka8N#Qkw~h{+?4Ow#B_32g(%Ow0Id!S zKJXCIkN|Yj- z>Q72O**(vb-cfkw1A*;7SoH3H;ZMz}jezLmIj1-ea3c2m)i08Url)#<=Z_6HW+OPY zUKbaY<22P*$xc)Gs|1hY!Blc6%-TQ9Ck0;lzsG$x)F%lh4M~Pxa!Dp)`%0lu{zWzb zg;Z^2PFtSaP!JCMg(|Y!fbBEXhLxp)``^}(qX%e$-xFn$D)`T)3U5T_M=iVk>TKoF z=lKhfo!brt^9g_roYRDjfT+YLe+BQkl>TK2{-E%k8_;VB3KTp_usommlu}89WJ#@? zMPd2E5$bga=aEna%9mI{RFhH49 zpYdwFBhhK|%M}bSDicZ=qm!$P({*3pENSB56y!#dOK^5OP-8RcfJ)tS{xw6cKn@43 zOIvXTN>Ukl_InckHRQ53`?uvQ?_I%R^FE8Ric#avF%1u(=f@xnw3caLAj!BJ-4*!I zi{I4Wl#7|&$X$I1s;oWC&QyWV7+wrJOZ-A3<*K@pR8yY}=a}Mg_8G%=WJUD%ivjtF ztHNDRSf|Jf!_hGGVxkxc!y?4j9Vq}lY+_K@e^Kg**IEnCw5OKg!ml*n6ehryi+H+K z{5ae=R##E?`1M<1aio=5Z>1->=B5B=e_d3U&h4-lPXbpHp@?m}N#CcJ-mtXSoVAPP z@hQmXj;lpo7F{C3p)S4BTx)sHWxw@dy#mH?x$+0Ys>Ip8zw$Ki)(I_hSz2>fc)gd~ z(WU@KTdKM(DlIE>f-JYi%TC1TZLs}1dSh#LJ%L;T%qCx=xSBbIeO5jLJyX#&AE3zW zij5X@SqZ!rZDUvNPIck5J|_B>kCFGM#U-Wb=@1JzZ7zN+mfve#(xKGLpy)7zym)Z-I0(V2(3ltth3XEK_&mUQi7 z>-|`*xCH$RcbAPF?`2|;IF;(*!wJiZt0RkT%dM6Q{_|v>{q+W-S52hhB@z4CNJ()u zAbiPXL^ehSIC46I$Z7pKFF3d{uVem*9!%$6q<*~%7DxIn_vR2Pk4wiL&7pSC_Xlc8 zf)PK7+RC`AQMjF*DVCW+Uc8FJ6|q#Anq-hTg$fEgzO2q%%#o?czgmU}j(C7**^C5q=xAqh+iMp=$+O9<3lp^*>GDsp60 z*&)kaebGfYo0Y}Mw4hnXm(bv`zfhaPz{$Ib1FXo0lP#MjkkVb1s(5JHo56Y3L^rP+ z_nSg8$C@w9$4Tf5OmYY@XIgz&iLh@pEIljDrN7mUD)#1rdH{ns4NiU(-2g(=W2&1s zE{%xii{<@#C%wD;VPS$E6&xdE2%M3q-8Roq;z$k|>P}R!*z!mRh_uIECu#tp?snj}OF||g_*rz6o<0~^%;gaZx=YSlibJa#Hi?+?-GQ8`Ig^tK z1R;GPUxaJv+0~^IjQ<4rBC_$^qf$8(ST@3J2=z`#E|y=^r{rMhi88evqz*yKazDBI zVB>gj(Gc9k@-=)Y|7B-450{7At3H$XS$%Ycwe~ydgnwI)s}Xap@@`rb%jp@XI!{~W z@!Vix*Y=Hs|D^7u>w?0E-{{BRai zt`3Fo9?gZa#rEqnsI^mCgvgQ1ER&m0QPF8wkK`(;ZA^9Q9J!Sehq;^UMZOo{G^z`= zIdJT@4IP4=xl|n!Hx1BT-l_F*M~=%s4zX=mUQFKpkGL8EMV6!{BLsv8NJjWg+Y5ep zM0mS{5^+L@$ubx|C;BAJM5gVA2#mAc{)z$7@ zWlyxxZGu_b-tMVA61*`O`1Ik!hrN{&Mh484;DIgZbt3en#`DUJC^t7ZAh_m>(*(Vt zq4#`%60m^m*5HH_Y&WBCvanak@p8jY&g#%o>NwZL&*}P&3EpEEza}p7zx|zF`H+Eh zP(ekq-Z3qpI@@PYAIDEjx!$2c1-?%{>vO8y-xpaY9_{Xv;(XhQdU(qu{|*h7HZw%k zQN(clOQtUQiYryRy8fTY7mS)iYMj@0d~xKBu>@83T*9=Dmk^?Cg6Xm7z8R}+gA-V% z;&TU^l#V7dxmwku=HiM^ zZ#(Qbux*uGJ-9y=QOUQftWSR8z4y80cwAlLu%f3^Ok0cO-E}w#@c1*$7^IM*eX}~d zvi5&5_m)9*HPN;xgkXW7!CiuDa8GcT;2u1pz-_fDNt z@BMjImny3EUVE**d(G}OyL-$r$9x-c0r#q^`c`N87GRX|K*G92spVvhe$>ABy=z2Z zVDy!qTB*!%=!{?^c|f$v@ik#?%`GH}=~Xa=)javJ5?C~9AScs#VS;*=r}O*79buep zBiVk~!y_Hf$94J@V#N*X_=3CAU1>l0_^9_W+5YNyC|6A#UcRfMY<0jKmWQX0}kYZ*yH4QVJuHyF&;^D7@7iS}Qot6Z?=nmll|R+$3Cq{3I6?er0EL8DojHoh29%Fw?SwEg1F|HustQLO#rN$Je;sH{Q?|7rlbY$8yi&YCWneb%`U^yFZyF` zZ&Z;te&F)jv=BK`BqRwm20ok)Ag8-rTD!TcpNDAM=}vY7)xgmP6qPl5Z9QGEwY9Zd zT3cbwSCZfRF>ARS%xq}6Yeu=Agm)EBH*lF5Q+o|PHlev)%!(a1^uZqG_4W1s>1nD} zoh=;S-qAr^yE(qo7Yb!&HEr2d6F_U}(iUPH{pCnRm=~^qHC1CYvoQgZMkC1C2GaOu zL{le7_wX1QzUX(MLNhAouRp}jg6jCvBZQ^>Fery69)7Orq5ihYF-j`Z{cW>c<*)zA z1^8j#qJa_9XvcDO2Oaf1egglg6ot4;FUf@sSEH_WR&I2wk;aWa?JoywX3ztD%iwc0 zj<1QsX4yK9)TOz3QkC21;--kNj4i3Y#Z#*05r&uNL5m}OYW7B#(-c0T&;w;E2JrCt zTgKGR{Zxjh71I;2c;^?0WFS7T9$0}6`_SYSgRVtLon=|kbT~&2O`&Z-Z#o0JmH|yX z(bm z!Gkx_Hgb&j%_p1q&WwdMC9Vujs^k+KoG~i4+KJoCrlpnV00aR6iMRLOs|R-2Dm(6} z=a)5%FVSf)+VP%ERf`wk;28Ip@0!=xQd3Y!1(=I0!PX~4eD09ts(MNGt{-t1MnfS# zr;svGcpwd`qgOH5^Sw|7c$em}2Xa);Me6(^=H;#z|NI@TjF{B`4V6iU+n4`nG0Osy zt3JliTtLGKzi;WMQ<0;P6-SLX^lrkOtHyi>5viqm7vHV{lA8q9)s(dD3Xd9 zrac;g+dZ;G|?XhBw7aqST>edAE@Ji>_e70$i1QBX^<@G)MAD6{PLA zg{z4IYH__4-g_C6^t$UOEm+!pdG%{wi@pDr(p>cr9lIN|(2oWVbc%5=&MkXwfwf>> zkLyDzYT9Q>@81}sNdkh?pTZ%)J1T*UvO2O2?xeq4UK^m6@1F-Au0z5Mw{9Wg!1bLU z5lUFOj;e2&7)~|3p6yN$9(#q~f>NS}g?|4wEm5NW`t@s#*#e4JNr`#lNLwnqbF`ON z{Pmfmz|L!+Eu!8nlQJ&O(A$glO`Bv!xfn^^TrEb61>i0R#@@;no3@06K0-rU&nPOh zOs>33XFO=2fai7&NdsH_tz2AFELnTIzyAwAyQ5H0#PSit#DbrvN+E>2!RzzESKR$- zy~FhO_cMb9H!4>e*L1(z>cc|kx_?F?JjLFT(3#C%^q-p@1CL_!y`!(#$v*jKU;{?Bk7j~YPY0pL1j zK0HoA>zkPqmCKE9ePJ&wYo2dBS8Gq??GlX{>+8P&@db99Z3^>6zpCe{xYW8OYtEIC zf=$bPi9_;?OM^!>i+xufRc+4^@?qsv(*S#Xw$J!IIG!028N5K%HCHwS+<}c5U~Z~h z%{G9v>bdi(|@WoP89G!5NaI{Nv%DgtH+ z8-@nP7CR0nDTvQEo0`u|RZvSN^-3OC^1wSr-yrO z42mI_ndBt(Yd&id*Z_9+J-z_L+=u^QakP9C!&JnWF&uTVWM53*C8a`za^Fto|>N&ihwO&!zAj2Hl$< zk9$?pv`!a5^aZIruHl<&Cs654`G}0*4wG$Ekd@Qn^&YP8&n7`L^ur<$5Yn`^Z` zh#q>S(P0bQNn_-7`^FVF&2JSOugBBi2YYbCvu;x&&9zY8Dv{iolE}D~gsuFR8_jli zR95k>y9P|jK4dCdenNsMc$=S{P`{u^Ukc~}+qFK6{wn7ScZnUVMi0CurbBKc+Qmmm zc_sA5C;gB9(dS2;0oC@}ZEEb5r=ok_ced7;Eij+Xy3WeV-mv>Rz`CfUk=W>xEXd>y z9-e)>u~?jGP@5G?*rP{|XLe3c@?@JF;K{SpJy9No6%p}SK4DDL#t*LOCM9MFEY1=W zHz~pr1fcuX!gaKly<$P3>STeVp`y)puM1f<%bwq4A2qcLYt%!0IC;Tsk%2)TaXW>j{~#Ah{%;6U$QK(Z_4WS84E5iNXc&J1WEuZ~&E6#w zGrWg)x_1IRmH-e>P*@PFAoKE7&7uVw8j z?|9p9P+Okx(*{7!CLW1N{y$Ze(TU9-Trl^cBCSeZLw9T17#bjY6^4)ijm8)RlCJ=I z7r^0qzY~sp0P$u1v_#1TV2WyW%u{*xgiyXzDgb|LaFFNI_kTL-Pml;eF9Psf%Bol} zW^ov~cbm#-=;jzmFnQCCNNEBoVaUd$Kn;pZM_23MQn`PHJcI$1(>LCOHu*nL;NJ&x zJ^*pk;kv2&2den*%708TgZHElKXV-Dr`}gW$H&y# z!B(@O&sCNthTh4mHsrUQ3do>E*XF}ON7m{iGtHtwuvRhM*`9y#N-LSc%H5f><^FCA zP??M(4a%!VRkhwcZDU)fp3lD#eEa?y53hqV}|Rwb;|UC)3DKpheb2uppg929J~~ zx1v^PmUW1AoS1dMcHX6mNjxW2y3CaRm>Hb z27pqTeHEL-Z7QY(`{|H-ZVvfHV%{lA!^GE7Q zf3SNG_3FYDHEsap_ZAJVRFyijuOnC^({0`=cdp1u49TjnED>}@GKbKhvSf6PUVTe0 z@$rERnsCI9{Gq&_Kz#j*7Y57L$lx~~Ju!6I)wBsb*Jo&H)MG8m1a7Oe)~t{8$mM`nWmzUUF}fYq~BHnx{J7$In;Qp9X} zdBL(}MAh%o6~2{=7g!7*(i_lwe6y9|&6D6?d=-SBESXBL4nGy@a1&eIP%CS z@N$yrEJ=gkJNwWiRbxYDFuy+!=y1EpvwOtG)c#@$|H)OIF<9tuP^NdPr?d>Nm74y; zq4(x))G6U%qmp|D1NVt3@!U#yWrtNzQMDo_E%`_C*U0Tr@Q&W=I0j_&-(Ssp9iZ+S zyu+a?PB|o{zf+)6dl+(XU0y7`ZHGmuUoGR|$w2|(%=E#~#zhPp=}_U0evIn&4}lu0bP-^>#~}G~M<`c> z>bHhuVAp?jc>e3IZZdt@+Q&pH^Aimc8)-l|OVhl%Lmrc!e;h!;RN=Dg_ngX?T$l^Y zKZPgMOTf#p@Ks^pfZ_vqlKJJ{YpWvSMqZePZTJwq3zD9<46yWoI@p(7cR!hHfPB-? z{3P@??~v|M8kxHnh+^~+el>3GRo$^nZ!|!cut7X{h@-&;xxT#YsqSU7h%PSe$*Cyu zgC1C?NY#Ut2vCc-u9}Vs@h#n*>a4L~8sXLBo@M(1yI?lAn3wP6LGf-unG3wgAJHpc zTgsp_)?{k>QDZDv{@e49KB%$_u(H9wQkl-xBCKD)R$ zv1JmhtQlP#E~GNnd*htgoVd=s?eJOAz2#Y!60j;5_% zl@V||a|rG7F|sQaI=BeI%jUI!<`i?R6I^Z$N!fwMHsaYX{!eBsmYJ!kdik9OCCG_wE>azEMoq#9%u*}B*((=Jo_%h=>9QWAU_2QAw>&P0plbMY z8%G6-QNu@qF&4|BJk6W>@D|O7FJQd!?jTkC5q(>zDJ2X=J~DgQn4i?V^@pRNq*J-f zPk&xS-L@V2gu1mP;9-@Yye%2FPH%NLK<0vLZd}&dMv?9xb!paOFec;6!0pjqnIWNX ztBd9(?Ks$P^{tG;$W-WGJ*0Q`GGE1LFh7NNoaVw?4i^o9eYj7Cy)3;yKJ!Ohy?;u9 zEy@}5%bADzk=1j3EZ9E(yDS8uW6ue}_O&elW6B51{!JFDwkqc0wi&c4hwz$3x`v`= zU6Upyk-%W2?CwdZp7eS-%Q>4OmbzKi`@3Zi`ad{hX^InK)WzSb2D#LF2;`{(KNAvj z2X%{t&nf>l7M6~k@4yXeJY@4WWHOYtzEnU(mlVupOx5Twd3*4Jux~v&b`KXLm{Bnb z(!bWuW6BN-93mePcUwEUADhK9dmUr7XlQe+HOFD9-?U-wT_T2pG$S(+8P`^4be9ttCu+6bt2w7;R4wPEDjnbnh zb@ld5yvKoYSiCsm33a{`Y+foL07k7coS2Ia`-PEqZm8BT7=uGnn5z*ZG_W0Z@e`He zS3)Y<{vTL>|FY63?qXdqHgZ`%0aJCcXPI>b(S)RjJ`L03zQ7-dydXm55iBi9 zQpsdV{!+d`TtmL<)Jm}rIgs!vQqTr*2I z>pS!ImGjmhMh6gXA6H^c%1L4$?ODxyPmeo19y_T>P;P7mVjE*Sy(P9>(ysc=PrjC4 zN!vM&CjP?H@h{S9rt&6uvmo%APAGpMu*H;EygEt)EQtZ)V7#GO_W0RMN% z9EL#h)MJ&Ga5n8}peitCzCG3cpqX-Cb4^qQ;y<_U8y0mo#I$aUtT%+6LKJM?s|4F0_jeLt&G>k& zW0Fth4|mdCg7Mgp5^}-`Fh4t_qyC0g4CH{EwsTCfGOJ+YiBe-R`l3~;DWi!}gU4hH zb$hezl{w{CSEamB&m#zTE=W;KjjH~r!+v#sbQ+Z&>jYZzP)OjJ#G6?K@z`kqm*{Z) zA!6D&bb8D-v!5YagnuHmJTYU&KY#NOJ9vv2P_uZ^%~@!8`ECHFn%)LcJTm%N@&X^q zHD~%VRm-)Hfunimocq8aEHqVSM-J`bC5A>U!>8acKfQL5a)2ocgr?H zVSLNApS(ug$!rBm#d-zlM#EmpjZPjV*=={DVF{d=y=wmalC=cmN^%gRK6Vel>$n9ILi*>ZNSSfmTpgYyegyb z(Ck+V;@%xD4FfWkMRo_~kD;sjn0^Rq|60+fM9*caD8y1kr(R z-FgyJVy1jPew^JhTRiRRmdAqxT91*v)b&<#=I$3vDfd@7ISqA3jl${x)vj<^xeUy_ ze6LSCw^G*{`y}RR60n#A?+bkvM0#e5a1g+t>2ZjR(AMtrM$mIAE5{-sX{>mQ{ACM-3wTHQG#DXt{OXcn~=p;*)f6#%U66VoHse7+zV+ zxon3^7?5j7Stu{h$-HC0KiLXIToqjV7HdsgZEXReT}`_b#>;zm06j0# zu_OqHocFPq`x<-N!;p)cnXO&XzAp${^n{Xw&i_m%6W!%Aj8{a><@1ehRV&+8&ACf9 zX)=L_h+b`QKN7rNOj74ECHCVVM?5|8lB5aeGjti@d8XWeYkO*&qU%N(_IJB~|0AZ} zlysbV+OjzHu}lx-*>>87Bx~@6MvvWhvw+1p<2_1z^UP)ch0A0mU8Y#JNeC*kvJ}ZQ zl0XP&Drt=)I5_QCpH8(i)z>_U+aB|x7su(ib_N71rfags8DL`*SM6v@7hj;FOJ&IX zW<5kXU+29bak~+O(^suWe9o16w5kt7cJaEQqNP1jlMo(#*};H9?9o+nWY3X4+|_$P zv$7}k+<<*&_W!nQ~wf19Bt6o4PE`eGpqF4@3`zL@%K>fb409MizLQDy#Ti@`QD zltn6W<8jgH#>i=m;bXRZP3M&Eg(JBQ;C0}XDwuf^JW#X8AiXaEl16HG*U;Yj>sqWx zy|Odw_xd7o8Zui|&a3vJeiW3Ep8fy^s;2Nm(lx6-9?pOYPxnsskoXEZ+CM$HM5K2V z&HH=G89>UV@;nmou$4YTx4jVgrQo+ls5i}B^`=&`uq{6^PgozRG~TL9e``2>0Z=GJ zC?uw+v_+;Cd3aQ=j2GdxVV((1Jl8kR+fyF8AdTDW-vE%PN13`{m>mQ67Um78;lRn}a z*a4;81F$?j;nxYF8DW*4xCsymtkc@(AUki;&jve@@;;g-gK!YmkG8h3bi|Q|LX9R9 zCl+`9)K&k=i7*PV@sIcN`W{UtW4MtS*_ZH8;ce}ggiuv{CmWwjhP1}M7#=+!=U7Qo z;1zu?+tItKcvi_w&;=Dv$Vu^My^{AMyqxcFLXZlN9)TpF`wlYJKY9A==j`c}rGPri zmAIa64RT^FGlpP~OI|<4t_kbD3yA#YN=CU#qD9Fpct`O4@_K?4y7o1f`VLdYU3_om zlca}{v*=AF9q|Xz=;1j=(o>|^4$*!k3UNmkUmz}Qc?F(EW7@*wt~liV;-HN0wKp`c9w+I-EmHqpIwvJyUmM0W!&(T7{C+hG zpsowND=IeMZ!+fGPW=X7j+EU!Z*rniWImm4FADR|Ssy<6fAHkfwp(HT{j8oi@QA_; z-@O!!iu{SF%mLf;#^B8c<-O4}Qpvwy|7|sA*#Fpm;7mWHG~o|H@6Go^%AOJhd;bxj zy>{5Jg#W$@k|qHc{O1_VgfXetzpse?fBI4xWsL7I);AS1iS^1l)RlLk+H1Vu6;X<`*JP z|D}_>MVELgTbA#Een`Mg1tI7Z)=iYA1aw#=m(l%szjMwY{;c26OBRK7_M%`>5fuJN zc-gllz7}fjWpn}WCwP2Vsqp~%z;2-N-2$9`ODFM$%D@LbisD(ab}Dbu&g%b~@P9H~ z6OfrCF(^9LXZ83K(Jrdl;q$PgirTzkX9ZQvOrQoWfto4toh%vxq2mZN&8i8w+4dP# zb}o8{^r<0)YM)X#bOEJduMI?_L%F@Q^3mJtR{oEQUjz4EkT_HgP6@;~{_3_23N;sQ z|BlXvpfaq0IrDC(9>E~gf?8SCsUZ(47M&kbfsa+`W!W^Dqt#YLiM7zvp*U#X@tjn{ zLzG9_?OPYVC9CCR1~q;M)&I!_FoV|tqhnGfIPJbaU-4TgQCK*vz#k%dksz3a>i1si zSv?W4x)vk*nq6z7PRXPeRIXhDQtO9ELMvU%C;sy=+#gfopi@@RrQv8C0s9^2i@3`7 zm#)_lNss&nJe^JwUVF0PpLXWQStPte3D;rG49n5tDb3j*Z5b`wEqosI#2oe*&K_1` zYtX9rQJqc}kOd`pQvR`Y!JIRAPvY306%WZ&+&$QjU=0)tv4bs^YDE)ZE{HoLLTo4t zhhntb7BoU!>^{~%r0Qe0w<`w|I~oGez^x_moc&6+W*?8Z*cB8+hR#H??x3ZUDC!O| z@jZ;|cW@FwYr6-qZB_z82v=HVh~yTiNuHYhE>nNga0opvUud3c=UP7fum)vtT|Y~> zPavS1$$m3^4eMcR+h1ZRc@A|ezxq<9Ip|Yb%56mW5^Og~uTdC8c+wm2E1Qhho~D{= z_T0e`Ik@_o`^l_bsXNks4ITZs<^ILJ^@?!m4sWAi;>zk#*zcRJC`~;Afz^et|NBk% zpygkE7#Osv^EeZ^Bs~MmCUv=#+N!s63v zeLCI8Gt8hlZC|C6E|cv`HG*fLYfzx#?8k{Nq zIKQEYigP4loUVXDj98@ORs=pD_50CB1niNNsqAxe8Agu*olY*ry@WKn5(nDBsk0yD zlUa&htTi{mze~U|-X>fgR_MVJ8C)3LNnF6Jrk$e89lliDtux|hxQn=oQZE|BZrDIGrD8K@_hnvLltk>?UbP5D5ucj%&7_ zo>zUfvyPGImubr|2o_Ok8u;$lJTe5?*o0h_NuehY%=`n^6#}Bc1~Xp32d=i47}caakt5bB-3j#jmlsel z#CY}gXC9SH)$3!%pIX>5Rf|*5J#2;_EqR%}z`Xu&r@O2O9$wW)6@2)@`@5AI_76PB zjh4W+8b=|T*%bjUuqH>TH+IaY@nJ-XK3#pLfYiNL$;MtFm;g_p0vkkz z%Eg8~u*~G8IwcZ`lD8M!zX=2T`v4w&_H9o5Tewz(mei21C!x9QQvG?aBQ#htP~|6I zYgm70@(HJYVU+WJvl(L9`btQeqRfr&c)fX2)IvL&{|z6EjX@94H+OGH6Nt&47+%u^ zp1IM7Ga4<;SJ=Sk>_+SDkEfyg-sm{_W9+b(9ysy`4c50)AhGK`$w59qvQk9yTrj^~d3kx^{ z7S6JE1QSVgko_+f<<873$=vX7F<}+5pW7_p8Z#`2+yi|#s{3-rRJ;2-8FQun=%0}P zjXmKLEsF?WCm7<`o{ss=D5rtLKh*o^+n~8#OxmG+Qpj?y?86^i-i~cfO)uF7&X_xL zby&W^TJ6z`u67i-CMk;xM<7Pr#9Pe%2R@ybFe2>xTB5d@zJc3fE~4nOpR3cHdH#9I zNUkMK-vnP0hT&mw8KS68aE>!=9f2v|eAk}@@df**-;;g9S?0BM0#cL5Ph){(`N1<1 zOzJSoBPSs0-Bs)E=%e7+sHp1`ze^VN8k>nRJ#LWv6Z+SSJ8&*y;bik}YY|kJv-I3Dpkan%E4@+KFDwZs65T_kERD1qmFwBZIp3wQ>}qB zKUq)8Hyn^la^1muJ{Q#Z-Ap6TTDke}`SZ-X;_;3=c_oH8Kc$soN*9RXW(++uBBzgU z(^B|QB90MSo3aiwv0aW|Otjntf{$>`&t2UhkSC0P-JQRX7xc^EGo8VrPJw@jjZ?nZ zPVLiy2!cU;|LBCTvOzbktj?PZDeP`6R@gT{ZFJf}rxS3G5bPs?3+l(YcLO>-b<}Rm zxK7cVKHpMT9w)eDy8?e_M^DawoYE z+{Pclz+XgNvoU7j910gwMm8a|sF%s$ACU0M{J>!aJu<>JR*PAFLvQrNllXCMTn-4nUCfz+EUcsJG9@+6 z==>T7&mZI{)8>zFP<vibCg-l`+!cUvv>2$1lmW2^6$WK?ccIjN`N61kcZ z+$cyE&F{m4-Rie8+)UZ|=({}m?=$5gM5n*MCLRjpekkdeO0>`Nt8KRF;Gd2E*%gq7 zqO|Y)fPkM%Zv2LxM@wgN6XWKCy&EkX&3r_}D>k&dp=b|sc7YFmm8~=Q91`B+vA}A`Isl-Pz18~6N(2a@p0O;CP%WccK-BZ+Usq` z+M9_TmXn|6SCNgL4$uF^x-^a;X}A!3C2&wzj~JBCodt3t3&UF7TTUK?SPQ5+7Lmlf z*Gu{JStdwFWHqV}tcu8$4@mGeZxjlZ$csX=*n4Qk+&imX@ks2I!C>YpQ6;~20q?|c^>vgptU^JV2pNzq z7n}lM^0yzS4bDgrt=EhM9&LfHXSe}MIlJ@`lG{!9SMt&x_YdiP?!9B*%W)bW5>(Be z8A5oO0w$Vw!AyCdFtSMS^V^>*(SY$Z9kuMF{$b(Ft;<&CL{I+`=336XV3~DjY}z|7 zZp(~(aP1Y%m0Iyy>~N+gBNgeyZg}9<4Ybn8`NncHt;34u^;(a7l7fUtNF0w9<0hsc zK+R-P;~QRyxa@y8jH}dgjek(Y`62prH;MN%{VOXxfqpd;dw6cLo7UU600TV%b^4qO z%!jgcP|)>-U8pi;3RFToP&%B&&%ZF(?3?i~uEt?Xnj50WfJleqWh}aK!~tN1wzK2d zzW)ASmjX4phq1z;X>JOz1tWuDJe6D+TyAkkOEkK1LU=n14}Tm7JvrZ(4LIOZ`ystO z@CUwxLtd{>mDg39zVLC6lmY9ue9I48mJet@KA$0BT!T+shmu{e*(Nf7`KH@7?KKBg*s1xW@9Id!(!}5{K(0bzgOt3>KaHm(pLV+Dr};qzd-6)Ur7Xn@ zi9P0RQU#Q0;bN4Oum)AN?#Z!Qb<}mVR_+LaK(ql@L|a?Z^=To9V75zE#R9{h<8NXP z%J`EuKgA(a?ANQM<}1iM+uX$EMcF(-M~(bj0-63EzI?`uZ)2DD$6WU=dp}t9&-Q@b zioiGAH_Hep+cwv{{4CyH=K0m6iNkm3XaOr&kdC3!tx%Izl&*U-W!L4N)r9iTWD%l`@MR z08mC)$E+Gz0tZ30wlA?BA8p}Ng(u%qrCq8&_}RL<;)kv9>jXo(xp!FmY%+NbJ*n#f zJF>*&*Bs2%&G8QWaBQ4e&JIN(1KLb(&+up&rEh0A64WBtNps_rYwB?BDs-d%wRz!G z>YB}u{>z+hUVfk7A(WtuC~0^?Y+}7923Do9l7;{_`LCTDS+oc@hreLteONT+*9YeM z`BS3!g$lMhS1bLeE1-i%$?-#%a6U+4isk;NjxBIc0n`{Gx=~4mUBW8 zjBAfE?DL5N77x@wg`s3ff6Dm#U$O>A_-ZI;7MN1X{Bc~+w5s*U-l^<8QYMskN6Qft{s6N#e{h{E zDbway28qivkDFb}5em7NLUwEJIrzMUv+IQ+yaUSw+h=o6K7#jKg}JD<8fmoM8@0Cw z7R*37@{Nz$H=g{c3>O&%|4*b%a+T=6B5f1ggquS-vYSh@HU9xQ)%Y?;{tr0R1Q7rO zSvX3duD=6Oo8o&8&2ki+WSsB7l^qNKj1`p{H8)`bn`OUySOxX5&9k{vNG4VBFY@w#6q@$`g8TL57sC7NE=Q2UWc#Q#{DW`?!NehO(`YHCL4y(a~sI>Tm>(gn!UeKt_J@Sp2;y;*?+hARMhxTEe}z4Cs&l9*~rp`-tR9 ziFL4mDXo3zO=mM#rt^Rx0k=ehsbo;~7+Jg{U@EnZU(^M@UH0JBt4`|`_N*xsJN;pP zaK(&pcz);tjHS0k#e#6|w088sXh&^fzj?b{U~BR|yg1 zjWZKNc0D3gVrva)QY1gIFs2_1u{k6bY90t#3I#gN^>2=xKgwW@v4;hxaUpc?f4l}a zPwVKKrN5J#H$v&uG9_^}Ww2zIJdI_KeoGU@QEj~~D^V$Fv1SJ`N1euK3J zUhZb&1e@LD0`5FM8xMElc&C+=JVL7PV;@TiOpxB;0Es?c{jBy{XI3`nPY=FNt$bEP zf|ZK>=jRg5v}+CeudFg_+Xnbve{gqOmxb92F&w6lqHS;G9(?h9=y=PjZk~LPa}lqg zi#HTF8v741F}`z|sB_~AIhU{ne7m^ASpL1{k$X)afSvgl?1NXpcG6u8D-wHMTA=cL zQnfy_i$8fNkJ~Y)(r7pYA=?(7QcVuG_8IrUt-A=j$@TPyn=lxIo=6o7Jl;%qHqwt3 zr!g`Q8-ZJ(r>SN1dcLb=ZBcv?~MQ|^j(Jov93-`EH$s(WUTJ0;-Zr)q(z--`aPJLB$;`Cs+g2; z8wxn(gp#UXf5pWQoN8tDY4+}ZhKytmj{SvNj8U$0;*VwQ$vceGc3Nh%a5dP&#yVZC zqw;{?sKr7kff2_#>&1Qu0=Zps0po=WT+Ey=K4I{-7mtJ|vV@ zC^j_Mba_SYoCnH)FMVb%@T1Td?X%F zo=pvdf49ij#;STqXf*W++g~63L)J)0xV`t#3O;$N_aC9+l6C1es&6q+LY%y)U32TNdd4t=xId8r|H*rl;lo3?*# z@qRrZNJaeSZn13{foKlz7Pkan!ux410-;wKybw{Ed_n9;!NZTm4^il&?Q3*jDx3qQ zMsxHYEr|*TS0Ae2;sLP01hT07fTi_p!|C@ZWP-mw{YGn@ff;8Tl?l9nQf;1Amum0K zJ`mjk)36<3;d{iDlXK^+5PW|a8*r6{!Q^@?&%@X&Fsh#iM`FX$M@{vPv_Ym&j5o|u z$=?-|iL7hV_u-o6QxNs5opRy^R>e!)p^+-Cn0E2-hq{b8;UOK|p2(}eNkz;8o*;o9prPHB3YT?+LaP}wJ`%Fa$ z3fNP;LrT4Q!T`?~vNbDPjocb zF_t5}GD0XoM5A*sXz9O%upb#avfBWv-tjI@-q8j;(1#L<&Dh;wtl@$EM&SiZccG1m zlQ^?nHsm^54>?1y>L2k{V{dGj#N$yL5;2{p5r_otE#axD8l#P46ZMu~ zrt;SWoD#|VGC1@$R_<2!-on33wYtJMhR3M^I2qFBPkU9c2RYP60=AzjaB+>$6u4=U zEld2WVc|#RzSuF4wsi1sxQL3PmiCLezP5q;NX8^S8BGZ}f!j5sW$O!Dy2l|b*z1`n zWBaoK{P3G8Wgy}kL3!&dRJR4Dxc>HoHJ4(D`&Moo!Gh?nXJk7ku%ylA&g*#RC&3+s# zp4l$C?l%_O9bI0}_bgSJA^Mtig09#DaV7c%5m2dPRKwi&SL^W<8QIxZj0@UZN*;-w zC}LJs=AMQQ>w%6Mxa427FY+#1bDeB|t884RqB4m^)E&w?_Vc zgqQfb(=|~+Bkb^!sW)`(v27IlL7X@c;VUgsUKqlo)-)$^HuU*`pEs_WmZZTJ)Yqu? zaUHs%F7XC(!Hw+8*tm+-tefH0ChA04iRI8Or9pB+t{@6#o8s)h(Ix+NzXPAuP{h}R462{fP@ihXw}Tq&RwJSxjv%t zGg#}Z@<&L>pITZIq+WtTH(4SPr^j!+8BuI&J;0`AV5vRBHD7867)NebrQXh-$r7@W zd!AjvfPR#s606XgqhEt|Uv&MO>+Xv&9d;O0m~i+0M7>qPxm7+N-#>jh3-qN$zjuTY z`<$0YF3&{q!ZRw1YqhFdhpGRP9}z)zcN_zu_rO^-<1&};*s94+%pHV!;;me_Pq=k; z--mUI`L0PbTDXi-%hy~OB4-fAd;W>KV*e#B$xEs52VLlN&&GOn3K|N-y|(TzOH$kA zc9}9wQAqiCCy|UTPfM5zPQqT_2^M=L>^%X1}obciO9%9%cGBLf|~~7P z00!`U!_AYSJOBHUYl}jGkcLS`1%=C9b?Sz*yLLUNNrtkj~OOEFij!ZilwD2#ZzZj1VuX8H)f&bf`Fqv3^WBXFnJ1tDN!du`wg`%f;wRg+N6 z0V&uXyEarpbJ~_R95D8?<@O*W3%s8hX97hbRU%Rtj`(3s9qYm2RMo{{agxPVbP&Kg zeXmJR*1BqX%|WYp(+mlI(YdOK7h*qI5zCA8MyK>duLG-SO;zkj`_1lon=kw}hm5WY)C4*jxN$)=HuL!lV>BA#$W+!Vo29p0 zGV!IYCh0F05(ibBNPzL;19vPbU!ri;T~UZVzvT^CE5>o$KsePNK;HNOMNP#Rav0LWoYN&p4Rk zCMi9z<9vR8W_Udphyk;?+@^H7-k1KB8E#tE7$Bctw7)WZRjn@Panb1UjwDPd0CvrU zi4I&p5V0EYD~d>m>Fq^?SpUs?BqPXRq(V5$Uw-4;e?FnEr^cHnhDrklm%_&v%AtbD zLRUb!?hcU)I&k#(Nc*H(BF*hCPuJ({6D`gXwP8Y~hzxRm1>Vc78}WfQ^WhfRy+ekw ze~O!cLn`3W?v5Y8pe!-rxQP5bgn_Hj<=*gV6E6`)jnk3qsR2lQ^-$a4DbN@55M1sLpQ|lh?}u!Lks(x5+!;81@~Saz32GI01dW(U>f&+bxIDi9_n>Y`;Ig z^A*gu*H^>Y1+4xVl8Pr`V0e4~ zfWjVDaPD|&sK~>iVgh0<_ktVd!~$6cBJmLIFs4@;@PAQX}4S zPh%6;T)HjBOHH2Oh--az?YPOQwVVrWoc>vb3gaE@-IrF(8L6#@rI;MC8nlZ0UY3%1 z`I{|am?uEDu*(H1TX7K_qxY-g$Gd|WH$z8ys@TkH;~niMx~CyjdCKB~&3DXrQH$vM zLC8^Bd1-*_+EUBo4sM95NT0Z?SjDZKT{s-KGa5tNuoE?Xbidl;jY~RFvgKlTi55R5 zk=>8Wq8(7uruBWRUl)_k;O+MHeD02Ddab}gq2$)+xtSwpHa=vr?$W$ITZ_PmZvzR~ z?p2!3;p4krBLhPaERpAlcbN{u)8ko8%X6!=ZxJJ**xw=ZeY@~mj{FY1GP2fz?V%IG z$vm>j19Q&4gsry9wVOhv$SN9jqiYm@b_(4@?V)2@$C|mBXDw6qQRI-}m`UgJ?9W<~ zl+XqR!`{V(T0@e9udSjfd;z4x4*2fw|5tHm0Tjpg?Rf}E2oOS$;O_2&I|Ks38QdXA zkU;Rk-Q9u??(P8+++BhP26r1=haGsHPiRj-0q(4)AxSQ=bXc} zx2%>bS{_s={qHifWUDAr1&8s#nDJ4g$q*1;IR*eGkaW6vah~;t0+wg9Vt9)v*wh>6 zey`m34z)Rd@R2nrug|~P+x)7BVM8`QT5cM}A!ad*xFmmSbI*RAD4S-!{cC9`F~@do zni0Uw^NPe14%86UUOWETy`|VC!W;^vsDUfA9Uo)xG#eqKKYzgAO@l2LPoM(mK@-IN z_X5Yp3GtFiRR3}U9YFW`Y>Fnzkj?vek9LWYipuTj_lMDF=%qTe6{5J~+Mc;$lG+*) zczWZ1t1#Q(L<+Zu67`kXNTE@G0Yus=*=FlhvX|$Ef$?{%!jV?SJ^AK&M*0J`l;@X# za@#T#7fG`BO+kN0TeY$rBPCqf3jgv3Fg(rxadFg2m}wuAj_|E0Q@C8;4les0%L;LH z_T;KtYkiS5la-^7))CaGiz4(*>;AI6*z7GQ>d*gLk!sIJk?yxPVplV1he79Eq>Tt` zaaSoS#rHq>;GZnfpH66XVQZ1;&KTVZXWEaqA{tK(p))PY@oN3?v#M`e4XlZvzR z!6_mZ&$Hd4@Ro*)`j(-QN8R&U!gcFo<9#H=q>CnwWXO^!SmkS7okm_>oB1d|}Z9*8BILrZxweiE*a*+CR>B@O8-}FU)w*e^$i~waWl0$!-?6 zYT*LKWZmdjO-@R$wbC$*k!0SJ;CwvQB6|^B+`08xsvKN{LCb4Pxy@aB^{Cnf^c6_F z*|k@_gGdck7Z-Nsq0n?bVt+cw>R>kI(B@Z{y0}IqLly0EKX_wV0{S7LpjBMyo!g~B zpBQ-Y?v)P>RL%TsA(7|mcSq0dHCN4J>$8P{o9A5Xu}o`Iz0dGFrf7Z2!6etc!BpwF zNiU4`+U~JLt!QsWxEM_!=U@FPyc_>hbaMASTx)GwTK*qGD4coBQ+ASfiiNYLyYJ!1 zBV1f{aprg)7K&Zm2=0YcnVJ_T{L|XIvjk#g_@9wv#;Uk5X zC2)5>gQW1!|DRCM|3bX}kD=A9N>*RE9B*9KU{IbRFQQ`3K~zm{m+_PW!gZeQ}5xDnap~9Dd9_Nn=MYYPQ0klbQ*$B_%@t(W9$@ zOS`iQl197=ns^_de~?5fN0}RD+XP$^p!OY*NrZ!?@BzhnD-8d;U?uAJO-IyfTtHw` z?_aFyk;~^grsrK@EKsHwDEBG)#q!Syh6APlF`}!FEp}M&CEvo7&#MHvWkA0*cuSC( z#iq_kD`{|FvN9Q?0ubj>jEWrFx{ZWu*MPut=K4WJ70rmwwa$;(l&K%-4^Ev)v!7n; zoIp|8r4I`rp$t&FckYR5Efld$k`B7b^kih);=Q=qB zE#>K)w(_DfdbHwm<_t#jBSgT4^vCRi=%HGNp}V;gw+HgF>oQpaB1wGTVfopRdv*~| zUSl36^+tj65Qk4sQz7-8-&c8RT<55{|54`nWfb@9ASiLLbN1vkAoe{YCEn32+MX?4KkL6NDo(cqJ3`S2nlWB3V34s zD`N~X?SauthU1@T>qVJEoNB`mG!M*(9XpCSLFE!txT-h06 zF$CX;c!kuF`@$rpHjn?i0Bjq3#{A$Yhs1+rx-n&aeRS~tEXo33^v-A4_0r5u5A5rt7jbZ0pB{g^nurp(Ljk4jN$5x)hO_If6 z8lSc}{DO!~0w0UHRS1_)D3+Wn*U4j@L6bq};z&1eQNP?xAoBzI!G|?!jG8!I>yV@q z`#HH2G$vVCH}N*c)k|EjeWz{Y!`0jHoL}sx>}WjhR}MHww5D0;WgckLq>EE-^)3^Z zEAIAU=O7YWj3fJnjX;N}39z-BZC0^zKqi{ZO2! z2$Y<1JI820J9N83fSVSJhxNf8)q(q`6ZOUgV6pxBThd-NHhC%yzakCCWjfDh!;t+D z9Fx4XU?dA;+_Ls|zaDYniIk?ZuC5rqDU*V%@cGuPjgloD6y$Jw6Avx7%LtOcB1SlV zwku}*OKl>)R)4wqnv*mQ87&^BAUP$>YoRSyG9vuXHe+Z8gt+;IU$_053KZ{(pn@d~ zqRmqH*4FB*OUu;+U~aAk*Q!dA09@=BZGhmjPR;3<#9es#!YY%$nFh$MO!F-#%wZ*u zLTp*bs#96>pOVqDQxv}WIx}k^Xn!m}`Y}?*i_f59O%Q@!r#a1T=!34)fOhazFq+GS z_*h`XoXC9iRn~e_e@TE1W4)>KH*<%|>(|&ALiMeCZQ*aG4CHA(?ldTF$yEFBGZ~0T ztUu_YSb8?qCU|5MTl>X*#W3ULkMbURWF}C5O08Lvf~g2btGy<5>r!qHfv*M~wfOQY z{Fx?Q=5iX!pz2~`vC*sK*~H3>C=WdYy^tKA?!7BD0s8ItqcVe6l~6~4=4xld z!&9PAeV^bB9=bHz{xW3{iy+1qXr>oF28PDk2t%LK5xI%F{ez4U%kx!XWp6eTc+9+g zY0*?&widLiOpD=(G-+CNE@8sP*@&aUNn82dRi^VAKk?B`!|(~KJe1N_oA9gHR&>JPGjWdyS^Bg52MNUt^g_V3`cayri;W@(<5#JALsH9L zCAl@`!B29s$>}ILW59HU3Uu@09k22!Zo-qnlb3QoAS2m#mtsUoj(mk|y+1npP?JINfBpC=!%@O6o+XzSV56#BASu1EH09Fh(1z|yqPkq;g$O~1~iA7DMa7fJ^63G z_2mTI4dp*@`u_O0qt-?X(no2}L{vC&j{FQW^&8x!Xo6D~$B-$!2^GhHf_}+q{0jpR zP4SUX!<^2+n!_g0CDVt5ZKaJn@Pw!(m))<+7ge+h=6(7ofv|yX(3qFq`Dr?6^u?zD z$*<|@71QJ10Wt}|Ro0#1%O~p7WW2pR`*@#Kc8j+0jkWtHmG&L1V{1OojuSUWm;#=i z3GMTQa;-8FAvfG~jp(}(oB3@*Is=h#=3HN}TjR`Ill`x0o>ThIptgH1+pdY7NbKl( zlm?{-Q_U5LSjX6SimMwvTG1Xm&OG!eYh;L9Sf?rOLquc8$%%y`u`ig$ZnrajJl7&7 z?kv8@P{wRlz|&OvbXyWh$S;>NrpSOd?(V^sx)dP@WAX0VQU=PpG9Hw_ASrw30o!V+ z{e)sg0_9jU07(AGjgCJ;rhiM;@$e>Uho5hlV{SL}Bv1U{a!S3i3O~<>9x8mG3Czfz zs-R-{b3l-^S$*LJ7$%*?UI0^|y3?L6=3+`Q>EXj#{4*tYs@YXgWSY)93@gB1Kpo=# z#yY3&E839CQJb5gp7rLB2D&bFxMG+?S&doKYO-aR=bxu#(=r#L|x5uot^~@rD)dfnz1_VzK$0Sw^>tBxs zjB@}=_e915o>s?C1X3F=V6>y;F+P_VJjnukKIx+KPra30_Jyook&~VFUzQ!qH6G)3 zXx$gRN)xC2WZ`qoEkR=e+3|_Sd%R?V7;J*c*6AUq95`+(YDIayA&qLC!+DJml$Q|Z zs!Lxs`TfyZ*|gTE5~-{i^)Fs>6MfZd$2tf)l~{-YVq)QIT{|La)J%}-IaJz9I_PYs8~~zOc!-O z(F|S-OPT2FpDWxNayUlC*SEuYw=NA^1H^aaK1UvIItL%PKoLdQckv4-;E5TZm)Do~ zf)ScYSYA8ABfHb?*v*-s-oJw1wCXOc4N?R8s%i|v(y>f#?Wajm$e(hEx4GuI34ue$ z7X+Ms5YqebNQ>>-7xs&p#eW!;AH%hWNi7~?b{%IT8Nr5hon?kw954(N1HcEKEARA> zlj{0HuWCgbv&%wM;N?->*x_F}?-*nG{St{8<)S=O_#!F#+zUn_;StDw)8fbS z4U&)$vUCJbqW0c`B>UpwRU_Or`d>PB{+q}38s^1@?uJI#tlECnF>LlKQ0^u{n-q0a^Jt1zTbmGows zaS=U!a>RY8jNPW8@T#fR$HNq5wEjIJv}YI#DOjb2)dPWzN-ri?cBXsTEoM9! z`p1l5MgaP*)Vp2zzJ*@`IU!b)u<8$bmlSd;A>HVT79@O~Yi-#URdQh(1s89X;41FL z%U6a;7&<3}cm=f!xcB?KSd| zUvDeU{{_8Qag_;}nk7(V)t)heGp6}$5HZ&}i3Pn&qe9qNLu_>g*gUm^6J&0Y5S}&} z5WrS?2H%eYHDa!RyD&S36rJz4_?-WVd#Z&&snp8Y2T zw&3}j$iy_Q>e%r>%Oq=|qc7f&1F(oqoKc`{!~83mBO?7Ft0xr+L>xmnd{l}~j0nVR zH&KltdSmOY1AiFjcIQX7rP`qjE!GDH#U#MCI5R2y=R(sT(|$6e102Wa(*x#SrXP?=~);cL7}2;_}IKNqE+|rR6aI8 z_;kAi84`S=Hz79FN6)ZS8~m}^jPJE{ywC1S;~HL&6&pfzT)LX#{4Q|H-{o}TsvG!j zrl#)A#WfF^=}40u*11|FvsP=8{$pS4CdMM1PWP!&+!a_w?nvzSmpLCJ(>s0VT2cD6 zC|WrP`phY6WH9^6uV!UR24dABkz>04kUFw|@O!MN&9MqA=|y(*kiQTo&!!PyCH41* zC!#DRU*y$xd#nX}6*JKqX1ivXek> z>~jg8>ct&#(xV1&(bZeyvFe0hEmfC;`Y*6U-rw}%{eu4ZKzx^DEJ~+H$LwKg{aB0o z=rx=oSRR!2T7f8YLbt`J16{u5QP)7LA@v|DL#(_ugH3cEHILME^A#28%jlmWujVdS zA!HseLbrb~L|(N#$BaVN;Gq+I5JHz)+j~;!=+pW;cF!gvxXiP)763Qz0GAO|0HPHF zz!-B>6uUlIZvwdYp9Bc7r~R)10=iFAhh)7EG?$Lf)KY6Vt$s5upE8cr?@jpS`{+Kt zl)A^t4mX-TFL`)^N0b-u2`+Ek+*1c8`qI-o@Eh0c+E1El;6#W=&*zo1kg{nxH!*?1 zX3Hk74Qj*l=@k_kt#U;_;`WO-_MycUGqcv;8xk3DqewYt74SaxqX7%U=~c)l-(!!H ztr5QH4PU4{|7HFVpyva7f9rkb(Kep2z0*6LiXs6Amh=wt-b`zDB8KhnUQBDFqgNDO-Z-j$jV0dDf4} zY5KoM0P5W1tSK@;wcYj~Oyr{CJ@Zc{U155&-wwNR6cF!isZx14Y9Dz(&U~0wf)FI5 zoxj_2TJ96Sx7^AUc72Z*Vp4V(=$|>#>tcpLVrGHG?ZzymlUK3c0V$bl@W=>eQK0F& zw-oimnKsr8e9DTur*9>O_0XoXI|VN2FitPl>y9eH+y^tRf*t)`!RdXX05NU+E5XQ0Na9r(gxTm9P#$sNzB1KeuH4KS* zEyz7@tF=#r%)}_ZRdl7LGwb<|HSMcCV>9qbjBL_vOgL!+lsi*nUz=u2Moi_ijC;0x zaw6)VRJS;8DXX|U9%nZWK#pAwqN~xeCFTK}0ZoS0(}j_h;xkrr-pM!-wLU7A3BPx( zhO`BhDp`~?-KGK$wZ{qrG(+9aK2qYij2-EW))+p3M+(Jr=b}$1`>chaUHL9ZC?^q= z8FaNp4tEt#W>G9@40eh~T?b|OvA3*5oVwrmuc0q^iY@9cN}}mV{`t@H7y?hZP|4f? zz86#R0yrJPYfgYtdXmLTZvoI`Pi2`-ZGyWAgSGR0?03)F(tykfTe)fktA*=cf)R0n zVplOQ2BL6s7Qsd{KdaWLg1qRg<3r76WQ|0AC0*(&VqX6h8(*$Akv=u=p#qYykNW?zFwI#&$3za4zwtlTR1dgz62 z_lG0*j*YsXp5*xVr6y@GS#p;qlZh)ZD@BGF*lzG-Q(CPLmuJl0Y&A$8(g$POS!Q!Q zP0=BGO{nr5;*aRIM;}kcIRBVu{qE+0Sd_FT^-3@Ibo#}*MFGbuoohVY6jP99WT~B6 zu0LXxA6N{qy;_#HrOS$JoqR{`7|s@EwQIC4jrTGh77|u`^`qK+!EiurnL~E&an%yl zE^(yboQ;WV2Oo>-3|5l`Kb`f9M|PsC>JI*7O)ir+>LruXAsZ)qsFBNZ3nE~Sp50Hbj04l zU@{JW3U-#lYWljWu)c>TNg}H19N16Sf_>6{W}RGh&on&um}D45EcK`TYFj$90rZ}N zJm3x4PwNNeBN;awj;KF&w3{ zFE~HEpu9A3T(z^r6nHZr7On_1ML8?l{zP$L$~i!2)Lre&2Eyw~P3L;&Wy^7{aYzNv z-^edZiaV`{Y(}${a!-?e-WsC(rL42MDs(0&>3vq$ly*yUHfC~1*#a(Z1%C&cCTko( zIHGK*x*vMR@uFP{u?i0fB%L2T}>lPVI4-re2j6)vlrK}{Y zMX*iE-kZQGQ$9Yap;FPE?K`nhlbBAnAU&*YqNu99ju&D~+6)!s=1Yn)Gmkn3#`|Pv z1gE@o0PicA*w`;ctLqy#IpkcteH9{)qZeqrx96EsNHeh6qKCz9^zyU8bgi{D#V~GC zHVJ2JeUDZ=a?tzy7f)>zQrBnwknsxh!&zZc878)I_xP%4u!-xMEUQKf3{#{Oox*Gv zp^p~hVR9$p-s$KhqwNx{@FmigOSR89zaw9mSLg9cS;vAm7HIguGbHC5edXYhidup&vG8f0r{{TAZD`>ya=^4!9lj zMqaU#=IY}yyN+48RL&1IGGz)Ce#Ho_!`%=;YL#Q8cMRrwbWN3y(Nt4+2QzMg&Q{n8 ziw!eLyAg_ef3~KK%8WU7V#@F5zcnxVx|Aex+n-HzVJ zV5O^?^;WT32P{1r9k`P7p)U2(L*dU-o0()u+J!bjWQ=k*7j}tZYlzv29zvO>DYUhx4~UlXHhi2nyQMIJ(GXRj>ihJ24@6S2$HYn zE4uUT;PG;PcP*>h=sz9QV+ql)F_&~^zrzu3t}_X}0#;%bo1N8-$GSjqvT#%88#@Cj zs1j)Mkiv*F6*Xia7WW@!e-YPc8XXW#B4ZR6?Om|5}R z&KPx}gGL~ZnKwmxnFnLGJ`otN1E7!(V#mp`EiQWeFg6X3>*41FG1#cE6{tw4Xj1k_3NWLwXrf7Foe0Ig%G`GMf zt#eh7Y}XTm6?AyEn~>*l8n{xtHmi@giRd(l_uLJB_l^IXKl<0dxl+5VpEtGy!NZ;Q z4)^gro;yBpeHX~2$63ZE`Bxi+s_l>Vx2HUef1rE}vCJ(V?-(Z~JC)}Mp>LS;l9KwF zN$JiS%~;Qwl7y%;6zO;m%Kyx0qa3ao7oRARtHC3smL;b73fdaSVP)IE3;2o^lSJvampt^tBO1h?S9-8E=JfCLS4A-KD{LvV-S?(Po1=DqjL z)J)aX%=|Tzs#GQCp4+GI?%ivzwR)eg3UcBoNccz)2n0n^LR1L?fgy!Jp8Y_816Ncj zVc$U@q!3Bb_bRSQd-E=yAJ^|&j)xjKFHM5?WZ@{jqhBPKT@sfmwptYye$20&d@#2t z%&(lulfXjP=v^QcVYYlu7JyDl5fHG)fB10!Gf|om&o^M{s!6Z7NjGUT=@k5>xbPf0 z^-K}}#F03F0PYq>AQNR%SU80H??2w$6c7w>5q$EF08!|l8v@V=x{6YX#L_XKgTA`O z-Dd9$SS9m9p1vD^-WIErE0n2}s+vDywx^J*5=LBH!;Ls^_D)G7_e1uWp-u7obj5U~ zTm?F;%ewu4M-EBBjq0)7ZWvCV*cmn(=i-^+#0~iiOR8BIURH*bltgIj=x8?R{PN%V zdBf4s=jY_)v~_kOdU(h}?UNBZKq*2?p5PX9q*h?kO8= zUk{r*)zsEX9Q`{~Kn=aKGu_;rc7dIkl~j5u509OlT_hjczn_Xmfl1cXa4D*)`i+=1 zDC%nDcJ}nVcNh3?eA(VXxxlC>n3xz%i+H8%G3mD2e`Bzc3??j;J*MUHKKk4^>%V!6 zDwkGI{T{=ED44(7xt%Be_aPlazr@nTil<VjJ5Ck4i7+yC*3+2(M$}cJ z!}=vNv717F=wkTa^P34Veg9jggfLjr|6*xE{_MY{NSl^`y!rQDGmihmt+FjftcDy@ z%|m9E`oaG`p;<`q8-#)({o7?+M(M5oGj-i95;wA+-MUTs{3c@u+6y{KVtcit?z^rB zkBrC5qmFcWG92rVS`JXjh-Bma$s~`-hjU(s`0IR!y*tLmEbU@Ww%ch~@B7VAm4)%5 z*-sqpY{itvLzGiA`OF-jLIeMKY>nVvLRzFoGmp5n-$PZn*YYuX7xG0JEq(sGGA|zi z_z0|#{7?dGM!L}=wNyp5ZgFlm9_-?}@K${jb)N_xCv0p2t~iyhz%~2i1QMfi`Fu8I z)lZ@}IRub`#rQs-*zDQp>svG2(JB9riRA!_DiQ|{xFRyYZ$MM#o%!`$>6PvnEilJP6^4b8P_kjQLu5*^6{C9Lbp*P$t{DTW0h^Fy7CbBOBcFI08AwEQHl z62LZ9mPfH7YUv%7k7Z z2KHV{a?#r$WRtaRr|!u*)g+dd2sD>UjZ8?1KP`*ZD7Y{yYr zHxur{dxEv@+hasj5!AtyAf6 z*qb;bOKmh4`cj9t26KKg5TfVtU5w4xc!HaN9L{ZJHS^OrseH5)P4PR;A)7y?Y?NDP z6Cz#Tq)@&Stpxfve&b)nSz7yTbRv;5+XVj~%*iBJA*hCZdBaa>3^%83$>gI{)qa*fNf1bG>Q-NHv`HNDwHbJp-Q9#Q0cyV@l zWaYxzqeDoZa6iWKfg>V(UpvHlwSQ{XnxdTkb&0()2R-Nf9~|yD6_cp%50-_baQd@N zJ6;}Y&Q?cta^X@kRBZBtFIUPZrmknj)$Ht5(xwvK4t~bg)V(8a`4@nW4JRm`g`}q= z4YN7t;8?Xo71)1JK=pDqx2Gc2n*>77Qyf7cJCh_IR6g7EAB~qsfw;KOBvsp~F>W%c zp_RLPI+Hp(bM6S@YYBgdLFDCqA(i<&sz+w#oNjMF=E`**H*an0cgAmtp~c6<-q~VN zA^!J6X>pi%yd9y~MH3OmqX;&9^Ak@$FBz&G&pVwGR_|an!;xV#pW*78o*kN7z&gS( zGoh&`V(zXwNcr({4S8pOkeux~0-|G!*}K!@Z#%FTe*E*h6i5HF14b#HNkoJfWf-eW zT+b~2U{qwBTvl8SQf*d9;nI5UD~y51s)eX(_J z@W6|{b}w5? zVcL2$EasCei0nUW5t8za3Q;Ke*DKNb$w3Njy6lEFvjM%D`1HoeB?x>Mn#C3U!!a8r zp`fz8))c=_ZPH(d%o?s-keX$jSwH^RQbX#T94ome!EzN7BW;}fWF2kyBHuXKyay8y zaOEFO2zclnn~>as4}Z<-DReIFZQT@J)4_Vz!0u?N1{GY{vE+p{A4+Y5JG|c7uDfKl z`pzU!N&J4%+L|ze-qF0LI7t5s8I5^jV1Y?w6G6ghrOYyVceFg4v(#AW8U! zXYZ?$qyDW-g4nW{zJI4_amV|hKA!e5LV76Di=k!Hg6qewj_$8!o6NXI8ceA<6B|Or zeNrTPE9qjJa6a@wZrz7IPxa=yXXRl#@9}C&^yeBxj?q2Coy$HL&UwZ^zr8RLqYIti zS^GV%%EpT=1U_HE>d8_v-{}p!?7r=J~Uk zkHlJs=GY{6`{U&43DUXIh8eeG!>`>~b^*dY0zKa*HB&W5cec_^DUEWnCb7cAe`arj^P)y$Q%CgOLZCvtQIKGnED?}=t>)%6C4C}R{gjGq!Y z9CgAtdqtWhzTauEot5$+xNmgCTsBOu(!=5C)4K%P;+(;2*JYbHTZhtguYgz7E0)1> zSg*HfY3fR6>T@43)CdJW_RpqhXQt)d_;Nl#dowT=Kvnk54<+K~t;blhs1FzSlH7uE zufy;tiso3ByV43Dq91m6P~v_NC`0|1>s)=V%ZFshPwjkCc5jT=d%S*wqfDp%j_n6` z)SYE`;@Oslqx&ht)Q#)*SM*(}HFlAbr+Ui+YjM}cMVG&WCM0lA2UA#elj+m#=PB$@ z_=}^fdcn|Qk4L>_B?j+xj7qV(u8Kj68S81=Dp`Y(MhEkT3X6~XA(F_A`%$-P`%d9z zVnn)Rola_p0HxUC zp%p-e?ra8}z;N+`6Digs6JJk6Zd8lQbZ5h1uFrLq{{x+}dL*G{dPUxJ+}I`A*AhE5!n z#_}a(i}R{yx;J4*D0>6(Rz2|qTB1S}#38z#r}m8^e=bO9jUImr?_LBfFYs}5hRnmi z{PSlL6Jz5~#Yoe4+^x^ANOPl^ZN3TK*H!D^4{Bc!(NgTYV-+$?d0Z^(gN5DEF7B!i z9dmWDn?dt%{+BY}{h9k%v9yx0^0oH;6CWHq^+&YPcnqy5k3w>S85=jyuxro~=Vu&r zQoB;6!Rk-m>i+o`vw?s7d+tR0Xxjwpi=~ma@NN@$7ITI3@!E7aH`Wr<#w37 z?@}cTZ#Z&A09E%5r=E>YQb}qcvV~{>&x&c!H4P2x4_AV6GsJ&E#xRpPaiH3Jwh7Jt z)M*RF#Iun-OpaSCll>E`f0W27oAmv-StXTJUsw%Ken~aO#_qWZSf;xq(aJ8Ipi(e|&hnh{m# zi*?+d9MFt)yXVp3wA3F_mQPh#(BP}GxwO{&Ac{Vj_c5xHg_1kokcFk%$?|r~jAyDY zZbpufU&>Aqqg_0L>bw^#2?{+vKFxQ~cGtug@b=bja{c+`&J&LB2!d!jggIZ!rV$^X zp<64Q@^HVKl705Qx)6cPx4zqV@g=ISEN9~sj>3LjAD z?qFcPehY6hCMe3zj^=+`5V$pjb>+tmnp8#eTN=SNlcj3eM9rw5lIRfQ% z*x&g`*So9dLUFzFK`AmSzEb}gzU(;KdeDi} zGc;h_*A)g)iH>DM2YvUUJs5R_?oC?jsi5m7l*dP_`L>;e85cQ&f||{}EdXvvRz{*_Y6y+V#^$>i zIaL&5rKZ)q&&AniMoLN+tI4+z)*_wN{7mV?tp^Y=A&~uhi;aoc#KhmBTo{4E??F!2 zSJ`Z;4GHQU4iPVTdh%&82sYy{7ivY>?c=LI)Z05G21gLfI&KcSjEg<(?{~!jR>89# zJ$D%rS<9#U189}arc&D(hJ5zoO>Hla^e?Nd&WO0s)i|qpy4Th>%1k=HxerB{&Bli5 z`Gk$=|2B+cMA6Nz$Os5q^lU$yF7FxWNiF&9JF?ncZrF!?=FZ>jb!~icFca9dko>+< z_W`0kH|M%`+(puz`R0uy4aL3(~egyY97rtB~C%GI|CkFOa#G>h;($ zQXlN>ScrI>E4YV@SnckPKCQ^5bj{C0V|sdUk>QZt`FRRs(^**7j7-_Qdta;M?R+4q zcRU#L(9!-!|-9w!trSXgHy?+_q`s?x%qd`N*`GCD-_=;#&mRAhd!W{%)IbX~#2 zoy$OdXlfNtw5GaABrhd0AGDz~n zfQ{u&(Y1$+v~1_Z0E(&U>S}9v zIQS_KA9{huBtL)nSDNzjzs1tugS~8cpsmWJH|XMV$?AG#YapN0@_XuZJD4PG%v_P? zH2|V#LK5n@ud-ywz^rD(#mhZzo#*)ZwkE2JWse%%=6M<#8n+)?V5&Vgo~q*2aZNr% zG*d~VSz$`O$p~>UHg38Lw%YP56iUPc4KD{frsJgY!Nj~W;rG&#`(>cIJ9(3CEhdSe z;2q5K9e%m&iP3BypC^z<$Ne+%3s;8f6^Ns&n@73=4R|Qiv7KGD)1rs-9w{$d@C$kC95#9MY^RDfL}oAc z;~hemrL;J$*MxcT?RTQ9(I9tua#m4CY z9+jU+@D&m9jDYLMUcU?@1w{#n#V&i+P_irt5yX&6hE#wtJfD`9Zm=;>qFGKGldTX8E-s#hNe49Z>BvBNfzPL-O>Xz@Wkq`8 z#ZwM9Ym!+5$yN@7CzR5*j`nGw)nTTN9pNVyP_ zm3pg86O+T9Aa-`4X;FOUMC zXDWRaP9+s&ionwIeCAt~hZH8(-m}{MY)jA#o!|Y^x&#FzPzTdQ^W!~PxyeAs)KvAt zJvtq>Od6h zN?l#;^3Fz3kI_nNtwUj>wM&~N$LiWzhv5*PzizR3@!0a(UVk;Oi@`hm!x{ll)mGy4 z$8!`Lj@qOf?k}{iZf|GzX6tQ8b|(ur8(kJZS6$3GK_cT4Uz)HjG&M!XM(cAV0xDG1 z(}eD*Fw{R@0*RK_uoRl z;quxU_@Bqc#hx6)lPG8?wyH_Tt&pJW-%Ifu?5PVpuDwc1g1Ui{=c90IHIqA{9*jJ3 z@v!(fNG{L!X`r%3V`d`1K(BG8u5fA>Kxsy1mZo06H8H*5=Nrd1t!k>}Jq-g?;tbOi zfh{KDgWZrf_n4a%4?v-tPORrq(K$7FuKIat6L z`r_V_(X)+Z$)t}QB`!WTEv!mQOL5t6{irluYr8&0Cgwl}K#U9r^Qlntcp&ei>+RL> zLzZWDjC7o){}ul2#U2?KML_hL(G3crgt0N@3pclF88I{zv`xQH?FyPfo9mnF^UelW z0JkGCU*U1MziX|o8T@(JT#ZT#!>sPD7eT^pz)%lOwe7)SibN-|x%YVe#BT3rs;t^~ ziyyzn>AJ^r0?_=zKoae;zc4UaID55udpJKy6P{&1^-N;&eAlzug{d6-Er?Q-zBH4N zi5T32pI@~MYjbk4w_5pG1{L+{)>=mhi{W2@KtK0qG)@T;zLe)%G;)&~XJ%SXm-smo z@%*0J2K>xva6?acRmqG{T?d=|0(04*f3A3E@%WUat>m(lUB=FP{PedjL2IFnh6pf+!$RwG| zWd6cgfa(CT?6=!qxL@ppjc`CrOgPh=LPjoTd(n@_sMjE2G+VVdUmK;k+P%8GJ#BVt zGc^}XQuUx47Z-OrEl$Gjx;JvzOkL+-8p)(n7Mq!sVY}0TSft$~lOKXW?0sj)NJUlV z*@FqHzMKA)Er>`frp)A>Hjp9p)mDag(X<6RrC-2aFUraSz&X5RTR3AL^oWInrKqHB zdGFB_V;4mo75}q!XT9(1&flM($i+1sJfGOL`L+_M*+2^D1NshlQ%LVOB!Pz|m}H-I zEL0Mn0NrfEqod_&C;lgXI~PA$sC69Id`IHry8dy&b(N{3yZdy1p|RoefEUGktx4^G z2lDk`F8<`ie$w-rGI?QPl4+9#9&I#BhnL4`e`f2NdwQBeudV~^sGU7FT;#KZ#YG-1 zB`*W{bLEG%Q{Ct+v%3$xS8tKBfd%*KLnbiHE0qyX=5AS3e| zsC=H0=pY2yVA7V5v}56|vV7umyL+1Fa5+dXr276o2H}1edLbX62%-Sg{v~jBLV()8x zaPYukDya2u`I11{N}n*FuCyZX4?@ix@_h#8v%0@;#XmVXI7n54D`<=av6`)>CKE^o z#Hpe=Op@#$Dw4XqJgFP6Ra#zd2n2J*;jkYA0q4neb_%Q4g{7yb7a{`EN}!q^C4lP0 zX8-SJj^LWj_0J~?iY`n3_H8uh;vGFx)0xMYFJD|Y_kHFj;d`?tDY!`+Z_m@q(!Q*U zhXW$|!eQwLS%FsLO{}s3qx()S+@;lQ1tJbk9NeXztmLx0dz}-)#BVZ@zo2vz@i>_u zHBhH`4Bq_SCHUfW>ez6ubK1M!mos6`QK)5FE}uOSnG$EJQ=XcU5db8=K5IOeS^Ra5 zK!m`(BQ&lAOwuB`W5B+=+^Pz&@@wEG0NrQUvede_&_o34?$&4{?>?{N(n)717dP+e zQiGf2V#U|;YbC-HtiTpoAhp1FJ8-Th+s5r7mG6%mGg{WM-w7 z6O3B1JM5=3TeZBsZme@#eW3n7y#N-g8-(b9a)HuOs+`a5u%nVbbgc>m6Mk3_lfeD> z%<4xaB?C5{@`z$41`(0##cmR5P zd9K{mI&dH^ZLX};L`RD*YO=kigbK=!UZ3jYp^gv#t-HaVQl@!LgMX7*v+b6rLYJhY z?Yh=OZD((v<`sj_Pv>b=t@edX4@1hvS21dhKgq(*RZZx8dwjAu}_xrlu}U zDfekG2uFLVx#QN~(m}^g_{)6}V^dRTWHlL>GMD2LmcCPHvZD$|4apE%W~UGu~=zN?MkY zx~zd7!|uG(ym$CKPTTg~BKZ4zdj%H5Y8wl7{)uHiu^(-E_M*A1wL0xhQqAy)8dF!4|ELS!QN8(pQ~M^mOYpN!Yc-cRoeSlEi=JZw@T#rnGzS=V`j9krZ-}|y0NjQ{|=wqX%Bb7 z+xs;Z_UH&}0BCrLM8^qM&8K8wuN?d?vA({(#nAruiBSVXtgv;dF*+_$TH`bAVAxss zgvmSn>!tl_w}%+D0%Kq(Qs_09&4+`MW?gwAUILpAOgC*AnTAz}(Z!b+)lk6^ba-)b z)}fTmTNro*peS?E1SCKOc>?E^iqBj;JO))~aL~}uRp7O*ZEl`+lnrHNKUdlE?#3dE?@B+) zn{2wtjSa+5CWW6MjFRT^C4&AK=OQ`|L1<$mKN>QTl#;<4z<|CJ3nr^#V9>-!0o%xs zT2|PmcC!af;1BRv-OmoJP@(~Rq-WIpx(>zu857^**XR-d&Pp??Qtt`OT{eqg(19i| zvYHJ6d|~qEPhe;uD8UWu^ga1ddS@I*I(_ zdw@ukmK?xSoGv$nFJjOfc3Bc~ww!Le3w&wkY}abU zS_*806MK7G2N%=(1a`;6`TD`(-=En`4YF00wN(N%(_4Fbwu_RZ%$+x0VeC4y|kC#6eO<;>kheW46S_u$n=~Cmu||qW|0I#hcz8@%a8yNhE*b zsS=zxIBZW>Gc{V{V@~q0j#3H1ZcUb(LVqh1s;=&@w$EVEBUsGitEs6?7O20sl|TT_ zJ)E?SwzTw@CIIAE=WEhWrxhy?wYxFHoL;9W#>U1nC7$dN-@>!3ZZGr^-vFrsoDCE- z>by)7Dq3I;uGBhQUERzys9-FUu(?FlwKv1epG6Bn#ywvDY~MAMj9s zl6ZWcT!6d?<*FDku(`U5$8MeEH2=d!wa{RDrBepV9p&31G*e+=s`FzQq`mvK zJ+O^{Onq{)MFv*<#hFG2T=X-0NbT$Ca7lljESdVf*nfu!+= z7uoXAG_}Ph&+|?k0ApG>1E(j)p9a6YP*G8N_jh;X$H*%xb)4b)gvhpJBHp9p)ApgE zh?2=df~0}`jcY;y$B=NHy1!@NllZ+7B3BG<1dn`WNo{wo?1bCfjxNqWXniz>nw-n& zNJ*^#FbARS){KS5_mojegRV*zkJ!*SIkA6GqOTq`>V=_1!~5zo{2#P_dE1AsD$d-E`?%1X9GR+3D|9biUZq(3shZN zwIT%#jjwX~A97VxALTQJ(^c6353?XuA!p)@J8ZrUCvJ3~z*{h3jeqh9<~`2a+Q*{C z>D9PAHjtBbbg(4dXSTjHnSsE-kIB(xw-RP?2_@@n)(+wbz~Bs${{8bAeo~oK4At z$951dYKmM_zH?_%Q~xB4ol|f1Uc{=q+=$M^Jg$H1pTrdFbgBGqvkIanC5_D0wiubj zGAsB&dmffTIew1_D*L;={rfM3T*)1~B-V9(u`i#!xW2xEhn+h#d0NXA;v+PK-=u=g zk~?+9A|>`OrLXsP{f#!TPydWRRP#N|l7mh*_UFELX{^N8?KqH}eH9s!3237@lY*vh zXSF!ywdeh%s5snl;*0iH%nUOpxWt=x=Dd6CP9*Q`HBq-U0>6_0Lefx@@kQ;i((lsy zkrXcdtN3G0#mEKRRmIZSqZXtk|50;jV)q3&f}*2y`c5$S6{b51l9MxfJR2;={96lF ze6`4S+nnQ3r#9tMFZpY_Kb&tywB>?!Ls&4?rQsY56rwXA9+O43bFaEVwp?%{LS`r%*tM=1QS;2`vJ0vuB8u?(NYUCD%%Yy})5&br@cmp!b zGah$Q_&g*Wxo*97WwXQ_=vZa{uN@l@jUs{842-hG7)k%ZZAoIVcX zs^n&4pQHhfmgwbqYx<+yQhg=8rv#YpYQJ-TV8+(^5_&@@5Y=CFXmfVZPdN56M(X`8 zx}J$(^RIYA_m#EZpDt<^8XAq@A>deomlx|<(?JE&vGMf=Ip6UT48-yCVq`NPZ@l26 zDKK9nSzyxf_(>DOJmkxHsao-)3l?96Mr6~I-+q|*JQhf=@pjSmFBK$rD3BgBb_!&T zKr(6yBGF=f`X+X-We7%~cCq^VnkLTD{edVXT;f3Vh(|*)!9I)%mj8Re9mgsxi(xd2KUH{VE|K~R; zq9F#{aIr$+OqG?xv9wl;+IpTD%Uk!llg&rVjmqpUn5C7qrx9k+k~@t!v?9iGK5jX} zVax3F=?N};1ARofDv;r#7{Oveehg}Hl+5*ykp9GB_#y1UNh>{hHR9yalrkg+h+H_n zN^cg?=QuU>uEU4YAdLI8tM*r`CCc+T&4!7jViyqx+giK4+7GZE+Rf5^c5mF z2){~a`AiY;WAAIh+wSdQCExG%&ek0WdUHZA3KOlho2HR%ysDszFlq5@P1OTUScwtC zxmMCVl_(n{+c3|rHp}?$wzm;woxT2D`>{!|_Hp$u6CZCap(oJb!BXdLL;;`EpKwDc zC+GU=i!^V9J#$7sUaJ13jj`mnjrE%+w{vn{S`{3E&tZejFI|FJ8fs2Z&$hhIYR@pm z()5ttIbGq^i;9l?DDM@ug^i_@eRp~2?VsKlgqQAqw2?h~<-RG2nk2E(Ix-;fE;IQ5sZ=Z3 z>(r&FAxgQwJ%SZX1RirM3rxG24TiEotKZ*>Lu7~UOOsod}F+Se~n*8_n_JR0;+ac!9 z>Nsg{o^MUFd@mujK^7y|g!-Ko2y52xl-bTeZd}5ahI6GWY_LM4a*YlG1R748buuzG zk30HXX}+p`a+jOVM57V%eSz_Ckuqp_0s`{WC?a)q-*1Y z_J~Bbzv)ZU@FYo-)#_}GlP-}xuGjK=*Y6(A&R~PiKilv#0(f5;l`7hNeLSLeyEQ`g zdYq1@+Nx(UC8c+z5}r0cXQlp?WWk*KcZ_=;^;g?O@5~omtyw)#Q#Q}hI9Z%TIkUp{ z!rMkmbcx!pw<>En_Gf(dp5I33EHO1FTYA`_%*j~4r-jbI&PE$=#+7_N#6$YlThMdF zuKD8DmX+*$5>5GTh2h$hb}W10ieE;$zAL9RYKIU9ZzN%Wpt;H#95=6QsS_~^Ue4lN zO^nH7;^Dn_R^@=;;Z13rT`BL)QH{wyHJb^-4dD9%w4-^;SWQd+Hn&Be_2*9=Gvy)$ z8iX^aYU{XIHAU4_fN08^x`9wB$qzB8I=Ro#IH{Xv?4t|e2Q?jp1awY`%qzdG+c1<( zD(Yd@i4__wk3aJ)+ko(=wI5k7d(K{-R?An-UzCbPeVv$%NFO6`-K#V_;eW}X zj3~%&iU4l4b#bC7F8MxiI|xc|fD^v1Z|p;I!|`rUhB5Y20Fr%NDZp(z+7_bCG$2#2 z4}0&wVP+%9wu9>lv^R0 z0B`Hy3}oF{aq@KK-d;2=a@VZ4+)CVTA67mt5CBfR6d9CXHw~=9Ym+G=Mrg`VZsFvX1zaNwk#<~7oS+o9gxtuyao!>#NepILJ8fl)Nr;hI$^~*E`&`JZj4-_V`NHZNPK-vd{W2rr20TjmhG6mnlXT9LHv4#}()r&t<4 zbTp}aKDXpX?|vEaeI>@H=r%PXO%Xa%wHCz=|BJgS+sS>AD0t;F(MsR)Se(^!?8eqV z3+Z3)4t^?LW-zS8S>067%A{}vVx)JmS^h=W_1<=Y+-QM|6W&D0799WdA2n{@&c)$v61WU{=ws~Ir!x(-Q+aGaUG$w z8Cg2iZz)O!AI2+o&A=gi;CzZpMT!wbDRaW%KnX6@FL`o5K|7)=NFORy(+hS%xwSmr z!hp#m6pq9t5=M#bbzT!OI8^DJW$JISEYd9{A}ub7UKvHIBIN1|eVOlp4#dYsDV|d> zH+yv)cGw1hb#N^7i@gZvWj0F5v<)-vwWk*{^-$)?fi&BJ7H_9KaQWI77KnZ0%Qqd? zw(NEVK-bUiBxex+!F+W}NXX>b;Z*Qq;}sH1@WsTo6eBHd=Hu_w0ay5^eS8nPf6NxC zk^)}#WSAPgB6LiTBWK_bEjvNtsj%?U3(`AQeklYrg32~>!`0xFXwbFY&fQ0V#Ycxs z&FjU@@xo@m)zUYoLmM@{bYA?XYNz%t%l>McN3AFPeAhQ| zXM4DED!ULzcXAx%axQ$AKvWFByVDpAE?#r|0`ZWWXtn6oEd`>IVvY06fu_W$VNR=s z-XE?02xu?KnVFB8!i=AEw6`T_JXN&PvOBmlR-vPO_8?$nw4tD)BJ8NL=5_zrXYx`g z+0~0XzP1zPpxDL=$(PzhKp#4DZZ?NSm+yGC^IC4|g6z)g*jd2UiKBZc>!@wk0`F3Y zy6sB?Xz}VWW7XJIpp9{~d?i!TEbc!w^oLeBe=J?-y;#-0^bM3bK_*(wjFzTI=yT7{ zoc;UE`m3oEf_1cqi&x+fyD8aP#oXy`pHms&3*Y4iom@xuQ7efFjO`nN7;hbNh1}>T z?yKFDV0bzw*Rl9(=VG`g6mqxTJcS2H7vSjD^Ox^oq9Ah(Nc_WFGeieP;SCS{qJtD! zKcf={TBC44X&9-?L}L=SotwaU$I zT6lWaA-t$vW5pJ*4BGiqY*$nC<$ng5N*VXmps$pm%_mcO@}-C+_~}*ox&Z_81Gx(^ zTLdQ$qw_U9+;b;2jQb*6qfH0Bhr)BYohhEMExCWk91kbYW4mo;DgyQR?3n60jp7ewSvQ!m3 zFmkA@84@8kdyDmPWbHxoABnE7Uz}|}LRjE0mv^-|6^ik`oX%rb&XN(&M{GmBs&~&!Q z_lT*SEz>qN6R)Ij4il4g45ne!<rcGAM$o%Vqy*FgMp+hEX_L|?zstKJ!5m@oen=Qtqc0JkURn-G5&Yj@;TC)T z?`ukAqUAp!qW>6L2qTvNr?bF*D3h%gfrJVGA6WZzDdrv))vokr{7$`{`oI(GgXyGWMI-!tdgN z^$VOKnmdL!sifaHGp-^I$yaVN_92{d_;!$Y z(1nXEws7Z2@KKXrY;`{@#m8scTGfizduWEDW1lr%X7u!F1;7EbN*-0;VM8%DX>DMp z=f(MZR)Z1;r)Rf57YDp_dFd!HSLO9*R38+cW%~d2{q~|%?e$*chjc1@ zEtz-t^ z!!M3JD`G2TnjTF^S~_Hihy87pmAxi5F`t*8$EQ;D%KNvP*L8-2e;E-_BH9On6}Jff zLcCxI^w+D{Y+cHNpp`E;4jKz;9$Vt;rKTXml}=El7XmiOdvoX*EX5^uhsK`w8uSHj zMA|tH*K%CpI-b1sWA$EMA)?Q@K9&nF+F1hq*iH#(?+=k^08QB77{6 zSymrFdVgE2?^sjHG(tMJYiV~sgti^# z86@8&2?j!uW%P!rStwV>-GtHpq$4C;+Rv{El`a84Rp`wJxguOc_^P1rDug$w=rIiR zuW#Qf8+v70&^s9RYc`RLi913dxOiJ+ER?T;hZg;17}YAqMzG(%jn&uR4Ej}nLTbdy z9U%M+^7|75HS+F6g~}m*;*W3J(ieG!(ozF$S1JA@T|+R+LGZ%TXU>$#+4(3l949S7 zjd3gooBDSgrBiwd8e~r^tt4*vOhQu(RqU>$wu8fP(@MF{dNG4a?99sV*VXH!ChTvu zhV`v&;}VKYj6ar~&EA1u-X5Zn_#-wx^zJ#LoSp}Assci(`jsFpG6>EU1@lzlI2rLJ}q%I#arB zRvw~ozL83)X}y%p)qwbBIqBG~TXW$z>N;oTr)Ro8u2sAxY(7KxdX6tdO4FZ>82Vkj zo+=p~!FNx)bjI$_dduA+T6?pd?Ah+HP_Fgq1O1VGJ`xkBmgh)1B1C_r>(wuovQ<5I z(|YT!NiX>jgs)A!9^U$yRtsKmNRA=3BEx%7u*yl&6bs4;Fedoet$G+yrD zkax;3vaq^en7f!39TBnPutkX-uzEqbe{qIjzIbn9`&A6jSui0p4bILEJ8X0jL~hsd zuC_8WgzsPqCy7c@yp+p2aR^Q=E8P<}pz4|G@#gxL%Q??ibRuDn1Duh@f1U-cFMQGA z>P`|~oAo~Bdraj;lH*wHE0r4u^NtpTO4j)v#ynaPUP4aX$qL({cT=UNh}O{wA2VZ# z6|bmyg)y_---QHN8nKKPTib*X(+aQegd$#>&peavZSDNd3HN!vSz#a~rMOf>PtqCT zGNUp0b2S@0-~r1zJJL=0L4-xQ(11V`6}g@US39Y74GHHQepkC zk&)0=Khs~+vkq-tJBh{}Jw3$8C&-WhLQW&IoeFFLFY7GX<=}{j2n8Td&@rmUOq~O3 z)Kmf=jl($zb1?R3Z{GxrD=K9=KIrTW|kY=~`? z4F(tzuiA*8+TARab7A_Yh1Yb+K4{o2H6ibY-8L#9uXI_$Qw#G`dbDiX!g0#I^iK>C z4ZJXYXCL!O?mOO=>k!FH)$`711)Y&YtUF93WjUQ!V=A1j17+U(Sz_g@)N>2Sy^Zi% z=g1EM?+5Pucr}${z8BomAWlfqu5X z*4M*C-#+-Bcf#!pdMY}tuHAVwX!jJYR_&0hVbYkIKK3V~Uae`3prkm6NliAEMb$pT zVOB9j@44=H%)1khcwQiPRkkzU!a9HLE?)eao$KAY2LyB)MxR)IlSZWlVnnCLD(G=b`3WvZWwOyewdxdt@WD1B z@Y8RwvqPRe)A-tq6NSI<3j$$4dl&ANdD*_lIh8gSs+iJk7D)pJ2n12Hi;__j3sa4) zjptJ{JyB_JTu)bBNVZ#s>u3=*+G}$(zOcKrU@6_K!{(KSizTa~3#Wo05=TqDL#kVk z`&!`*AKHcM+Sa$P))duOJVko??UPAAaz1VKujtX}ehdkbUi3f4N*v9~eZL(?^zwti z$B!RjAjD~D1^R8+@L1o>WKcoZ&=zjo7ZCN1q^Pjkm!@GbDZ^6UAWxdygOK84_ed%!v>-KvqYLCBxf}Xvj@rFy`Z}%~XeN5B-*2gE*f>aI| zXPW$QIk~i*oGTY021Xuc!VtPVOBxYgM8sdqT_MyK!f@P9*1|FAlxS&6VPGk6fA==e z^NN&?a&6+I{?p+CHZiL-(exeP?i;h6-CbCS*VO}>PMML;)WBOF0l^l-OOM@iVgX^{ z?8Ge2Ue(kXMM9P0d#;iGe(BtN_7~R(($dnKs^ANCjbLL^hy=^iNhb{^dtj$TR9B-- zojWqut-?K3gD|EO^Rf~i*KY}#@J^xrh6yFEHu-ub|5NInvd*lY{$~&Wak}&Pi@lJx z%N`&3x?USA@juS1@rK*j6b~rN_S%(4=j2n4wX!v;3I3+0HX-zycc!n#kbPdb;O=?~ zwRaVwfSB{rlOn#@omQ=DjwG7lDlofMB~2`=fNoB3Zfu4XZ8o^hPNT@1AK7>1G1z*% znVD?=z|_vp(0u*wWQ_eq|Bt?VCmzw{?ZGZu*MsVb;Z&$ zd#gg5Qq)%N&fD|5Lgz@9ieEM6)(E5EzzAKeR4@iy)cS3UywBAT2G|jTz{aRm#TTx{ zpm|P>gR=J526bW3vPbku#*E~&=NXoG03q@_7R2kMWGx0MHx*Hh2^T7#40H9VPV~MC zfgL-~at9p=j+Cy!Mfiprv-@jh{{Btpn2b7f{zEylfzPe&dtKP>w73<>S8W>lG(b+|7`u^_G!XJ}D zG)Rp}`q`(>w4q9KS+na1?t0I?S`A^n#H?pvSe{TUH6vg{z@Dmu1 zv|J$xnulXfSW5Z7pwecw=7-bQ4a3}6mRyx3LEWebI zE5O}i9F71@CCV=8t**1$PT)J_%A^$OBTW<+A4} zBJUmSP54`%$Jhwe?_=Y?7m@ok($H?qkkQWT=_2Jbcz>v5%M`z+oR)KTM)4ti(Uo`h z!_*>=q@YbN$o24?8(`dTL6OLQ`V~Z5TU$gtx(_Oj4zLM#?)E-Yv(Tu%CwlpGF);A1 zqJrzeYBK;YZ(tR!JjIFon(Fog9S(9UF+cWFqgz-~5`C@hQrv*16-x~>IEcsc?=&g6 zPm*Ho9xGvxupgSf3j1U8q~W<(5h9R3++9dK`3=IzeE5K7 zIs7G8E5G;$Dml5`RLNQ(WBgI!d3r`htVD2l;b&ZIZ1tP#J}?G3Z7Dx>gL({0pcmOX zXoLLv=0^uEc1!OnNJDm3;=zYN|GYzk!-A&mG!sM!RA6pMOMmA^6OSlRLJF0X&zm@< zKmafDh1Dp;lQf+R!T9&9RDE60XIs`BE&*PiCGKNDHq6d8_?;8HffmC)Ioa|4U(M!- z*i9wy5#wzkS}Z-$v$`+6Z}C7UuEhl7C=7KD&!@Ds$nC^L`By4oN(`(=Yao{%m%~8` z<*KU)XbFakiH#L2D(Bx0;DY?CrgBu{5V3Kf7o6D3{a=4X6Ke{Q{CCA9U62s)Eh8eH zhyAa=74$Xo=0pMi68FU3|GfAAi*Gc}as-1l-X>>h$&e{0OG7V6%#&8q94-Yelkyc4 zUgu&bEEoeWK0c05qQn7M>S_JM!`-C`SOQJ;?YXk(5z;xQ6wq(!OIN5BbzLv8h=MGU z(darvhqQ*nM#F+TN=v)8zYa^Pua7_p-t!5ECJ~9Rw$>52n9utAdHz-{!X>0*=7Jpf zZ`+5XGIMI(`Za;KJU56-b(Vde28|abv$x@+MpVN5ZCbvYk*HjrYxdIJtt^#>_L)TS zwCkS-F)~`h7qZ7$>{P*yf8m{Xhv;+ZMP$jbq*GKYou#4R%)_EnsIlBd1s0j=H|Hc4 za0fX)wLT{az?1*Z;*X=rgH3|{qgI85-4Fd{se;H>)Da(}7C$jDDY`m_tS9U9xvjjS zuK(k67MOAkp6TC)NS;B3(N_iNkO>~=gw&6P=Zv(hm|%%E#Vu(SDk=>~gDZnz5u^ox zRDNx&!8_^^UJ~ZDy>K*aq?S4ZM}kS$p`!fAu)3$8k4B@y>gTkKaKgxU3KpOgaJ=-= ztvoWGYGJIL^<;xTn<4AHe-U1Jri%nfi+YiFWYoujw_k6-SGi5WiIlcTUMZ|3OBmjN zd7gFbU3sz8W|Xb5^jxRKma?-L^ZN-$$+AC-TGFFcI7?@4jc2Cx zV;J5qX(s(#Ye}cBNF%gq(COLdHspGLBMO#RwSxxk z0m)4FvSyvr{e%?QU0@;mqE4tFm$Tm6&Yqari12_vXo&&&x1vvcAGQ<7@NmA&xU<$O z{|^9WYZ(%dT93!J=tx%Pmc(T#&PqhGlYGtguO7$Du7q^Ys$t&g#HcfiIo)7iX0-F&eRw!u^0$`TFd&~h5A}Q| z)l-wyz%6<-kEACUs@RTp?n;G|d?2l@VMEaSL>9y6N0G|&66;M)-Gg`I{5LyVOxsy+ z;tfBHUI$$7j#;&Gr7TtG5`QuzS$ei-q+6oU8l=P#ZonZoGd`3wSW_cCTY1ge;|i*_ z*N9nNV8n@j7c-L--vm*TP=wd`8+BJ?DudMGeEHdM zM5~@IH#+ZQb71;|e{d#z{*uQBfq}UHV5xWGgf-u?XP@Tvqga7ERI#WlGvYwpdh#QB zjD4R2HarE_^ef}Q6n$-vhPm}<3S|f+nlH0GCXsw-{|0)+=PRJl>mC{*@J^1^U|~H# zllRdO;`w=6VeL%$-D=BZX9_))tD4-$W)=q0NwdN2FhYIJUle$$ETZ^=g4~Y%yTz8t zy@~(x(!DoD-e$NO_#GdWjOsBCcWw})Zuu<;B~en$NA7A#4aiwcPdmlN2WQBkR~DF( zYsSX}vR-x0PatJNfH)o)!S7Cg2vB2Un)VQ#nr>R_|1~0)6>!Vq>Qp|F1ltst@o?Nz zec?fd9lslwBsSmy4U#);GUhN5S}egzWsUkte_TDsrT25HrD>4h1M0w6RxNp>tJ^~+ zvM}AVn1pyDGs?gPQt+SbKgO~f+$%jPxlfoAf@q3e6J3C!PMsR z%0Q$}88X$MQ^J-mU3S8Na5d}j%G`bPO##wcs8d#*_U;dVIph1rOClQcPh8FJE=cg9 zirJPN3*ldW{VrIu4SwkagOS+~ZWmr=uGL21SXum?C-ZwX+Xs>ct-Sjs9$Z@Anj@G0 z01bG7by(z=UrS9LG}YDfbJ-<7HI~(%34DP;de?oqYFNR=FO|+$s^B}SL)+Gy^Gr<2 z`01eStaJfk{m+S1z1M*d28B>mLzR_J4mQ|Z$HOOdAv{)_5{q7V+O{o?bRQtPJb9dC zwyZ_94tsFfY5~(7+uzE61UqHjb(Pm@Rz8dxdSZcr#-9N<1mwFJS8?6|=HU-4dfq%6 zdyH>Z9~|gvAT^!!IwqOFo^D^YkA*Fiz&*YpXv9B^CuFUb@dFsX?JpR&;78kN;5SRfA&&${no zXiWUna<(F~W5+%{z5$#r2NVDD4{}K{9zxTZzg~cL@sk<~+v(Zac!N0=0sH+k2$u61 z0S#>yYYj}mpFe;kf_5|>Uf$=o7+_{=@x(r(s*-irX!JXMNzqm&5{9rGC$Bsj7FpRk zp(F`b_Am=kfpUACe^Q(Xqr=*tBsHz)FFNZx>`e6s(B2U{)Ro~!hA0e77W)$wT;GKl zyXUCeS;_F+)ZcU*7assVRP^dVW^)T)TygKfLt2tL&Zs^fH-&kCywY?d#hK7dz!C##<@2Rg{ zwqMWA>ZU9-fjmQd6nfB{&ydgY`oVSKt%dQG^dU&9od8P zwUH#MHr9se8C6dMISIP(d(2QYYkO0i2&x>5%wGLR#hl}Ge@TQ<3e+=#)BX!VseHe z7laz1i%hwdhk^RX^sp%Sx^G>19J z8yqQBrb`@eE_w3;^2BL+3X8Le#Okj{Lkif=52wjnyj}Y+UA8(J6)b#ida#C{EMOq* zV`EqgwYK7JDi|?n=-GMN*XG6M;gH2fUqV;X=daIQ4o(Fr!sNl&cybys&=?y)7!eoD z7DD8DC3SR2YkwCB_GNvMg-w8s!~<%Al!6zZ5Z{$7zM|&Nt~F~7F_2waADvh;W$4#` zI4zl4*=1{qS$IG`RHKFqzn^>LA@P^(A7Rqq8j{v(mGZ0&?f*qNeg3bKaYHx`ci8ug%%3UP-O5K|!#P z_K#2OeT}XX3a*xx`2w!%T-7x--0qiX9=}Th`?p8A0Z?Ll(~KvPj#5`&b}*^tq-vKH zc72)7O?0jI*HQ*lNsj}zC8b!mbU35A#+|KSc2769$2k)@3A)BxeOfn?4v^h@#(v|N zE`F=k6~1ygKiVmt)!s!fR6^+Ayta=Jb3Q|LyuSBMY7XY_==+ht$PoZCl^EhN9O3vd zsGQM{OUP6c8R7Yi7S2$&MU=67aFJ*Q%{CY+#q^Dnf?u0F{S^k(iVDHiE(DM{meB?u zVFPAeW=`Dj+OBcbtIExGZFvhGw7<(lU0yF_Kq(9fkf!PRLcZ;EU_{qSx_H_0fSnWy zf~&NQjQK$$mB-9GNP|Hfc2`@7ykdwZBgWe02&-=OF`-tWM#Jpib%!?M;06Bjf`=|> z{r1QT4-2zsNS=_C5j;zXtl&Ccc>*1AK;xp#Hl&<*EsFxcaKpT4oCFc_Q~G&Z4OsF9ei^X>Boqp7=Oxy@+$h)7il zu#&)TiC{Xq!JVV(Qhjn3P?;^d_2fhppV=b)Be`a*Fn7N@1FjZVT)sAvPZW_{qy!=QyUkmT2I-RBLMfZU1NG)w25 z+|6I4a=T!hUtFxM)V|19%?SB6qMw~x9DI2&Z*~*)B30B5=aNz&cLqf9-_Y`|n`{nQo)WU+Wfe;G&IFI8U zVj$fVY1MW|*GqrTv-p-DuGsL55<-8zv#REDW?hl{H%NI9qAb3H_;;9FY7=(T*sL_ z7T}?1@HD%gs+MyNAFRLOLUE^%>*^guJ5X>p^0`? zLAQplQK`=ox0}g(Xp+48y#_eiU_RLB70=S$@E?ZA((Zf0cIM({=g|jgYAXU_x7I*; z-tp_JP$)sEg1?`fy1M!}Bmi9^J;_-d4IO=qx81sn)dJO3Lx%o|%Z0l=%>S z`Q(QgG6Cee?kEI(Z|0lAW~YDn)qz;V`x$#^DW3BLs@|}>_)JM-Rl)|(o8xmwb)W4A zHOjLmFNnN~N^ods;g)*`5BHQ*uF$XJ3peS~-RY^!YdcG`08Vc{89)t1~crN zy|VZ7vW+0C@yPz+UsC9V@4+YsHJMxVpegqeEX$AdcVvuNOLsSS#v+cYZ(o3P_8(xz zgm7K$m4y!dQjoZFUC9URY;sc3d@XE)i%;!ge_4B|g#^@ntgda+SwR_wCr=ncvkSTY zPog`^xty}GWMz0hc-vKhQrWrs0^TVfzeXjqe`&d*0OhqmZK8a{7m8mIQIWwv%%|JP zd_L31B2s}FNqbkzq`iRByQ_LevD9V}dG(^`04RXkqt)$uxSiAVX~pIjLX46+a*EuR zK&JI*z;DY9NQ;C45k zeFII6V|%|+qNu)H!K;34fdKf*PMd-vUC<}rlNI9^${PT*s5||vs-k9czAjK===-uV zW7;$LVwS8LV?{MH?7ALaDeWapSXdY&fL2a*RkmMw_$&9bBo_RwcNcq4f*(Ghz&%V= zKd-jeYc%$P!k-^~0OAZTg+`}v`E(QMzIn5LCXodL0rLq9n5JiLS0=viqyYrYjN*1TXhVKTinP^O;v|Z4nQ?iz!b}v zjXT~p*~gF%;L7-lz8-ycia!AglqX?7Sp8q+KrFZbCj<7ICeSpzdgll<)>vOoP4Syd`Bz@2{@xxtuP(U!#SD* za`U=TUU8{+VnP(ROP$}b?rVFoXxiSrHeF@Q$I$IMF`ZmN(Mq`5^stA+Uuh6QPxLE7~Ur&CKYQjei~Bm(50j?Jvq@1 zl#XhOH>dJ@SiJuJ0r-rVYJH9TU}%i#OgCDGtY^M6Ah_8e`HGOsw15vTNEzr^HvVdp zG*Y>_`r>)<5kfG{L!k@EM;E@aS0unJASpKJZRj@PJuTg}D}y6v)m&Frn{#_QtGf32e{-Vez4TmbDcF`ZEs z$Rx~zwyf#dk@2kGHHiImTaEML={0Y`29~4X`9I>X&{tjDPRvl&X>h<|Ivntt>-iY_ zh44RK{Lg>{>cM?uZrQy1?oGK_|67b?l|7vzKNTb7o=v5>r*P-+c82@=Lf699DPzsz(Afs(Ds(lFtb|N_#lZxfj4cGVg4Imc4o2z zHI{%iY<2TBzL9{cF)vpM24+D(fk1?ms_oijt&8;EzHN42`9!mJlUw6iBp zlW5j)y8+CHq`*_R+SKs~S>E!Uy80kK);a_P=}-lNqPyqDEu?Y#i#~w0mTM4Ru^2K} zkj~Cw8Y}4ovU^f+sCxq^%Ka~RTs*HuP1a(O0`cQijwVTh0r*l_6XdD=AC~49N?H8U zXK|;CQoAOn3I4<1oOTvPzP3<=6-K+~CY1|^;p?4heFiZCSni_400FXD0FF79M__S* zhakbX-=8dvH@A}dJ#HYCtvnrzB-pX0cPtg60K8XnWBP3{3s|Ar#Z?hYNgH!(%7s~o z_Huz2uIItQQu8viG4}I0n@8h3Q!fJ+6XHu?tV}3)wTl=4Bm?X5c0+o3976fkHCuG= z^tu}wp?R9;g?mxL@wsBxzLBE8fg2+AYLXKYurgEDcZy%+sR22@quk?qe;FU4s zejAH*zAy4kYqZhlh9!R_)zFL-DBQqaM8&}Hy0BTU{ITBi%q{Zj7V(3u#>Z0zd}@A& zwP;h?=~{=0=2(q8%^#y??d{Zg9=K3riCFANz_6YtRvm>5zP|BdiMZ3NsilQmaV9+I zG642Xlf~^vK%BnUVnUGORl2WG-I4@)fpyb|+b(#$(Hf_|HW|tA&5SI_HVdpRLx$?Q zxPirh#TRb`1|}e@?<$~46ThcM9HLcQ@~!^Y5NG?XNQxui{ZL!nn>$ZD;nt8pX!`;< zK@V&fp1Tcn2{9QeD70pAWC^o%;zu{$6@HbaXk*l#m)V=Y6aNSdevyS*;K!2frj3L z?aF}W4{QpGK$ze#mcdqXVG=?PBS{}gSZSKX9G`_P^orWDpmF1PDIh0yc4nHif1`GE zbMEXuYVFx6@1v&W#dYG`09~4@0s^z9134?pt={$=e@^Ro)7v<7Lw0tEp1;==_h4ms_9Ha0#X+4V+6SInV8LAX#Ujx*n`z1g8D8~FQ@;GKc1GR?rV z*a%lj1cb=zX{XnJRTUL=_ia(s^;`-MkqfmDAXw2oL;|Y^6T_RVug#YlW25%SJJQvM z7EtHs=ZWrbtaet)0qSb8BnMT!MgVvWS&wTU#=*(ZJtYienr!jgkK*R8ba^Jpsx3SG z8RvfLq(Q8cb86rd;@%6Vbh3W3FIgc9*&6vm!}X1P9?`7>>?WpWW--i~R_oxVViDY= z)$IGD!ay#3(oME6*}3>Q?ma8~k5s<4IbxFr*P0w0u`1px1@YO1TF5ApiD;#Y@jFdS z;ViTb(0XT0)Y8(>u)HT3f$7-ui2?}L^enKLXl$HtX@07sYDZe>+JX`Gi&u_~g$vYN zF~^FL<9_G0Gn?b+Jqz**XyFKQq_wpw!l*Njj}t$+EXM7VwxNa&FRM~a@~3Lx&?_=l zoPEuq#3Tm1N5CEgwogdC6S60=zs$>`&&0+ZE4wJMYCXXc<+}fM)>$ zF(hZFV~DN<`+v;cBBevCT=R{=uo9XU&IwHWKL(jpM?&yF8m^K?qMyVg2FE7*956Qx z>O_%7GecR+HU6s_qJm4AHYrotM?iW_4i|MqA z-adnP+zX(Yw`D-U!Qwm^OJ3)JYE0c$aJOcYTXujN$a#4o+%FJ5I$I9p7@w@J(JEyL zBEEa~&U&%rMJwsm3%~onI{QoHXpo4gs9xZE!w>u{^xx=S__}Hy=6|z+DYhjE09vd! zt_z__8g%6NgX~7x7P(W82c?_#b}0V5e+@=ZYD9`mm$C@gbQXyB+>N^v4wV6bXAR(lqhp`s`X+iGm;^r_F$DzJ>etSrLPuaq|V59OujS z#Y)4e*67eeYJi~FScptP4wzRZ%{Cn4xb1`nbczV@HU%wDhW|5Q3M8!}YkjK3^{Ht! z8J?HpD5E8!q6L`B3Xcb*Jkt{KxYah01O z;UT|?N{*K9ys{q^2KXk42Tp|C=XW7B-$7GQuPDcn$SZOPkQh6fgQ(rekkxG!zkW%>S)cxA>NXGe*HL5gkDthe`T<9y1@q(ASrm3;`|$$7}6;M?Gl!D&_Mt& zBFnU*1&=sKpS#pOw^fe>nW#Ud@uf8^dug39WEq~)e|mT3hQ#4Mi7Y{}E{mE^^ck-l zK1UiBp?sy&5&ikWn0R7ac5Z1Xu$op1U6X+orky zp>8Q6ela4RG&En>J#+c1UWE&sNW48aW6A#D?Q1);QL{U0miOtwznLE&4{=JcjeQG$ z!lOcLJiXVtD}%ZCc%Y+G;d`e7focTOG}s2kZ6ibA7*Bo!11*;f$ZFlQ=t_(CT(u5! z5%V=I+Pm=-!hzqE^-s=JUAXOfZTA=a#S2A+o463|4sK(0+uUBDp`(ozA6cae`l8(5 z`&4d^niw?s!KL##NDUE;;PLXYCbRbvcFC^$EBZ-&>W#&F$PjQPp_pF6o4L8U85{R~ z;v_y6LOOAD=?<0~1$(r5-cNd?Zh9JacDNTJ21Gts*y;@vvp8&4!mK?jJvhuE8q8%& z(d|jX*!50gIOy*MO+P#(U%xZp9|kHYlo;3XxsG-B$uMJi((;#!GyiQa*f+Rn+VnvK zIQCmh3ij+UsbzU^Y|_FnDsDksAn|a!Z%WY7Sy6#@4S+Tw?ZBygtoI|#LNqxCbZPiq zH=>pdE4H1*hZbTdD;D4wKb|kkmSe@yt=_YJSwsxG&AaQA z(#m8>OB|UGt47)zv8eF&toGYeZ^Q!WVxN4?55fuHd%jwH$pwX6PM! zinU)Nh^apR@Zn$rnK6z$BrT1Z;-ybW%^n|(s3;6{AOD3piGP4=+#*TO%KAAOc=piU ztrq>y@rcvr`bUPse}qTRyF>xf^ZXScJ%9BY>TyY8f#S7@92;m%Zl!d~19@SHGQ-j| ztKGTI>LBj%&NY#5L@PKfCy&0doGyWU#_J}R^qk;tx0RofdLjaPnjut%>AOL+d zJq-+k4WS+Jjo(WDm)1mZa+v>TV53DN5`dp6{~8_`2*c;F6gOYftX`bV4|MgQ-q;6| zH`$JNdjRh}xBD&o*Y9Sp>m@0_UEajiMe(+JM>Q;i>X(4)dJmbKoF2usoj(EGxv~Z1 zpK5CfY&`I`DwQ+t!FhDMWfKh6ldoU;UZUZ%5V6?*wtFvpv{2T=fnLS+Lh>#@Ghy%#iz~p1P>X5zA0<#1 zXS=XY*Q`+5fc+h+*nln+^_9u&DPEeI#p3K_@0xf&(eXYZ_eWS!((};uH!MkJV^$CN zGf(=Bu&l4k)D2YAPesCf^*jVtpz>P4qpzunNdTDHB?cG5L45ZxkcjB$u3p zGObq@h-_e%7hRV19L8AK*hFOqBd+y%im?vntEPt#l+Ne6^kEddF13j~s`VJ)v7Ku) z%zH`AjcvEkjP3=3$=ddIbj==W9ckv(24?%-rp}0dtrR+@`-iqu$GpPYVj zPz#dsqz8ls3yJHeL$pRssY!{bzZnP%^vg4#8--;0b=$8ybkG4-l6rFa`A&5VO81;KI3E$wZS_3!FPGk2DP z0hk-FVfh+Csx|Dy*{UN5hq1sj$hBPuPW6=ostzGxcXxMZimDb-d5#<^;!PG&3rn1!QeKMd26!F8KT-FF#xJhj^0nt3Y@U-{k&!@fENRe@4JdcN|_(VKHT}7=6uGCSkRNH~5-SaTu=+XgC}n-){wp zo?~qDgv`W16b6Qgdo&D|As+c*@b86!sp2VGm9b?5=vbG*7Z^Zuc-B@|0~k$B(ImlpJz5xb_pZOvCE6z= z8~iSo2?yXW11~LHA~2Y$D6kx5LyZ{3g}RkA-~}ccf4ElK)<*=X{yRpO2>GuU_y1$` z|3?^IV`Xx0LED2Mqd=?n>73l4{ss>Mlr^*ET`Bp|L2d6RV1jWxJ-S*PO&HiLFe$-ItoU=itGs#&{H7o+ z2eJxvqP)|EJ$%@Q_h{yDB1pi^0Pk?*nV5h8TC93p0dY6Vvs~9!AOL^S+*ao-BKfND-{j{7Dg^!Zmq(ZnMrl8$AC!xc3>6=Lul-2 zo%ytlOte^oJ^!LmZ~YD~pxBq*cHSSK{0r3Cc+_&BIayV?H>(V_o_sZ^%y~((g%6B= z)QSC6iOuZ(?)OKHS9AoR7(_lWDqS=)Ly!>Tn1 zvQusgk8cW|)*fVj2ChgvX=I>G?7Uqn;zbg<_vNanGLAIg4Ck< zYHt7j%)hAmh}W-X!gcIEn~NQ%q9rjiDH>#Mp!u43Y2lix!qarZ`G40?tQ{Fh@bBiI zS+ha7`KG%5^_HpvPu#u0^ zOmu*wfxiNHkb%a{)O*%fhFb8}G$@X}IgvBjWa=yXwWp7}ZYl}$q3Te7AZXqIGXXRg z%c~3pW&5qAY`mitYF_}m;RXe;oIx9JozJ=x;5^b&!<^27@y(Iu-HDM0(o(s)DM8Nv z=1mVG5oi}p5|H8oZNW90&{SBrJfA-9EOs_TOUd}BPN5P@(%McBB50hL*AW9oKPt#8 zX$dXLgY+rsqst3CSFjku?JRiDZFE$X9R@#YRB=6Sn*aj_IC3#?jD=@t^RG>CZS2bm z(<6(RJ3*p0<$djja+g?X=B>g&TEEmF1A`(Y0KlR4+MmP-?shR2`YO!x z`$7ac*LT3Fhh%%0cP%OM;O`A?o1VJ=>ad~DT-68Tt>}4RUj&yswzMK=_po+$hPbLo z@ZxTXo7xU!E!U7aK~L+~quO~Ke4_ZVdj*fYo+$7L^QcRH8#=^LeoBDh^|q1Dp^N8MCn)3vJ> z?RidQp+Y2G2vaY=*>48G6ML;PNMOr@lfN23k02p8c%{U%W8A>wG|lRjC=xa zHoV0-bg~3iKrcC{AWhc7%t13xK+e5nKQ8dmgAQP|_3d+6OE(Ucr?!?mH0xcjC&;66 z=kiZ@c#9~sj=+M|&cF!o(fLLj!|8dOQgUDqE47<8&M0+_Z@gM2y?R@~GICAN91bJWi&SDYCv#Q&@|D}r34+3)Fsb_J8~3XB2`xd4Y0ZIFGo8Y z0mr_z!2`W_nEI@m_b*%8a-P!WZf2{+(15RtYm7DR*dA%d=8}6W!voE<(-gpGB zDtvx(O%)m{{#`b8r=TtWh7>IMpnd!GluePjf^3-=lH2wsxPY&1>qg;rcdx(C8TDPxF;BX_ZX$9u z`oAaI-7_1=|FrY_SKUN&d^)yM!cZW(H)q%A5HcbL zSjHVhy>j6*UnyMJ8E?ggP=RSGgA+Obp2hsV1p5z*f5sla-isfI z5PO+k+JXke5Xntx{L1e{nPqN{CFX@p;9!DmaO(DAT$B~$loB78G#Vy&xvOv^+|;&2 zs7S|h=~mg}c-1s?yQM{h`)$Q8A$o?Cx7pKVj6_&mcFs z-{%$hpH2~%=rvK0&XkuOFN0D`qPQI*AoROSZbM8q{?HJ6KF=j@^x>jp&U%Rj(vcxV zvp=Z4Ki@(qHu97`0WFUn+s1Surw^xa^~BgZYo4yJb|4iVTP6Z?`bEDn?NNXznxsDp zEIf#sVmmPby&OrGYlBN4M>IhJ1)WsquCA-PeL0=j2|9+D@$5Gekdir17@&yAIaT6i z#qGpw>Z_P{spe)IerbYM|IbT|TNx$o{jhEHQ&+nJ?N|?J70xX3(T+m&6HlUk24;^W zBzy_P_s{S=xPX|LT80!-!n4Nl{yaS%aqv$3q!WSZ^^B&vG+yCnV_q6|EAa}s+^?0s zBJyqQPuFO?y&*aB8Zn(T$P8%68VyhRaHg}q1}_>6+0-f3M8QU&>bu!OlbLU2el)Pq z-#@H9u;f%*$MUrJHzPSQF>uV@S8Fg!R9Q-VkBW$dDL#lyu$j;@KOYjX!Ki9_FGor9 z&B7&VFFs2kv~1iKV>E46or;9UqU`Y@~%Wc;{ zAq4^Fy`Gbyghb%P&SsD?0TdV5Eu_HX)s&W2x(<2utm8sV%*}(>XnR+$6CV=f=@JIC zbh^B?!HH|#X0QH=pe80?qJgU8s*ASbsht{FZw_kgKob0*4-RLzaWlir+X$}&&oJ3m ze}3iK8(s1;m1xg=Kj1XwY@5?reP~MjK%=p6^ryn*Mm-s_A}_5HIX2qed`&`HMtK1( zRI5orji!r;dKC&3GQ0a-^X*DfqWP8{QjxA2?@Dk)Nno8mxj{32>`wjj2zm{H*{L8y zJKn{pi14;}T$E@!Fmrx9C(#`0hI|Tlmv*W|yLn~?)#DszwxaTETMYKv=Zp-T*&rmI z0^btDoz1)@vWc94mHm3sT4pY-7_(x#o1N{8puD=<-{0mX3%Siasj+#?_szT6is@k$ zT)dL@t*4(WQ=aiTg;oXU(L_MI6F4UkS6{93CN)Ym)p+D$V}VX~9vn-v0z{A%1Td7b zT+~#DFqN5nh*@R_jebZ?9}x8B<~$NlV1?Zd!;+H;@|7|pZp0p7HF0s#D5fYaEiG-z zpUkIi$OOI#kq~DkKtx0~L(!7&k8~j7RRpD#59P{H<4L~WwHu2!sJeB2xR3Ydo_P<3 zZKk{>Y^9EWOkNo+oD&;M(%~=zAK_S~6xPJVL_&IcI87x{W1~as&xNGonYEc_{N3r| z=-N_!?Ke80&^lksngZ%hkv&j%B;Mhi9^&#>I{6cYxjF=jW_+O%5=Ec%n~xjgLtis7 zj{~=j1X*8U?sS}Wcb00+Hd#QIRr9S4 zTgni(*_1AtzXKD1Md}^X<%IYbkWXUF#1g<(D3RqC4D1*u%M~576;7x;RX-Dwl45@u zDjZgV2ZAkP#<$N@wL&}k-qajKjOP2rP;RleXByJ8{_5%JF<*I15c8vEP0VVsozs-Z9}QuC8mHl%2<$<75{XqkA{a`)}aVfpp*M`4>3n%Uh{^Avd@a zW@77w64BcaHn0$I4`O>WT`Rq|pTR$O>-l0x2tdpG54L)(PrcwDiRb6f-dqdOGM2xk z&u{J6)%nPxXzPEoEF8boUeH>K?Y50f1(7{RhKD@AazcQ-eB~213T9BvnQYP0z2i^^ zE0WDJ1euvw{GFt)qyhps4g;(&>1}a`eSt;{byW>uKhpLY6IRQM9q1A^d%N=b`uv9- z(!0%4k4GLs&(LeCFIMyu}KdrjV%fqo`X}ePq%K zdin8}!DceL){-1-EJ}C8l36bVIH`1I**c7@HpG<1-}N6@N$lR<#2;W{)2baqgQ>@5UylWjv(me0-X*r?}xiG5CaV=gPrC z4p$n=rU)^Q7zDg`nMz7a@hqCI_PfT-=`}@HC`Iv(Fe#%7vqr@4zSZvhu0iE6M3H*! z#upV$uZ<$UJF7=~YKmsI@o7zWMrG5-)`usm+e|>%xk?qRePSRu(e-F3Wi~wn3GB}D zFT&c_mSfZ7uZwu!=_2~vcUgk&7}MpcRu;}x-o7x&ALn8#DQySkQD2)S!9hD6qYLWl zZkva=_Z92k6qc4heNKVP=z~DD@VHj zsO*Vf`IA|9#eZ=xR`k=CiK$|WVP*8ngJV~;!#6*1UdviiK#yTK{QlLt)o+x3s-{Z3 z>()p8wmkJ}WAys%AYE#DG3CY2s+yif!Iib9IhV?Va&#_kKG|S|Lv8z&?)tZyqm10# z*LHuMZ5MvRtoYoC;Nak#JRWDK3cO>HloT?Z2ysF>oFKO^g9m27T*slOQVyo1P@e zH8BasRAK4nb~R0jDNYsKeVkdC-Jna)N#rGg^2+k9{3A)=-MOolAw;jNkbbTv(B)U;(*EV45*)=3|dhlcO z%UpgcJx_nk*c#0!)peff>Crp+XtXkdkAQ#x3E-gaKtf~ELs%Fb#F03dZ(r&nq^8cm zJJ_FXKzz7OM%?tiq-bwhm@xsyhyH#hG@^S7OJ5OO7#Q{n@9ozH4PNM^eD)Gxc@T*m zNsig%^ZkRD6y3iAyGG6_P_N$;b#U8(H z=dLzufI>1cMtp=cSe>F-eE9x$M&{Jiz5c~IQ==9vT)7WAAtLOsvawp}h8{V!%}I{veI>87CaI9~dm z=~$}2Y-Q!mnzsj1sd_iD*Oe1f&>k^R&qE8HR?Rw7u*gi8^o!7?|2R{D?H7~<0zTk* zqP_W@zX#D=ZPK&9$(PKUK4=3wxQ3^mPD)7GD~B&3aTEBB1plSEvy7^$>-P8|1f)A8 z4&8zvU4kH85`qFE-6bg?4H5z>(hU-Va6lS`gQSSkCEb1KQ1Y(r`#g8N?-=jB_ro1` zjJrQ7Z1&o*)|~(UoWB()ju|rs?^3D~$$2Qx0ZQ2J^1fa$bL4K_mI_WTrKb!Kz==3T z1XkvIcQu{Or|fro6nuPk&|{FBb~H_=PAy8=Hmf@=`nA1XVXsPdcf;*Be_m-R&*j8t zhRsoz_AT)P@_c41P=^%#{R7nSgwYkxAY1mxx*pCDe8&JGZ@-}nEqJqmCpCEi6IC|F zPEN67KO3DmPER&tManP)cDk}FZFT|_GZyfUCv^m3)U+`?-le+7r$$*O+)89W-*2*si(h{J|tE_>T zq@JE89!zvoaq6Md~vP=sgTc6O{!JH|xtrJdn~+Q%~T}IG5-Kffi~E zU6$w6YjzeBAt)dcwSTxSJ-6sgWa^Fm{h=GI4ycA^S0W(Qjgh>6-G?|mIwfp1(&r6& zWj%G-#nkSQ&4rnRQ}mEQUInOwId@r9@e!MB?Vcg^MDg|)2V;O-=gIh?zJ0blFIR-2 zj`95OZIr*jt!kRlou)8)B^N++J*2)$pV-&H>*OqBj~I*v2;*t=w^*|LT55hj>vu%* z93?ahA}{Q1-nwqZTnQ-)-DR`7=LD##n@;;X3~#xa+J|+{M7t!H-B2VH{CVO&|^)|mX=Ay zc+;e8Q_hi_p;P7_28WS{(<+8H2W>|d6Rf{f-r{hhpSn_|Z;$bqD{pbo_1s+SMxy4P z@3Zx3q=l^V?L!>d#yFY; zVkr}?1z4#Sb_b^1%UVNdA>7sMEIuA!qpn(Gs0OHb;(n3wE$K2bvyoLqzr0-*vg zOGWksvkjZuyXzbY6g?Lr2M*Ck4hC|pr1Kpy>O!vk-86W%Kk3kJrY}wiFZ1K|W_=3k z-)^GldU3oHfLb+F1VT=XMF)@h-;W2B1@DE1mgtQQ8=5-(ZqG%HBqd*W+=_1LEb&u? zwP%vK3&sbZTXUY)>~n8EoHM z8!V#&f!@GZgJ-vYJUgJ0Wu~!r8kQ=h!y$$X|?fHzxf6GUTk|RM=%RHs{a_;4hH|9AW{IA~+S?9ctCu&X+D6@>3 zo24`#PI03aw1u&2{=$)vkoe_wOeE%ei0S1#i+{6hKhPNu4==Z@EcWmaAEY(1&qbH{ z)uW@M-|j!?%@8jdPsW7BF$7d4!k`9A4M0g5K;C_-itBqs6RFrNvwL#Vb}21MF4s9u zq%=Q}Z%ZfcMVDUZ*fH&QvNu-f85tYf=Avd$T)m81j$&xiGtj05>vot2-@}_dKSr+Q zn%wO#FWbOMS?x8I1{k87|8xyOT9-=3**HP+d_$EJxqi(mssY zEJJ_>>+DqYxwf-da}N{b9gl}H8S}2LG_$3matP^5v=c6o3)uoB1A&uw zE&>^)rO7BMt>@lAT`GTJaKO6qKO2=L;o${rV9Q2_Mq2QDhm@>r?5%@3p7L|ZP|*CN zj|cYel=9yVl7nbClI&apBt&p2S!s?Ud%O5Ez<{ag?(S7oSH~aBzJpjVhnz~`%Iazb zX$}t1A#np-*AboF!(ElQ?RV7{;64W3lwB@z=Ky+*^YaomoOyCy<`PP9Qt+el^nQMS*f%>kua(0jj*p>#b5vKasqO~-V;MVMD5Q`oK{`; ztUbb4+wv1$8EESj)Z%uK`tNP>fpqwRT~o+ifxN7DoQd>O?o?o9*Wbv(k7*zIq#tvu z&-i)JLnNw9$0V;#g+0M-3H0W!(X)|8mE1(?T8J|aQ95>orVQiuflUiYP)0tSagc82 zlkqb8Zj2-mX$6pOW_Boowx-Yv+yU|t^r;hHAL%lPU&v~mFupjiIT(X4B-eD^`rQ-< z@^IO8V{0#&c6)SYz;y&sz+C7|F!$<90*_okoWK^)5;!>t^+6iI8f%ZxU^rpukmjO> zq``G6dqX7(bY%x`6Tm~csXw9mJS)6wua9`VUH^U(kVxNEs~7lo+ok$YpOK@^r$=NK zd$wiN+e1_Iq~g>tVD-aQ5ihE4exBa=eEbM{`|?B!8eo=sIIM5Xr~FdFJpK60zEocl z<9zEI6BKT*Wf|LLWT!BV-+XLm^g3R5w=Fsp!sb+MGLLRG7V8w5t`<_y+@6a)t%sU` zCg2eQ7n8-9aM*4S@D#`rwdaqhoTYTQXeBFdf}zN<5Mh7M8pfODo5su4j^rzAA{qQf z3p$%xD`V!Pb1cX9(klc-6cAtT}Ee)b|47Nb;W_%MgL*e{o&qSQ;K-9EVGg01D}jn5j1cwId}Lf?q=N95N?x% z2o|hEh$|4z(eWD?6kmCW^F4J%6CG&9CZCM{Vz|{mCa3wB3HHSBgz}cCupXUJI_)BO zo?n0Pr=nZuAav)IduNZ%@A1i8xba9_^D$o;FYhN!tedR}pa%hoIVwvn<#h4Exzuym zOM;`4qsu>6KU=V8<>R8z&Xn_-2Y63tu&1!biAUgXy+3R$TK{R-aKyWj09|Hl7K_qa5rI+zuh%H5AxzhRd0@DQL=DM+TZ&s~{ob9Ygf(z+8Mbtp z&kFFHr4S^Ch|0*g;S4ij#j$))I^et-E@fQ8UughAa@=q-jhC>BqvAA-&2wzwbw!r(8vokpmzuiq1At)V&17eQl%F^NxN#;N& zA|SC`#s3t&iG%MN?CTO+l$cWQv_S?xk7QtzrNroz)@e?&t`qpYH9c(SgL}(94@`B@ zoF!?X!PTo%2z)1Jj8lNlNk3J_enY7KRH^x1yVgaxLXk?_$_OQQN|4w z?i*s0pA#>^L5W4M+z803wFM>c>(GR?lof%Q)%0Zg^2C~O36$ir5ArH3})DX;)Olg3aVA@ zI{>dqVF2-m;oko3n-z0?`H?FAag`X8a*Uj*xWW$Ik9|H(eCeqn1d|$_*mEi)!p9w9 zOmeQJ21W&U`fj@qSe(0XFC&stsn<)NX8~6Q$9_APbS{#uW7nf5)Pi2^4+*&JVq?)u zPYQ#0Fl9GVS^dnPoe(u^QgEu4T&4grKWagr9Gz#IUYV{dOC;sr!N+vS5Bdq;7z$vvqtelX2UKVVbBUIwIe|C8?fy>i+ zv^$PG`mW$&KC)4>Hdb`L1QW&ck_`00QSwMelVTyRX3)uz~z{&%|99N*T4s zMvdRcngEtKWTG?!Vg2jUw;0;=Kj<75*&iDKoztp%V$M{;2gx>F$8yn&jh^(x&#nq} zGS|AaZrOjY$DOnt$P*tepNxdB_?L1{)?G1%Ow^R^-T*6#cdRj=fq$?G{ZUCeAjaEZ z^Hd*~#)Bsb7G@#qm+K+p?>vSpML=!vx&tEqU%iZjFMoL%su#Xql)q4=O!^x}v%MOX zmWx~-c0M%tVa18QE8t zgm8i^9e5QabZZ6VL3&FMETw=&QjE!XT=U~q%IV$r>YU^YGi?elbq;v5;uLApwT5I{Suj(`aINmjf3f3~zK?!E>lp0GoSmXDa(|(){KLm^Do2+J8klHRS zQRF#QovzVN={Ze<8&!e89V-2XDfINqsQefp0Me+_{%mOV{T*%&X#l%LNTgSh2eA9k zk4K0LjAMW`m(fTXo;z&>UaFi*B@-YeVz@t`Yw?qQlvkk~0$MZYsz@^TI$AUJx3AK7 z-MpcV4{qJ6PBniv+qSy%rJ!7xZ#wz`t|8E(GeAI8#KL{49%-+NY;J7&)PV3bupuGXz=FnLyW`2eA3c+=9ogq{ z6t|`#Kc37?#NA5FmBNS=p%2mlCVq6lIumeqm0Vl5<=K!@@xcP@nvRI*(Ur~=!Ovvi z2k@IDg%#tEV_moIiq$eSN1XU!=SA5_C!PT;B(=q9Y4*ngl_90@Ctx;t)on>VJOYPw zMG4b?(R-1drz%$(3(Nu@o@#}63F*!m_+FUkXC!o6y1H@AavmBZP8)Y+9AGh0McT~Gr+IN+U~7~lMuXC#xbJhVJ&#abo(~#OqR1SrGE}P z`YW&sLj3|wk|K(e*7}ov@|i$d)fxQV^H@~6MA`Ty_rSE;Y9Ct)kDr#65@p@f&kSex^G1p%-zc`u*hfH*QP-r7mF zDnfJDqcYr(xub1dFKqf5I=_J=@3}cKzG;;l>wV9jp1#oL$12-Hqc>^a_BN%3HG9vZ zVb(Zca40E_|NJ>(C`b=23a|f-nu#hyi5lqNz>@`C?_TuCsInJ`yjauc_?t62PEA19 zT%sUn5?OCBmv|$AaJK$c0wz5Bp8TwL%ph(tPsqyGL_LBAE8qCLZK%L9z!(J2yjkMZ z(3+nu*(c9Q%vkLtpV3SjE|+@=Ow;QipLzWzDXKU{kDNT3q<@@(Aj8p>MT!urhLISp znVUDq1IGW{WDA<+aT1^+QliD0Fah7|sH+TYyn*p}0=YQRv|r%dXBvnDOKIYzp?~D_ zWPdj<+C640Tl>s7Vb%FQSE=I;;cWmh1~W_@%OWIxLDulinx>vs*`@M7TwpJ7lJ*H6ajfr zS|XXf7P+xdW}876qvO}xJ3)@|=~sRkQgTDDB2CW;j|>#^fZKQqp_s#l?#51@NZ5-5!?V9ELai4u=Ja z!%rfrqxtVm6gZ`)QgeD~A)-yk7(y$9XB;;F67))^_y#8T&!X92LA0VSxpoPih%%)2 zP5=~CfG_O++cM+wMiq{tCs2%;nWT(K)fH{fJ}4A?t|2IM#gwZ4cu`(P;m|8X<{7CR zy@Xz_b;sb)?SAHpn|xW4*Bl&p5)Z6&D|)jeqCadorlh6Jt(sDP0oCuI-_Bst`XTJ; zj#mduA(R05UL9VY9v-S28m8EZV21&IhW@+ydTQN5O(oDT2iV%-8tGT9RHnT;B?nJQ zeSZ#@3W6$={-PbmM6cyn@>)Ab`N7~k?`VWS;!=_flmaynmZ}~tUZoZimn)BDwnn@h z1l6+uqpnFO6?E-+cvQ~=$>_y>Z~ciMJw0t_EHeH*O&lO5C>dM>nZK{Meiu1!xj7V4 z?&zE7R@loBWJMN}hY~?y1N`6Oi~m!%xnDz!8xFvI!qWsGZ}r7{r^6LyFM@L=3FNK& zH2^j&Yp<%R;SJLE$e9ozIsmk>o|@4gc|uG=oauCc1*kbsSt0xlJz%!Hewz}xrW8N7 zwxoB{=_#C;xkN--62M zC;3yzOkzj(-(NbEApKu3ivJdq{@2P8$v4aWv~3LNI!T(^{@OQ37HoUx(0B*RMimYT z6I2U`qZDAUTtnXX>whvNAc3j#CdnEZ(E=I+H|dy1AoQ%j-F=|P8W9&q36m|(&yNiW zX-(S(yiMrLp}4rXx%v4fGS}2hO{sqW4(H^v<^x(9IP|j@%(?at@NyA|QckjH1!ig* z8b(o3xG@RXi3A)aq3Y~P&dxF~U*ePJ!#O9h6$}ip8yh76w{ThcAE&rr>FCh0v{~g| zc$s{C>1l)ccz&_+%P9a~q+XLVHAS$Ws{R?vRXhbbIrAMPv7#at_ZRHP1hU$ViY{_; zB<<$cJv=?hud`UuzJO9d(1-ZCdkMU9#4&6Ir6zXrrltmV6C*u(=&uCXV#(#1Ujr Date: Wed, 26 Feb 2025 20:23:58 +0800 Subject: [PATCH 14/34] enh: adjust log format --- source/client/src/clientEnv.c | 8 ++++---- source/client/src/clientImpl.c | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index e9c35f2599..33d0909d81 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -458,7 +458,7 @@ void destroyTscObj(void *pObj) { STscObj *pTscObj = pObj; int64_t tscId = pTscObj->id; - tscTrace("connObj:%" PRIx64 ", begin to destroy, p:%p", tscId, pTscObj); + tscTrace("connObj:%" PRIx64 ", begin destroy, p:%p", tscId, pTscObj); SClientHbKey connKey = {.tscRid = pTscObj->id, .connType = pTscObj->connType}; hbDeregisterConn(pTscObj, connKey); @@ -476,7 +476,7 @@ void destroyTscObj(void *pObj) { (void)taosThreadMutexDestroy(&pTscObj->mutex); taosMemoryFree(pTscObj); - tscTrace("connObj:0x%" PRIx64 ", end to destroy, p:%p", tscId, pTscObj); + tscTrace("connObj:0x%" PRIx64 ", end destroy, p:%p", tscId, pTscObj); } int32_t createTscObj(const char *user, const char *auth, const char *db, int32_t connType, SAppInstInfo *pAppInfo, @@ -682,7 +682,7 @@ void doDestroyRequest(void *p) { SRequestObj *pRequest = (SRequestObj *)p; uint64_t reqId = pRequest->requestId; - tscDebug("QID:0x%" PRIx64 ", begin to destroy request p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", begin destroy request p:%p", reqId, pRequest); int64_t nextReqRefId = pRequest->relation.nextRefId; @@ -724,7 +724,7 @@ void doDestroyRequest(void *p) { taosMemoryFreeClear(pRequest->effectiveUser); taosMemoryFreeClear(pRequest->sqlstr); taosMemoryFree(pRequest); - tscDebug("QID:0x%" PRIx64 ", end to destroy request p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", end destroy request p:%p", reqId, pRequest); destroyNextReq(nextReqRefId); } diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 83cf924a02..8a27b84612 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -2983,8 +2983,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s } taosMemoryFree(param); - tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end, affectRows:%" PRId64, *(int64_t*)taos, pRequest, - pRequest->body.resInfo.numOfRows); + tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end", *(int64_t*)taos, pRequest); return pRequest; } From fa36c140571741dda0a4e61998d5ec570f1c1002 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 20:33:22 +0800 Subject: [PATCH 15/34] fix: compile errors --- include/libs/function/taosudf.h | 8 ++++---- include/libs/qcom/query.h | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/libs/function/taosudf.h b/include/libs/function/taosudf.h index ece98ac243..cef0eee84b 100644 --- a/include/libs/function/taosudf.h +++ b/include/libs/function/taosudf.h @@ -347,10 +347,10 @@ typedef int32_t (*TScriptCloseFunc)(); extern int32_t udfDebugFlag; #define udfFatal(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF FATAL ", 1, 255, __VA_ARGS__); }} #define udfError(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF ERROR ", 1, 255, __VA_ARGS__); }} - #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} - #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} - #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} - #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} + #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} + #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} + #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} + #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} #endif // clang-format on diff --git a/include/libs/qcom/query.h b/include/libs/qcom/query.h index 065c7f92e8..6cb44ac13b 100644 --- a/include/libs/qcom/query.h +++ b/include/libs/qcom/query.h @@ -410,14 +410,14 @@ void* getTaskPoolWorkerCb(); ((*(_ctbname) == 't') && (0 == strncmp(_ctbname, TSDB_AUDIT_CTB_OPERATION, TSDB_AUDIT_CTB_OPERATION_LEN))) // clang-format off -#define qFatal(...) { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qError(...) { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qWarn(...) { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qInfo(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qDebug(...) { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} -#define qTrace(...) { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} -#define qDebugL(...){ if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} -#define qInfoL(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qFatal(...) do { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qError(...) do { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qWarn(...) do { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qInfo(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qDebug(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0) +#define qTrace(...) do { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} while(0) +#define qDebugL(...)do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0) +#define qInfoL(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define QRY_ERR_RET(c) \ From cdef618c950b8016413a8e74c0495d05aa1d96f4 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 20:41:04 +0800 Subject: [PATCH 16/34] fix: adjust log format --- source/client/jni/jniCommon.h | 44 +++++++--------------------------- source/client/src/clientImpl.c | 2 +- 2 files changed, 9 insertions(+), 37 deletions(-) diff --git a/source/client/jni/jniCommon.h b/source/client/jni/jniCommon.h index f636a11aef..690ccb1e61 100644 --- a/source/client/jni/jniCommon.h +++ b/source/client/jni/jniCommon.h @@ -22,42 +22,14 @@ #ifndef TDENGINE_JNICOMMON_H #define TDENGINE_JNICOMMON_H -#define jniFatal(...) \ - { \ - if (jniDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("JNI FATAL ", DEBUG_FATAL, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniError(...) \ - { \ - if (jniDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("JNI ERROR ", DEBUG_ERROR, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniWarn(...) \ - { \ - if (jniDebugFlag & DEBUG_WARN) { \ - taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniInfo(...) \ - { \ - if (jniDebugFlag & DEBUG_INFO) { \ - taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniDebug(...) \ - { \ - if (jniDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniTrace(...) \ - { \ - if (jniDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define jniFatal(...) do { if (jniDebugFlag & DEBUG_FATAL) { taosPrintLog("JNI FATAL ", DEBUG_FATAL, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniError(...) do { if (jniDebugFlag & DEBUG_ERROR) { taosPrintLog("JNI ERROR ", DEBUG_ERROR, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniWarn(...) do { if (jniDebugFlag & DEBUG_WARN) { taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniInfo(...) do { if (jniDebugFlag & DEBUG_INFO) { taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniDebug(...) do { if (jniDebugFlag & DEBUG_DEBUG) { taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniTrace(...) do { if (jniDebugFlag & DEBUG_TRACE) { taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); }} while(0) +// clang-format on extern jclass g_arrayListClass; extern jmethodID g_arrayListConstructFp; diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 8a27b84612..5cb8e83b28 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -1659,7 +1659,7 @@ int32_t taosConnectImpl(const char* user, const char* auth, const char* db, __ta *pTscObj = NULL; return terrno; } else { - tscDebug("0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, + tscDebug("connObj:0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, (*pTscObj)->connId, (*pTscObj)->pAppInfo->pTransporter, pRequest->requestId); destroyRequest(pRequest); } From ebc8a2e43338434f2134a744202a315aa6e7a974 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 20 Feb 2025 19:50:37 +0800 Subject: [PATCH 17/34] fix:[TD-337958]send batch metadata & remove data if subscribe only meta --- source/dnode/vnode/src/tq/tqRead.c | 16 +++ source/dnode/vnode/src/tq/tqScan.c | 4 +- source/dnode/vnode/src/tq/tqUtil.c | 171 +++++++++++++++++++---------- 3 files changed, 134 insertions(+), 57 deletions(-) diff --git a/source/dnode/vnode/src/tq/tqRead.c b/source/dnode/vnode/src/tq/tqRead.c index d650ae9751..ee705ed374 100644 --- a/source/dnode/vnode/src/tq/tqRead.c +++ b/source/dnode/vnode/src/tq/tqRead.c @@ -1098,6 +1098,22 @@ int32_t tqRetrieveTaosxBlock(STqReader* pReader, SMqDataRsp* pRsp, SArray* block *pSubmitTbDataRet = pSubmitTbData; } + if (fetchMeta == ONLY_META) { + if (pSubmitTbData->pCreateTbReq != NULL) { + if (pRsp->createTableReq == NULL){ + pRsp->createTableReq = taosArrayInit(0, POINTER_BYTES); + if (pRsp->createTableReq == NULL){ + return terrno; + } + } + if (taosArrayPush(pRsp->createTableReq, &pSubmitTbData->pCreateTbReq) == NULL){ + return terrno; + } + pSubmitTbData->pCreateTbReq = NULL; + } + return 0; + } + int32_t sversion = pSubmitTbData->sver; int64_t uid = pSubmitTbData->uid; pReader->lastBlkUid = uid; diff --git a/source/dnode/vnode/src/tq/tqScan.c b/source/dnode/vnode/src/tq/tqScan.c index 70a165906e..9d1b99f483 100644 --- a/source/dnode/vnode/src/tq/tqScan.c +++ b/source/dnode/vnode/src/tq/tqScan.c @@ -339,6 +339,9 @@ static void tqProcessSubData(STQ* pTq, STqHandle* pHandle, SMqDataRsp* pRsp, int bool tmp = (pSubmitTbData->flags & pRequest->sourceExcluded) != 0; TSDB_CHECK_CONDITION(!tmp, code, lino, END, TSDB_CODE_SUCCESS); + if (pHandle->fetchMeta == ONLY_META){ + goto END; + } int32_t blockNum = taosArrayGetSize(pBlocks) == 0 ? 1 : taosArrayGetSize(pBlocks); if (pRsp->withTbName) { @@ -347,7 +350,6 @@ static void tqProcessSubData(STQ* pTq, STqHandle* pHandle, SMqDataRsp* pRsp, int TSDB_CHECK_CODE(code, lino, END); } - tmp = (pHandle->fetchMeta == ONLY_META && pSubmitTbData->pCreateTbReq == NULL); TSDB_CHECK_CONDITION(!tmp, code, lino, END, TSDB_CODE_SUCCESS); for (int32_t i = 0; i < blockNum; i++) { if (taosArrayGetSize(pBlocks) == 0){ diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 9866528446..4d908b5d57 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -226,6 +226,82 @@ static void tDeleteCommon(void* parm) {} taosxRsp.createTableNum > 0 ? TMQ_MSG_TYPE__POLL_DATA_META_RSP : \ (pRequest->rawData == 1 ? TMQ_MSG_TYPE__POLL_RAW_DATA_RSP : TMQ_MSG_TYPE__POLL_DATA_RSP) +static int32_t buildBatchMeta(SMqBatchMetaRsp *btMetaRsp, int16_t type, int32_t bodyLen, void* body){ + int32_t code = 0; + + if (!btMetaRsp->batchMetaReq) { + btMetaRsp->batchMetaReq = taosArrayInit(4, POINTER_BYTES); + TQ_NULL_GO_TO_END(btMetaRsp->batchMetaReq); + btMetaRsp->batchMetaLen = taosArrayInit(4, sizeof(int32_t)); + TQ_NULL_GO_TO_END(btMetaRsp->batchMetaLen); + } + + SMqMetaRsp tmpMetaRsp = {0}; + tmpMetaRsp.resMsgType = type; + tmpMetaRsp.metaRspLen = bodyLen; + tmpMetaRsp.metaRsp = body; + uint32_t len = 0; + tEncodeSize(tEncodeMqMetaRsp, &tmpMetaRsp, len, code); + if (TSDB_CODE_SUCCESS != code) { + tqError("tmq extract meta from log, tEncodeMqMetaRsp error"); + goto END; + } + int32_t tLen = sizeof(SMqRspHead) + len; + void* tBuf = taosMemoryCalloc(1, tLen); + TQ_NULL_GO_TO_END(tBuf); + void* metaBuff = POINTER_SHIFT(tBuf, sizeof(SMqRspHead)); + SEncoder encoder = {0}; + tEncoderInit(&encoder, metaBuff, len); + code = tEncodeMqMetaRsp(&encoder, &tmpMetaRsp); + tEncoderClear(&encoder); + + if (code < 0) { + tqError("tmq extract meta from log, tEncodeMqMetaRsp error"); + goto END; + } + TQ_NULL_GO_TO_END (taosArrayPush(btMetaRsp->batchMetaReq, &tBuf)); + TQ_NULL_GO_TO_END (taosArrayPush(btMetaRsp->batchMetaLen, &tLen)); + +END: + return code; +} + +static int32_t buildBatchCreateContent(SMqDataRsp *taosxRsp, void** pBuf, int32_t *len){ + int32_t code = 0; + SVCreateTbBatchReq pReq = {0}; + pReq.nReqs = taosArrayGetSize(taosxRsp->createTableReq); + pReq.pArray = taosArrayInit(1, sizeof(struct SVCreateTbReq)); + TQ_NULL_GO_TO_END(pReq.pArray); + for (int i = 0; i < taosArrayGetSize(taosxRsp->createTableReq); i++){ + void *createTableReq = taosArrayGetP(taosxRsp->createTableReq, i); + TQ_NULL_GO_TO_END(taosArrayPush(pReq.pArray, createTableReq)); + } + tEncodeSize(tEncodeSVCreateTbBatchReq, &pReq, *len, code); + if (code < 0) { + goto END; + } + len += sizeof(SMsgHead); + *pBuf = taosMemoryMalloc(*len); + TQ_NULL_GO_TO_END(pBuf); + SEncoder coder = {0}; + tEncoderInit(&coder, POINTER_SHIFT(*pBuf, sizeof(SMsgHead)), *len); + code = tEncodeSVCreateTbBatchReq(&coder, &pReq); + tEncoderClear(&coder); + +END: + taosArrayDestroy(pReq.pArray); + return code; +} + +#define SEND_BATCH_META_RSP \ +tqOffsetResetToLog(&btMetaRsp.rspOffset, fetchVer);\ +code = tqSendBatchMetaPollRsp(pHandle, pMsg, pRequest, &btMetaRsp, vgId);\ +goto END; + +#define SEND_DATA_RSP \ +tqOffsetResetToLog(&taosxRsp.rspOffset, fetchVer);\ +code = tqSendDataRsp(pHandle, pMsg, pRequest, &taosxRsp, POLL_RSP_TYPE(pRequest, taosxRsp), vgId);\ +goto END; static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, const SMqPollReq* pRequest, SRpcMsg* pMsg, STqOffsetVal* offset) { int32_t vgId = TD_VID(pTq->pVnode); @@ -261,6 +337,7 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, uint64_t st = taosGetTimestampMs(); int totalRows = 0; int32_t totalMetaRows = 0; + int32_t totalAutoMetaRows = 0; while (1) { int32_t savedEpoch = atomic_load_32(&pHandle->epoch); if (savedEpoch > pRequest->epoch) { @@ -271,15 +348,10 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, } if (tqFetchLog(pTq, pHandle, &fetchVer, pRequest->reqId) < 0) { - if (totalMetaRows > 0) { - tqOffsetResetToLog(&btMetaRsp.rspOffset, fetchVer); - code = tqSendBatchMetaPollRsp(pHandle, pMsg, pRequest, &btMetaRsp, vgId); - goto END; + if (totalMetaRows > 0 || totalAutoMetaRows > 0) { + SEND_BATCH_META_RSP } - tqOffsetResetToLog(&taosxRsp.rspOffset, fetchVer); - code = tqSendDataRsp(pHandle, pMsg, pRequest, &taosxRsp, - POLL_RSP_TYPE(pRequest, taosxRsp), vgId); - goto END; + SEND_DATA_RSP } SWalCont* pHead = &pHandle->pWalReader->pHead->head; @@ -288,11 +360,11 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, // process meta if (pHead->msgType != TDMT_VND_SUBMIT) { + if (totalAutoMetaRows > 0){ + SEND_BATCH_META_RSP + } if (totalRows > 0) { - tqOffsetResetToLog(&taosxRsp.rspOffset, fetchVer); - code = tqSendDataRsp(pHandle, pMsg, pRequest, &taosxRsp, - POLL_RSP_TYPE(pRequest, taosxRsp), vgId); - goto END; + SEND_DATA_RSP } if ((pRequest->sourceExcluded & TD_REQ_FROM_TAOX) != 0) { @@ -318,53 +390,20 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, code = tqSendMetaPollRsp(pHandle, pMsg, pRequest, &metaRsp, vgId); goto END; } - - if (!btMetaRsp.batchMetaReq) { - btMetaRsp.batchMetaReq = taosArrayInit(4, POINTER_BYTES); - TQ_NULL_GO_TO_END(btMetaRsp.batchMetaReq); - btMetaRsp.batchMetaLen = taosArrayInit(4, sizeof(int32_t)); - TQ_NULL_GO_TO_END(btMetaRsp.batchMetaLen); - } + code = buildBatchMeta(&btMetaRsp, pHead->msgType, pHead->bodyLen, pHead->body); fetchVer++; - - SMqMetaRsp tmpMetaRsp = {0}; - tmpMetaRsp.resMsgType = pHead->msgType; - tmpMetaRsp.metaRspLen = pHead->bodyLen; - tmpMetaRsp.metaRsp = pHead->body; - uint32_t len = 0; - tEncodeSize(tEncodeMqMetaRsp, &tmpMetaRsp, len, code); - if (TSDB_CODE_SUCCESS != code) { - tqError("tmq extract meta from log, tEncodeMqMetaRsp error"); + if (code != 0){ continue; } - int32_t tLen = sizeof(SMqRspHead) + len; - void* tBuf = taosMemoryCalloc(1, tLen); - TQ_NULL_GO_TO_END(tBuf); - void* metaBuff = POINTER_SHIFT(tBuf, sizeof(SMqRspHead)); - SEncoder encoder = {0}; - tEncoderInit(&encoder, metaBuff, len); - code = tEncodeMqMetaRsp(&encoder, &tmpMetaRsp); - tEncoderClear(&encoder); - - if (code < 0) { - tqError("tmq extract meta from log, tEncodeMqMetaRsp error"); - continue; - } - TQ_NULL_GO_TO_END (taosArrayPush(btMetaRsp.batchMetaReq, &tBuf)); - TQ_NULL_GO_TO_END (taosArrayPush(btMetaRsp.batchMetaLen, &tLen)); totalMetaRows++; if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || (taosGetTimestampMs() - st > pRequest->timeout)) { - tqOffsetResetToLog(&btMetaRsp.rspOffset, fetchVer); - code = tqSendBatchMetaPollRsp(pHandle, pMsg, pRequest, &btMetaRsp, vgId); - goto END; + SEND_BATCH_META_RSP } continue; } if (totalMetaRows > 0) { - tqOffsetResetToLog(&btMetaRsp.rspOffset, fetchVer); - code = tqSendBatchMetaPollRsp(pHandle, pMsg, pRequest, &btMetaRsp, vgId); - goto END; + SEND_BATCH_META_RSP } // process data @@ -376,17 +415,37 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, TQ_ERR_GO_TO_END(tqTaosxScanLog(pTq, pHandle, submit, &taosxRsp, &totalRows, pRequest)); + if (pHandle->fetchMeta == ONLY_META){ + int32_t len = 0; + void *pBuf = NULL; + code = buildBatchCreateContent(&taosxRsp, &pBuf, &len); + if (code == 0){ + code = buildBatchMeta(&btMetaRsp, TDMT_VND_CREATE_TABLE, len, pBuf); + } + taosMemoryFree(pBuf); + taosArrayDestroyP(taosxRsp.createTableReq, NULL); + taosxRsp.createTableReq = NULL; + fetchVer++; + if (code != 0){ + continue; + } + totalAutoMetaRows ++; + if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || (taosGetTimestampMs() - st > pRequest->timeout)) { + SEND_BATCH_META_RSP + } + continue; + } + if ((pRequest->rawData == 0 && totalRows >= pRequest->minPollRows) || (taosGetTimestampMs() - st > pRequest->timeout) || (pRequest->rawData != 0 && (taosArrayGetSize(taosxRsp.blockData) > pRequest->minPollRows || terrno == TSDB_CODE_TMQ_RAW_DATA_SPLIT))) { -// tqDebug("start to send rsp, block num:%d, totalRows:%d, createTableNum:%d, terrno:%d", -// (int)taosArrayGetSize(taosxRsp.blockData), totalRows, taosxRsp.createTableNum, terrno); - tqOffsetResetToLog(&taosxRsp.rspOffset, terrno == TSDB_CODE_TMQ_RAW_DATA_SPLIT ? fetchVer : fetchVer + 1); - code = tqSendDataRsp(pHandle, pMsg, pRequest, &taosxRsp, - POLL_RSP_TYPE(pRequest, taosxRsp), vgId); - if (terrno == TSDB_CODE_TMQ_RAW_DATA_SPLIT){terrno = 0;} - goto END; + if (terrno == TSDB_CODE_TMQ_RAW_DATA_SPLIT){ + terrno = 0; + } else{ + fetchVer++; + } + SEND_DATA_RSP } else { fetchVer++; } From a823efb3c47ceb1316ed7e52238c69f2ee60f3e7 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 21 Feb 2025 11:49:17 +0800 Subject: [PATCH 18/34] feat:[TD-33798]modify metadata logic for tmq --- source/common/src/tglobal.c | 2 +- source/dnode/vnode/src/tq/tqScan.c | 22 +- source/dnode/vnode/src/tq/tqUtil.c | 22 +- tests/parallel_test/cases.task | 1 - tests/parallel_test/cases_tdengine.task | 2 +- .../7-tmq/{tmq_ts-5473.py => tmq_c_test.py} | 8 + tests/system-test/7-tmq/tmq_taosx.py | 48 +-- tests/system-test/7-tmq/tmq_ts-5776.py | 39 --- utils/test/c/CMakeLists.txt | 8 + utils/test/c/tmq_td33798.c | 312 ++++++++++++++++++ 10 files changed, 375 insertions(+), 89 deletions(-) rename tests/system-test/7-tmq/{tmq_ts-5473.py => tmq_c_test.py} (81%) delete mode 100644 tests/system-test/7-tmq/tmq_ts-5776.py create mode 100644 utils/test/c/tmq_td33798.c diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index 2fd16b4f67..6369358008 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -188,7 +188,7 @@ char tsCheckpointBackupDir[PATH_MAX] = "/var/lib/taos/backup/checkpoint/"; // tmq int32_t tmqMaxTopicNum = 20; -int32_t tmqRowSize = 4096; +int32_t tmqRowSize = 1000; // query int32_t tsQueryPolicy = 1; bool tsQueryTbNotExistAsEmpty = false; diff --git a/source/dnode/vnode/src/tq/tqScan.c b/source/dnode/vnode/src/tq/tqScan.c index 9d1b99f483..549a47d006 100644 --- a/source/dnode/vnode/src/tq/tqScan.c +++ b/source/dnode/vnode/src/tq/tqScan.c @@ -405,14 +405,16 @@ static void preProcessSubmitMsg(STqHandle* pHandle, const SMqPollReq* pRequest, } int64_t uid = pSubmitTbData->uid; - if (taosHashGet(pRequest->uidHash, &uid, LONG_BYTES) != NULL) { - tqDebug("poll rawdata split,uid:%" PRId64 " is already exists", uid); - terrno = TSDB_CODE_TMQ_RAW_DATA_SPLIT; - return; - } else { - int32_t code = taosHashPut(pRequest->uidHash, &uid, LONG_BYTES, &uid, LONG_BYTES); - if (code != 0){ - tqError("failed to add table uid to hash, code:%d, uid:%"PRId64, code, uid); + if (pRequest->rawData) { + if (taosHashGet(pRequest->uidHash, &uid, LONG_BYTES) != NULL) { + tqDebug("poll rawdata split,uid:%" PRId64 " is already exists", uid); + terrno = TSDB_CODE_TMQ_RAW_DATA_SPLIT; + return; + } else { + int32_t code = taosHashPut(pRequest->uidHash, &uid, LONG_BYTES, &uid, LONG_BYTES); + if (code != 0) { + tqError("failed to add table uid to hash, code:%d, uid:%" PRId64, code, uid); + } } } @@ -455,9 +457,7 @@ int32_t tqTaosxScanLog(STQ* pTq, STqHandle* pHandle, SPackedData submit, SMqData } code = tqReaderSetSubmitMsg(pReader, submit.msgStr, submit.msgLen, submit.ver, rawList); TSDB_CHECK_CODE(code, lino, END); - if (pRequest->rawData) { - preProcessSubmitMsg(pHandle, pRequest, &rawList); - } + preProcessSubmitMsg(pHandle, pRequest, &rawList); // data could not contains same uid data in rawdata mode if (pRequest->rawData != 0 && terrno == TSDB_CODE_TMQ_RAW_DATA_SPLIT){ goto END; diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 4d908b5d57..7dc9a88164 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -266,7 +266,7 @@ END: return code; } -static int32_t buildBatchCreateContent(SMqDataRsp *taosxRsp, void** pBuf, int32_t *len){ +static int32_t buildCreateTbBatchReqBinary(SMqDataRsp *taosxRsp, void** pBuf, int32_t *len){ int32_t code = 0; SVCreateTbBatchReq pReq = {0}; pReq.nReqs = taosArrayGetSize(taosxRsp->createTableReq); @@ -280,7 +280,7 @@ static int32_t buildBatchCreateContent(SMqDataRsp *taosxRsp, void** pBuf, int32_ if (code < 0) { goto END; } - len += sizeof(SMsgHead); + *len += sizeof(SMsgHead); *pBuf = taosMemoryMalloc(*len); TQ_NULL_GO_TO_END(pBuf); SEncoder coder = {0}; @@ -337,7 +337,6 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, uint64_t st = taosGetTimestampMs(); int totalRows = 0; int32_t totalMetaRows = 0; - int32_t totalAutoMetaRows = 0; while (1) { int32_t savedEpoch = atomic_load_32(&pHandle->epoch); if (savedEpoch > pRequest->epoch) { @@ -348,7 +347,7 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, } if (tqFetchLog(pTq, pHandle, &fetchVer, pRequest->reqId) < 0) { - if (totalMetaRows > 0 || totalAutoMetaRows > 0) { + if (totalMetaRows > 0) { SEND_BATCH_META_RSP } SEND_DATA_RSP @@ -360,9 +359,6 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, // process meta if (pHead->msgType != TDMT_VND_SUBMIT) { - if (totalAutoMetaRows > 0){ - SEND_BATCH_META_RSP - } if (totalRows > 0) { SEND_DATA_RSP } @@ -402,7 +398,7 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, continue; } - if (totalMetaRows > 0) { + if (totalMetaRows > 0 && pHandle->fetchMeta != ONLY_META) { SEND_BATCH_META_RSP } @@ -415,10 +411,10 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, TQ_ERR_GO_TO_END(tqTaosxScanLog(pTq, pHandle, submit, &taosxRsp, &totalRows, pRequest)); - if (pHandle->fetchMeta == ONLY_META){ + if (pHandle->fetchMeta == ONLY_META && taosArrayGetSize(taosxRsp.createTableReq) > 0){ int32_t len = 0; void *pBuf = NULL; - code = buildBatchCreateContent(&taosxRsp, &pBuf, &len); + code = buildCreateTbBatchReqBinary(&taosxRsp, &pBuf, &len); if (code == 0){ code = buildBatchMeta(&btMetaRsp, TDMT_VND_CREATE_TABLE, len, pBuf); } @@ -429,8 +425,10 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, if (code != 0){ continue; } - totalAutoMetaRows ++; - if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || (taosGetTimestampMs() - st > pRequest->timeout)) { + totalMetaRows++; + if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || + (taosGetTimestampMs() - st > pRequest->timeout) || + (!pRequest->enableBatchMeta && !pRequest->useSnapshot)) { SEND_BATCH_META_RSP } continue; diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index 663f9f611c..49a4185cb3 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -471,7 +471,6 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts5466.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_td33504.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts-5473.py -,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts-5776.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts5906.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-32187.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-33225.py diff --git a/tests/parallel_test/cases_tdengine.task b/tests/parallel_test/cases_tdengine.task index e52fe68957..18c50322ad 100644 --- a/tests/parallel_test/cases_tdengine.task +++ b/tests/parallel_test/cases_tdengine.task @@ -298,7 +298,7 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/dataFromTsdbNWal-multiCtb.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_taosx.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts5466.py -,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts-5473.py +,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_c_test.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-32187.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-33225.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts4563.py diff --git a/tests/system-test/7-tmq/tmq_ts-5473.py b/tests/system-test/7-tmq/tmq_c_test.py similarity index 81% rename from tests/system-test/7-tmq/tmq_ts-5473.py rename to tests/system-test/7-tmq/tmq_c_test.py index ad08fa559c..a2ed4aa708 100644 --- a/tests/system-test/7-tmq/tmq_ts-5473.py +++ b/tests/system-test/7-tmq/tmq_c_test.py @@ -29,6 +29,14 @@ class TDTestCase: tdLog.info(cmdStr) os.system(cmdStr) + cmdStr = '%s/build/bin/tmq_ts5776'%(buildPath) + tdLog.info(cmdStr) + os.system(cmdStr) + + cmdStr = '%s/build/bin/tmq_td33798'%(buildPath) + tdLog.info(cmdStr) + os.system(cmdStr) + return def stop(self): diff --git a/tests/system-test/7-tmq/tmq_taosx.py b/tests/system-test/7-tmq/tmq_taosx.py index 845e7229a8..053b29c013 100644 --- a/tests/system-test/7-tmq/tmq_taosx.py +++ b/tests/system-test/7-tmq/tmq_taosx.py @@ -677,34 +677,34 @@ class TDTestCase: tdSql.execute(f'drop database d1') def run(self): - self.consume_TS_5067_Test() - self.consumeTest() - self.consume_ts_4544() - self.consume_ts_4551() - self.consume_TS_4540_Test() - self.consume_td_31283() + # self.consume_TS_5067_Test() + # self.consumeTest() + # self.consume_ts_4544() + # self.consume_ts_4551() + # self.consume_TS_4540_Test() + # self.consume_td_31283() tdSql.prepare() self.checkWal1VgroupOnlyMeta() - self.checkWal1Vgroup() - self.checkSnapshot1Vgroup() - - self.checkWal1VgroupTable() - self.checkSnapshot1VgroupTable() - - self.checkWalMultiVgroups() - self.checkWalMultiVgroupsRawData() - self.checkSnapshotMultiVgroups() - - self.checkWalMultiVgroupsWithDropTable() - - self.checkSnapshotMultiVgroupsWithDropTable() - - self.checkSnapshot1VgroupBtmeta() - self.checkSnapshot1VgroupTableBtmeta() - self.checkSnapshotMultiVgroupsBtmeta() - self.checkSnapshotMultiVgroupsWithDropTableBtmeta() + # self.checkWal1Vgroup() + # self.checkSnapshot1Vgroup() + # + # self.checkWal1VgroupTable() + # self.checkSnapshot1VgroupTable() + # + # self.checkWalMultiVgroups() + # self.checkWalMultiVgroupsRawData() + # self.checkSnapshotMultiVgroups() + # + # self.checkWalMultiVgroupsWithDropTable() + # + # self.checkSnapshotMultiVgroupsWithDropTable() + # + # self.checkSnapshot1VgroupBtmeta() + # self.checkSnapshot1VgroupTableBtmeta() + # self.checkSnapshotMultiVgroupsBtmeta() + # self.checkSnapshotMultiVgroupsWithDropTableBtmeta() def stop(self): tdSql.close() diff --git a/tests/system-test/7-tmq/tmq_ts-5776.py b/tests/system-test/7-tmq/tmq_ts-5776.py deleted file mode 100644 index 738d69701f..0000000000 --- a/tests/system-test/7-tmq/tmq_ts-5776.py +++ /dev/null @@ -1,39 +0,0 @@ - -import taos -import sys -import time -import socket -import os -import threading - -from util.log import * -from util.sql import * -from util.cases import * -from util.dnodes import * -from util.common import * -from taos.tmq import * -sys.path.append("./7-tmq") -from tmqCommon import * - -class TDTestCase: - updatecfgDict = {'debugFlag': 135, 'asynclog': 0} - def init(self, conn, logSql, replicaVar=1): - self.replicaVar = int(replicaVar) - tdLog.debug(f"start to excute {__file__}") - tdSql.init(conn.cursor()) - #tdSql.init(conn.cursor(), logSql) # output sql.txt file - - def run(self): - buildPath = tdCom.getBuildPath() - cmdStr = '%s/build/bin/tmq_ts5776'%(buildPath) - tdLog.info(cmdStr) - os.system(cmdStr) - - return - - def stop(self): - tdSql.close() - tdLog.success(f"{__file__} successfully executed") - -tdCases.addLinux(__file__, TDTestCase()) -tdCases.addWindows(__file__, TDTestCase()) diff --git a/utils/test/c/CMakeLists.txt b/utils/test/c/CMakeLists.txt index d73f91aad3..1b2716b8e5 100644 --- a/utils/test/c/CMakeLists.txt +++ b/utils/test/c/CMakeLists.txt @@ -8,6 +8,7 @@ add_executable(tmq_td32526 tmq_td32526.c) add_executable(tmq_td32187 tmq_td32187.c) add_executable(tmq_ts5776 tmq_ts5776.c) add_executable(tmq_td32471 tmq_td32471.c) +add_executable(tmq_td33798 tmq_td33798.c) add_executable(tmq_write_raw_test tmq_write_raw_test.c) add_executable(write_raw_block_test write_raw_block_test.c) add_executable(sml_test sml_test.c) @@ -81,6 +82,13 @@ target_link_libraries( PUBLIC common PUBLIC os ) +target_link_libraries( + tmq_td33798 + PUBLIC ${TAOS_LIB} + PUBLIC util + PUBLIC common + PUBLIC os +) target_link_libraries( tmq_td32526 PUBLIC ${TAOS_LIB} diff --git a/utils/test/c/tmq_td33798.c b/utils/test/c/tmq_td33798.c new file mode 100644 index 0000000000..a029b17b61 --- /dev/null +++ b/utils/test/c/tmq_td33798.c @@ -0,0 +1,312 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include +#include +#include "cJSON.h" +#include "taos.h" +#include "tmsg.h" +#include "types.h" + +bool batchMeta = false; +int32_t consumeIndex = 0; +static TAOS* use_db() { + TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + if (pConn == NULL) { + return NULL; + } + + TAOS_RES* pRes = taos_query(pConn, "use db_taosx"); + if (taos_errno(pRes) != 0) { + printf("error in use db_taosx, reason:%s\n", taos_errstr(pRes)); + return NULL; + } + taos_free_result(pRes); + return pConn; +} + +void checkBatchMeta(TAOS_RES* msg){ + char* result = tmq_get_json_meta(msg); + printf("meta result: %s\n", result); + switch (consumeIndex) { + case 0: + ASSERT(strcmp(result, "{\"tmq_meta_version\":\"1.0\",\"metas\":[{\"type\":\"create\",\"tableType\":\"super\",\"tableName\":\"st1\",\"columns\":[{\"name\":\"ts\",\"type\":9,\"isPrimarykey\":false,\"encode\":\"delta-i\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c1\",\"type\":4,\"isPrimarykey\":false,\"encode\":\"simple8b\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c2\",\"type\":6,\"isPrimarykey\":false,\"encode\":\"delta-d\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c3\",\"type\":8,\"length\":16,\"isPrimarykey\":false,\"encode\":\"disabled\",\"compress\":\"zstd\",\"level\":\"medium\"}],\"tags\":[{\"name\":\"t1\",\"type\":4},{\"name\":\"t3\",\"type\":10,\"length\":8},{\"name\":\"t4\",\"type\":1}]},{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct0\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]},{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct1\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]},{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct11\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]},{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct10\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]},{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct2\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[{\"tableName\":\"ct2\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}]},{\"tableName\":\"ct3\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}]}]}]}") == 0); + break; + default: + ASSERT(0); + break; + } + + tmq_free_json_meta(result); +} + +void checkNonBatchMeta(TAOS_RES* msg){ + char* result = tmq_get_json_meta(msg); + printf("meta result: %s\n", result); + switch (consumeIndex) { + case 0: + ASSERT(strcmp(result, "{\"type\":\"create\",\"tableType\":\"super\",\"tableName\":\"st1\",\"columns\":[{\"name\":\"ts\",\"type\":9,\"isPrimarykey\":false,\"encode\":\"delta-i\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c1\",\"type\":4,\"isPrimarykey\":false,\"encode\":\"simple8b\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c2\",\"type\":6,\"isPrimarykey\":false,\"encode\":\"delta-d\",\"compress\":\"lz4\",\"level\":\"medium\"},{\"name\":\"c3\",\"type\":8,\"length\":16,\"isPrimarykey\":false,\"encode\":\"disabled\",\"compress\":\"zstd\",\"level\":\"medium\"}],\"tags\":[{\"name\":\"t1\",\"type\":4},{\"name\":\"t3\",\"type\":10,\"length\":8},{\"name\":\"t4\",\"type\":1}]}") == 0); + break; + case 1: + ASSERT(strcmp(result, "{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct0\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]}") == 0); + break; + case 2: + ASSERT(strcmp(result, "{\"tmq_meta_version\":\"1.0\",\"metas\":[{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct1\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]}]}") == 0); + break; + case 3: + ASSERT(strcmp(result, "{\"tmq_meta_version\":\"1.0\",\"metas\":[{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct11\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]}]}") == 0); + break; + case 4: + ASSERT(strcmp(result, "{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct10\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[]}") == 0); + break; + case 5: + ASSERT(strcmp(result, "{\"tmq_meta_version\":\"1.0\",\"metas\":[{\"type\":\"create\",\"tableType\":\"child\",\"tableName\":\"ct2\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}],\"createList\":[{\"tableName\":\"ct2\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}]},{\"tableName\":\"ct3\",\"using\":\"st1\",\"tagNum\":3,\"tags\":[{\"name\":\"t1\",\"type\":4,\"value\":1000},{\"name\":\"t3\",\"type\":10,\"value\":\"\\\"ttt\\\"\"},{\"name\":\"t4\",\"type\":1,\"value\":1}]}]}]}") == 0); + break; + default: + ASSERT(0); + break; + } + + tmq_free_json_meta(result); +} + +static void msg_process(TAOS_RES* msg) { + printf("-----------topic-------------: %s\n", tmq_get_topic_name(msg)); + printf("db: %s\n", tmq_get_db_name(msg)); + printf("vg: %d\n", tmq_get_vgroup_id(msg)); + TAOS* pConn = use_db(); + ASSERT (tmq_get_res_type(msg) == TMQ_RES_TABLE_META); + if (batchMeta){ + checkBatchMeta(msg); + } else { + checkNonBatchMeta(msg); + } + taos_close(pConn); +} + +int buildDatabase(TAOS* pConn, TAOS_RES* pRes) { + pRes = taos_query(pConn, + "create stable if not exists st1 (ts timestamp, c1 int, c2 float, c3 binary(16)) tags(t1 int, t3 " + "nchar(8), t4 bool)"); + if (taos_errno(pRes) != 0) { + printf("failed to create super table st1, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "create table if not exists ct0 using st1 tags(1000, \"ttt\", true)"); + if (taos_errno(pRes) != 0) { + printf("failed to create child table tu1, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "insert into ct1 using st1 tags(1000, \"ttt\", true) values(1626006833400, 1, 2, 'a')"); + if (taos_errno(pRes) != 0) { + printf("failed to insert into ct0, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "insert into ct1 values(1626006833600, 3, 4, 'b')"); + if (taos_errno(pRes) != 0) { + printf("failed to insert into ct1, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "insert into ct11 using st1 tags(1000, \"ttt\", true) values(1626006833400, 1, 2, 'a')"); + if (taos_errno(pRes) != 0) { + printf("failed to insert into ct0, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "create table if not exists ct10 using st1 tags(1000, \"ttt\", true)"); + if (taos_errno(pRes) != 0) { + printf("failed to create child table tu1, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + taosSsleep(1); + pRes = taos_query(pConn, "insert into ct1 using st1 tags(1000, \"ttt\", true) values(1626006833400, 1, 2, 'a') ct2 using st1 tags(1000, \"ttt\", true) values(1626006833400, 1, 2, 'a') ct3 using st1 tags(1000, \"ttt\", true) values(1626006833400, 1, 2, 'a')"); + if (taos_errno(pRes) != 0) { + printf("failed to insert into ct0, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + + pRes = taos_query(pConn, "insert into ct1 values(1626006833600, 3, 4, 'b')"); + if (taos_errno(pRes) != 0) { + printf("failed to insert into ct1, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + return 0; +} + +int32_t init_env() { + TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + if (pConn == NULL) { + return -1; + } + + TAOS_RES* pRes = taos_query(pConn, "drop database if exists db_taosx"); + if (taos_errno(pRes) != 0) { + printf("error in drop db_taosx, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "create database if not exists db_taosx vgroups 1 wal_retention_period 3600"); + if (taos_errno(pRes) != 0) { + printf("error in create db_taosx, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "drop topic if exists topic_db"); + if (taos_errno(pRes) != 0) { + printf("error in drop topic, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "drop database if exists abc1"); + if (taos_errno(pRes) != 0) { + printf("error in drop db, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "create database if not exists abc1 vgroups 1 wal_retention_period 3600"); + if (taos_errno(pRes) != 0) { + printf("error in create db, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + pRes = taos_query(pConn, "use abc1"); + if (taos_errno(pRes) != 0) { + printf("error in use db, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + buildDatabase(pConn, pRes); + + taos_close(pConn); + return 0; +} + +int32_t create_topic() { + printf("create topic\n"); + TAOS_RES* pRes; + TAOS* pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + if (pConn == NULL) { + return -1; + } + + pRes = taos_query(pConn, "create topic topic_db only meta as database abc1"); + if (taos_errno(pRes) != 0) { + printf("failed to create topic topic_db, reason:%s\n", taos_errstr(pRes)); + return -1; + } + taos_free_result(pRes); + + taos_close(pConn); + return 0; +} + +void tmq_commit_cb_print(tmq_t* tmq, int32_t code, void* param) { + printf("commit %d tmq %p param %p\n", code, tmq, param); +} + +tmq_t* build_consumer() { + tmq_conf_t* conf = tmq_conf_new(); + tmq_conf_set(conf, "group.id", batchMeta ? "batch" : "nonbatch"); + tmq_conf_set(conf, "client.id", "my app 1"); + tmq_conf_set(conf, "td.connect.user", "root"); + tmq_conf_set(conf, "td.connect.pass", "taosdata"); + tmq_conf_set(conf, "msg.with.table.name", "true"); + tmq_conf_set(conf, "enable.auto.commit", "true"); + tmq_conf_set(conf, "auto.offset.reset", "earliest"); + tmq_conf_set(conf, "msg.consume.excluded", "1"); + if (batchMeta) { + tmq_conf_set(conf, "msg.enable.batchmeta", "1"); + } + + tmq_conf_set_auto_commit_cb(conf, tmq_commit_cb_print, NULL); + tmq_t* tmq = tmq_consumer_new(conf, NULL, 0); + assert(tmq); + tmq_conf_destroy(conf); + return tmq; +} + +tmq_list_t* build_topic_list() { + tmq_list_t* topic_list = tmq_list_new(); + tmq_list_append(topic_list, "topic_db"); + return topic_list; +} + +void basic_consume_loop(tmq_t* tmq, tmq_list_t* topics) { + int32_t code; + + if ((code = tmq_subscribe(tmq, topics))) { + fprintf(stderr, "%% Failed to start consuming topics: %s\n", tmq_err2str(code)); + printf("subscribe err\n"); + return; + } + while (1) { + TAOS_RES* tmqmessage = tmq_consumer_poll(tmq, 5000); + if (tmqmessage) { + msg_process(tmqmessage); + consumeIndex++; + taos_free_result(tmqmessage); + } else { + break; + } + } + + code = tmq_consumer_close(tmq); + if (code) + fprintf(stderr, "%% Failed to close consumer: %s\n", tmq_err2str(code)); + else + fprintf(stderr, "%% Consumer closed\n"); +} + +int main(int argc, char* argv[]) { + if (init_env() < 0) { + return -1; + } + create_topic(); + + tmq_list_t* topic_list = build_topic_list(); + tmq_t* tmq = build_consumer(); + basic_consume_loop(tmq, topic_list); + + batchMeta = true; + consumeIndex = 0; + tmq = build_consumer(); + basic_consume_loop(tmq, topic_list); + + tmq_list_destroy(topic_list); +} From b34a6de1135e57e3f1c4c7360fbdec7f4245e29e Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 21 Feb 2025 19:05:18 +0800 Subject: [PATCH 19/34] feat:[TD-33798]modify metadata logic for tmq --- tests/parallel_test/cases.task | 1 - tests/system-test/7-tmq/tmq_taosx.py | 48 ++++++++++++++-------------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index 49a4185cb3..890e152554 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -470,7 +470,6 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_taosx.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts5466.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_td33504.py -,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts-5473.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmq_ts5906.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-32187.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/td-33225.py diff --git a/tests/system-test/7-tmq/tmq_taosx.py b/tests/system-test/7-tmq/tmq_taosx.py index 053b29c013..845e7229a8 100644 --- a/tests/system-test/7-tmq/tmq_taosx.py +++ b/tests/system-test/7-tmq/tmq_taosx.py @@ -677,34 +677,34 @@ class TDTestCase: tdSql.execute(f'drop database d1') def run(self): - # self.consume_TS_5067_Test() - # self.consumeTest() - # self.consume_ts_4544() - # self.consume_ts_4551() - # self.consume_TS_4540_Test() - # self.consume_td_31283() + self.consume_TS_5067_Test() + self.consumeTest() + self.consume_ts_4544() + self.consume_ts_4551() + self.consume_TS_4540_Test() + self.consume_td_31283() tdSql.prepare() self.checkWal1VgroupOnlyMeta() - # self.checkWal1Vgroup() - # self.checkSnapshot1Vgroup() - # - # self.checkWal1VgroupTable() - # self.checkSnapshot1VgroupTable() - # - # self.checkWalMultiVgroups() - # self.checkWalMultiVgroupsRawData() - # self.checkSnapshotMultiVgroups() - # - # self.checkWalMultiVgroupsWithDropTable() - # - # self.checkSnapshotMultiVgroupsWithDropTable() - # - # self.checkSnapshot1VgroupBtmeta() - # self.checkSnapshot1VgroupTableBtmeta() - # self.checkSnapshotMultiVgroupsBtmeta() - # self.checkSnapshotMultiVgroupsWithDropTableBtmeta() + self.checkWal1Vgroup() + self.checkSnapshot1Vgroup() + + self.checkWal1VgroupTable() + self.checkSnapshot1VgroupTable() + + self.checkWalMultiVgroups() + self.checkWalMultiVgroupsRawData() + self.checkSnapshotMultiVgroups() + + self.checkWalMultiVgroupsWithDropTable() + + self.checkSnapshotMultiVgroupsWithDropTable() + + self.checkSnapshot1VgroupBtmeta() + self.checkSnapshot1VgroupTableBtmeta() + self.checkSnapshotMultiVgroupsBtmeta() + self.checkSnapshotMultiVgroupsWithDropTableBtmeta() def stop(self): tdSql.close() From ef13df2e3d5cae8e8bf9d1b7c7bcc10d3d8a0474 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 24 Feb 2025 16:18:27 +0800 Subject: [PATCH 20/34] feat:[TD-33798]modify metadata logic for tmq --- source/dnode/vnode/src/tq/tqUtil.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 7dc9a88164..bc8b8504c4 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -389,7 +389,7 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, code = buildBatchMeta(&btMetaRsp, pHead->msgType, pHead->bodyLen, pHead->body); fetchVer++; if (code != 0){ - continue; + goto END; } totalMetaRows++; if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || (taosGetTimestampMs() - st > pRequest->timeout)) { @@ -423,7 +423,7 @@ static int32_t extractDataAndRspForDbStbSubscribe(STQ* pTq, STqHandle* pHandle, taosxRsp.createTableReq = NULL; fetchVer++; if (code != 0){ - continue; + goto END; } totalMetaRows++; if ((taosArrayGetSize(btMetaRsp.batchMetaReq) >= tmqRowSize) || From d8b4e8e9ff8f915d1a5be1665e27f8036b15b73b Mon Sep 17 00:00:00 2001 From: Alex Duan <417921451@qq.com> Date: Tue, 25 Feb 2025 15:20:41 +0800 Subject: [PATCH 21/34] modify taos CopyRight from 2023 to 2025 --- tools/shell/src/shellArguments.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/shell/src/shellArguments.c b/tools/shell/src/shellArguments.c index ba210850eb..93381b4f51 100644 --- a/tools/shell/src/shellArguments.c +++ b/tools/shell/src/shellArguments.c @@ -443,7 +443,7 @@ int32_t shellParseArgs(int32_t argc, char *argv[]) { shellInitArgs(argc, argv); shell.info.clientVersion = "Welcome to the %s Command Line Interface, Client Version:%s\r\n" - "Copyright (c) 2023 by %s, all rights reserved.\r\n\r\n"; + "Copyright (c) 2025 by %s, all rights reserved.\r\n\r\n"; #ifdef CUS_NAME strcpy(shell.info.cusName, CUS_NAME); #else From 9ede86e9bc444b30d22fdf1ffa7f24fba6a207c5 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Mon, 24 Feb 2025 10:59:49 +0800 Subject: [PATCH 22/34] fix: add some ut --- include/os/osSysinfo.h | 2 + source/os/src/osRand.c | 2 +- source/os/src/osSignal.c | 2 + source/os/src/osString.c | 4 +- source/os/src/osSysinfo.c | 5 +- source/os/test/CMakeLists.txt | 7 - source/os/test/osSignalTests.cpp | 40 -- source/os/test/osStringTests.cpp | 943 ++++++++++++++++++------------- source/os/test/osTests.cpp | 369 +++++++++++- source/os/test/osThreadTests.cpp | 40 +- 10 files changed, 938 insertions(+), 476 deletions(-) delete mode 100644 source/os/test/osSignalTests.cpp diff --git a/include/os/osSysinfo.h b/include/os/osSysinfo.h index 1f4dfe3809..5e1b889580 100644 --- a/include/os/osSysinfo.h +++ b/include/os/osSysinfo.h @@ -47,8 +47,10 @@ int32_t taosGetProcMemory(int64_t *usedKB); int32_t taosGetSysMemory(int64_t *usedKB); int32_t taosGetSysAvailMemory(int64_t *availSize); int32_t taosGetDiskSize(char *dataDir, SDiskSize *diskSize); +int32_t taosGetProcIO(int64_t *rchars, int64_t *wchars, int64_t *read_bytes, int64_t *write_bytes); int32_t taosGetProcIODelta(int64_t *rchars, int64_t *wchars, int64_t *read_bytes, int64_t *write_bytes); void taosSetDefaultProcIODelta(int64_t *rchars, int64_t *wchars, int64_t *read_bytes, int64_t *write_bytes); +int32_t taosGetCardInfo(int64_t *receive_bytes, int64_t *transmit_bytes); int32_t taosGetCardInfoDelta(int64_t *receive_bytes, int64_t *transmit_bytes); void taosSetDefaultCardInfoDelta(int64_t *receive_bytes, int64_t *transmit_bytes); diff --git a/source/os/src/osRand.c b/source/os/src/osRand.c index 0bf67f96a0..d13342ca28 100644 --- a/source/os/src/osRand.c +++ b/source/os/src/osRand.c @@ -87,7 +87,7 @@ void taosRandStr(char* str, int32_t size) { void taosRandStr2(char* str, int32_t size) { const char* set = "abcdefghijklmnopqrstuvwxyz0123456789@"; - int32_t len = strlen(set); + int32_t len = 37; for (int32_t i = 0; i < size; ++i) { str[i] = set[taosRand() % len]; diff --git a/source/os/src/osSignal.c b/source/os/src/osSignal.c index f341f5422d..238093e418 100644 --- a/source/os/src/osSignal.c +++ b/source/os/src/osSignal.c @@ -114,6 +114,7 @@ int32_t taosDflSignal(int32_t signum) { return 0; } +#if 0 int32_t taosKillChildOnParentStopped() { #ifndef _TD_DARWIN_64 int32_t code = prctl(PR_SET_PDEATHSIG, SIGKILL); @@ -126,5 +127,6 @@ int32_t taosKillChildOnParentStopped() { #endif return 0; } +#endif #endif diff --git a/source/os/src/osString.c b/source/os/src/osString.c index 1d07b64c70..24fd8ca034 100644 --- a/source/os/src/osString.c +++ b/source/os/src/osString.c @@ -294,6 +294,7 @@ int32_t tasoUcs4Compare(TdUcs4 *f1_ucs4, TdUcs4 *f2_ucs4, int32_t bytes) { //#endif } +#if 0 int32_t tasoUcs4Copy(TdUcs4 *target_ucs4, TdUcs4 *source_ucs4, int32_t len_ucs4) { if (target_ucs4 == NULL || source_ucs4 == NULL || len_ucs4 <= 0) { return TSDB_CODE_INVALID_PARA; @@ -307,11 +308,12 @@ int32_t tasoUcs4Copy(TdUcs4 *target_ucs4, TdUcs4 *source_ucs4, int32_t len_ucs4) return TSDB_CODE_SUCCESS; } +#endif iconv_t taosAcquireConv(int32_t *idx, ConvType type, void* charsetCxt) { if(idx == NULL) { terrno = TSDB_CODE_INVALID_PARA; - return (iconv_t)-1; + return (iconv_t)NULL; } if (charsetCxt == NULL){ charsetCxt = tsCharsetCxt; diff --git a/source/os/src/osSysinfo.c b/source/os/src/osSysinfo.c index 6cb0e00b82..dccce2d987 100644 --- a/source/os/src/osSysinfo.c +++ b/source/os/src/osSysinfo.c @@ -147,7 +147,6 @@ static void taosGetProcIOnfos() { #endif static int32_t taosGetSysCpuInfo(SysCpuInfo *cpuInfo) { - OS_PARAM_CHECK(cpuInfo); int32_t code = 0; #ifdef WINDOWS FILETIME pre_idleTime = {0}; @@ -200,7 +199,6 @@ static int32_t taosGetSysCpuInfo(SysCpuInfo *cpuInfo) { } static int32_t taosGetProcCpuInfo(ProcCpuInfo *cpuInfo) { - OS_PARAM_CHECK(cpuInfo); int32_t code = 0; #ifdef WINDOWS @@ -541,7 +539,6 @@ int32_t taosGetCpuInfo(char *cpuModel, int32_t maxLen, float *numOfCores) { // Returns the container's CPU quota if successful, otherwise returns the physical CPU cores static int32_t taosCntrGetCpuCores(float *numOfCores) { - OS_PARAM_CHECK(numOfCores); #ifdef WINDOWS return TSDB_CODE_UNSUPPORT_OS; #elif defined(_TD_DARWIN_64) @@ -1092,6 +1089,7 @@ void taosSetDefaultCardInfoDelta(int64_t *receive_bytes, int64_t *transmit_bytes if (transmit_bytes) *transmit_bytes = 0; } +#if 0 void taosKillSystem() { #ifdef WINDOWS printf("function taosKillSystem, exit!"); @@ -1105,6 +1103,7 @@ void taosKillSystem() { (void)kill(tsProcId, 2); #endif } +#endif #define UUIDLEN (36) int32_t taosGetSystemUUIDLimit36(char *uid, int32_t uidlen) { diff --git a/source/os/test/CMakeLists.txt b/source/os/test/CMakeLists.txt index 2ba6b73e29..a26fc88916 100644 --- a/source/os/test/CMakeLists.txt +++ b/source/os/test/CMakeLists.txt @@ -61,13 +61,6 @@ add_test( COMMAND osSemaphoreTests ) -add_executable(osSignalTests "osSignalTests.cpp") -target_link_libraries(osSignalTests os util gtest_main) -add_test( - NAME osSignalTests - COMMAND osSignalTests -) - add_executable(osSleepTests "osSleepTests.cpp") target_link_libraries(osSleepTests os util gtest_main) add_test( diff --git a/source/os/test/osSignalTests.cpp b/source/os/test/osSignalTests.cpp deleted file mode 100644 index f4cc6e9e58..0000000000 --- a/source/os/test/osSignalTests.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#include -#include - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wwrite-strings" -#pragma GCC diagnostic ignored "-Wunused-function" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wformat" -#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" -#pragma GCC diagnostic ignored "-Wpointer-arith" - -#include "os.h" -#include "tlog.h" - -TEST(osSignalTests, taosSetSignal) { - // Set up SIGINT handler using taosSetSignal - //taosSetSignal(SIGINT, sigint_handler); - - // Print PID for testing purposes - // printf("PID: %d\n", getpid()); - - // Wait for signal to be received -} diff --git a/source/os/test/osStringTests.cpp b/source/os/test/osStringTests.cpp index 36f5207346..4e71b4b884 100644 --- a/source/os/test/osStringTests.cpp +++ b/source/os/test/osStringTests.cpp @@ -33,8 +33,8 @@ #ifdef WINDOWS TEST(osStringTests, strsepNormalInput) { char str[] = "This is a test string."; - char * ptr = str; - char * tok = NULL; + char* ptr = str; + char* tok = NULL; const char delim[] = " "; while ((tok = strsep(&ptr, delim)) != NULL) { @@ -59,9 +59,9 @@ TEST(osStringTests, strsepEmptyInput) { } TEST(osStringTests, strsepNullInput) { - char * str = NULL; - char * ptr = str; - char * tok = NULL; + char* str = NULL; + char* ptr = str; + char* tok = NULL; const char delim[] = " "; while ((tok = strsep(&ptr, delim)) != NULL) { @@ -75,7 +75,7 @@ TEST(osStringTests, strsepNullInput) { TEST(osStringTests, strndupNormalInput) { const char s[] = "This is a test string."; int size = strlen(s) + 1; - char * s2 = taosStrndup(s, size); + char* s2 = taosStrndup(s, size); EXPECT_STREQ(s, s2); @@ -114,523 +114,674 @@ TEST(osStringTests, osUcs4lenTests2) { } TEST(osStringTests, ostsnprintfTests) { - char buffer[50] = {0}; - int64_t ret; + char buffer[50] = {0}; + int64_t ret; - ret = tsnprintf(buffer, sizeof(buffer), "Hello, %s!", "World"); - EXPECT_EQ(ret, 13); - EXPECT_STREQ(buffer, "Hello, World!"); + ret = tsnprintf(buffer, sizeof(buffer), "Hello, %s!", "World"); + EXPECT_EQ(ret, 13); + EXPECT_STREQ(buffer, "Hello, World!"); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, 10, "Hello, %s!", "World"); - EXPECT_EQ(ret, 9); - EXPECT_EQ(strncmp(buffer, "Hello, Wo", 9), 0); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, 10, "Hello, %s!", "World"); + EXPECT_EQ(ret, 9); + EXPECT_EQ(strncmp(buffer, "Hello, Wo", 9), 0); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, 10, "Hello%s", "World"); - EXPECT_EQ(ret, 9); - EXPECT_EQ(strncmp(buffer, "HelloWorl", 9), 0); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, 10, "Hello%s", "World"); + EXPECT_EQ(ret, 9); + EXPECT_EQ(strncmp(buffer, "HelloWorl", 9), 0); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, 0, "Hello, %s!", "World"); - EXPECT_EQ(ret, 0); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, 0, "Hello, %s!", "World"); + EXPECT_EQ(ret, 0); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, SIZE_MAX + 1, "Hello, %s!", "World"); - EXPECT_EQ(ret, 0); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, SIZE_MAX + 1, "Hello, %s!", "World"); + EXPECT_EQ(ret, 0); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, sizeof(buffer), ""); - EXPECT_EQ(ret, 0); - EXPECT_STREQ(buffer, ""); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, sizeof(buffer), ""); + EXPECT_EQ(ret, 0); + EXPECT_STREQ(buffer, ""); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, sizeof(buffer), "Number: %d", 42); - EXPECT_EQ(ret, 10); - EXPECT_STREQ(buffer, "Number: 42"); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, sizeof(buffer), "Number: %d", 42); + EXPECT_EQ(ret, 10); + EXPECT_STREQ(buffer, "Number: 42"); - memset(buffer, 0, sizeof(buffer)); - ret = tsnprintf(buffer, sizeof(buffer), "Float: %.2f", 3.14); - EXPECT_EQ(ret, 11); - EXPECT_STREQ(buffer, "Float: 3.14"); + memset(buffer, 0, sizeof(buffer)); + ret = tsnprintf(buffer, sizeof(buffer), "Float: %.2f", 3.14); + EXPECT_EQ(ret, 11); + EXPECT_STREQ(buffer, "Float: 3.14"); } TEST(osStringTests, osStr2Int64) { - int64_t val; - int32_t result; + int64_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2int64(NULL, &val); - assert(result == TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2int64(NULL, &val); + assert(result == TSDB_CODE_INVALID_PARA); - result = taosStr2int64("123", NULL); - ASSERT_NE(result, 0); + result = taosStr2int64("123", NULL); + ASSERT_NE(result, 0); - // 测试无效输入 - result = taosStr2int64("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2int64("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2int64("", &val); - ASSERT_NE(result, 0); + result = taosStr2int64("", &val); + ASSERT_NE(result, 0); - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%lld", LLONG_MAX); - result = taosStr2int64(large_num, &val); - assert(result == 0); - assert(val == LLONG_MAX); + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%lld", LLONG_MAX); + result = taosStr2int64(large_num, &val); + assert(result == 0); + assert(val == LLONG_MAX); - snprintf(large_num, sizeof(large_num), "%lld", LLONG_MIN); - result = taosStr2int64(large_num, &val); - assert(result == 0); - assert(val == LLONG_MIN); + snprintf(large_num, sizeof(large_num), "%lld", LLONG_MIN); + result = taosStr2int64(large_num, &val); + assert(result == 0); + assert(val == LLONG_MIN); - result = taosStr2int64("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int64("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2int64("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2int64("12345", &val); - assert(result == 0); - assert(val == 12345); + result = taosStr2int64("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2int64("12345", &val); + assert(result == 0); + assert(val == 12345); - result = taosStr2int64("-12345", &val); - assert(result == 0); - assert(val == -12345); + result = taosStr2int64("-12345", &val); + assert(result == 0); + assert(val == -12345); - result = taosStr2int64("0", &val); - assert(result == 0); - assert(val == 0); + result = taosStr2int64("0", &val); + assert(result == 0); + assert(val == 0); - // 测试带空格的字符串 - result = taosStr2int64(" 12345", &val); - assert(result == 0); - assert(val == 12345); + // 测试带空格的字符串 + result = taosStr2int64(" 12345", &val); + assert(result == 0); + assert(val == 12345); - result = taosStr2int64("12345 ", &val); - assert(result == 0); - assert(val == 12345); + result = taosStr2int64("12345 ", &val); + assert(result == 0); + assert(val == 12345); } TEST(osStringTests, osStr2int32) { - int32_t val; - int32_t result; + int32_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2int32(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2int32(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2int32("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2int32("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2int32("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2int32("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2int32("", &val); - ASSERT_NE(result, 0); + result = taosStr2int32("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%d", INT_MAX); - result = taosStr2int32(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%d", INT_MAX); + result = taosStr2int32(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT_MAX); - snprintf(large_num, sizeof(large_num), "%d", INT_MIN); - result = taosStr2int32(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT_MIN); + snprintf(large_num, sizeof(large_num), "%d", INT_MIN); + result = taosStr2int32(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT_MIN); - // 测试大于 INT32 范围的值 - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT_MAX + 1); - result = taosStr2int32(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 INT32 范围的值 + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT_MAX + 1); + result = taosStr2int32(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT_MIN - 1); - result = taosStr2int32(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT_MIN - 1); + result = taosStr2int32(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - - result = taosStr2int32("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int32("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2int32("abc123", &val); - ASSERT_NE(result, 0); + result = taosStr2int32("abc123", &val); + ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2int32("12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试有效的整数字符串 + result = taosStr2int32("12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2int32("-12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, -12345); + result = taosStr2int32("-12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, -12345); - result = taosStr2int32("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2int32("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2int32(" 12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试带空格的字符串 + result = taosStr2int32(" 12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2int32("12345 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2int32("12345 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); } TEST(osStringTests, taosStr2int16) { - int16_t val; - int32_t result; + int16_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2int16(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2int16(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2int16("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2int16("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2int16("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2int16("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2int16("", &val); - ASSERT_NE(result, 0); + result = taosStr2int16("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%d", INT16_MAX); - result = taosStr2int16(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT16_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%d", INT16_MAX); + result = taosStr2int16(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT16_MAX); - snprintf(large_num, sizeof(large_num), "%d", INT16_MIN); - result = taosStr2int16(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT16_MIN); + snprintf(large_num, sizeof(large_num), "%d", INT16_MIN); + result = taosStr2int16(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT16_MIN); - // 测试大于 INT16 范围的值 - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT16_MAX + 1); - result = taosStr2int16(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 INT16 范围的值 + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT16_MAX + 1); + result = taosStr2int16(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT16_MIN - 1); - result = taosStr2int16(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT16_MIN - 1); + result = taosStr2int16(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - result = taosStr2int16("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int16("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2int16("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2int16("12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2int16("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2int16("12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2int16("-12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, -12345); + result = taosStr2int16("-12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, -12345); - result = taosStr2int16("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2int16("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2int16(" 12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试带空格的字符串 + result = taosStr2int16(" 12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2int16("12345 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2int16("12345 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); } - TEST(osStringTests, taosStr2int8) { - int8_t val; - int32_t result; + int8_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2int8(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2int8(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2int8("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2int8("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2int8("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2int8("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2int8("", &val); - ASSERT_NE(result, 0); + result = taosStr2int8("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%d", INT8_MAX); - result = taosStr2int8(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT8_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%d", INT8_MAX); + result = taosStr2int8(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT8_MAX); - snprintf(large_num, sizeof(large_num), "%d", INT8_MIN); - result = taosStr2int8(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, INT8_MIN); + snprintf(large_num, sizeof(large_num), "%d", INT8_MIN); + result = taosStr2int8(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, INT8_MIN); - // 测试大于 INT8 范围的值 - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT8_MAX + 1); - result = taosStr2int8(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 INT8 范围的值 + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT8_MAX + 1); + result = taosStr2int8(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - snprintf(large_num, sizeof(large_num), "%lld", (long long)INT8_MIN - 1); - result = taosStr2int8(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + snprintf(large_num, sizeof(large_num), "%lld", (long long)INT8_MIN - 1); + result = taosStr2int8(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - result = taosStr2int8("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int8("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2int8("abc123", &val); - ASSERT_NE(result, 0); - - // 测试有效的整数字符串 - result = taosStr2int8("123", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int8("abc123", &val); + ASSERT_NE(result, 0); - result = taosStr2int8("-123", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, -123); + // 测试有效的整数字符串 + result = taosStr2int8("123", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2int8("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2int8("-123", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, -123); - // 测试带空格的字符串 - result = taosStr2int8(" 123", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2int8("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - result = taosStr2int8("123 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + // 测试带空格的字符串 + result = taosStr2int8(" 123", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); + + result = taosStr2int8("123 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); } TEST(osStringTests, osStr2Uint64) { - uint64_t val; - int32_t result; + uint64_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2Uint64(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2Uint64(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2Uint64("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2Uint64("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2Uint64("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2Uint64("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2Uint64("", &val); - ASSERT_NE(result, 0); + result = taosStr2Uint64("", &val); + ASSERT_NE(result, 0); - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%llu", ULLONG_MAX); - result = taosStr2Uint64(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, ULLONG_MAX); + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%llu", ULLONG_MAX); + result = taosStr2Uint64(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, ULLONG_MAX); - result = taosStr2Uint64("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint64("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint64("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2Uint64("12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2Uint64("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2Uint64("12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2Uint64("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2Uint64("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2Uint64(" 12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); - - result = taosStr2Uint64("12345 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试带空格的字符串 + result = taosStr2Uint64(" 12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); + result = taosStr2Uint64("12345 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); } TEST(osStringTests, taosStr2Uint32) { - uint32_t val; - int32_t result; + uint32_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2Uint32(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2Uint32(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2Uint32("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2Uint32("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2Uint32("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2Uint32("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2Uint32("", &val); - ASSERT_NE(result, 0); + result = taosStr2Uint32("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%u", UINT32_MAX); - result = taosStr2Uint32(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, UINT32_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%u", UINT32_MAX); + result = taosStr2Uint32(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, UINT32_MAX); - // 测试大于 UINT32 范围的值 - snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT32_MAX + 1); - result = taosStr2Uint32(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 UINT32 范围的值 + snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT32_MAX + 1); + result = taosStr2Uint32(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - result = taosStr2Uint32("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint32("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint32("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2Uint32("12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2Uint32("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2Uint32("12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2Uint32("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2Uint32("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2Uint32(" 12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试带空格的字符串 + result = taosStr2Uint32(" 12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2Uint32("12345 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2Uint32("12345 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); } TEST(osStringTests, taosStr2Uint16) { - uint16_t val; - int32_t result; + uint16_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2Uint16(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2Uint16(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2Uint16("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2Uint16("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2Uint16("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2Uint16("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2Uint16("", &val); - ASSERT_NE(result, 0); + result = taosStr2Uint16("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%u", UINT16_MAX); - result = taosStr2Uint16(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, UINT16_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%u", UINT16_MAX); + result = taosStr2Uint16(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, UINT16_MAX); - // 测试大于 UINT16 范围的值 - snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT16_MAX + 1); - result = taosStr2Uint16(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 UINT16 范围的值 + snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT16_MAX + 1); + result = taosStr2Uint16(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - result = taosStr2Uint16("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint16("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint16("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2Uint16("12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2Uint16("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2Uint16("12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2Uint16("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2Uint16("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2Uint16(" 12345", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + // 测试带空格的字符串 + result = taosStr2Uint16(" 12345", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); - result = taosStr2Uint16("12345 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 12345); + result = taosStr2Uint16("12345 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 12345); } TEST(osStringTests, taosStr2Uint8) { - uint8_t val; - int32_t result; + uint8_t val; + int32_t result; - // 测试空指针输入 - result = taosStr2Uint8(NULL, &val); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + // 测试空指针输入 + result = taosStr2Uint8(NULL, &val); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - result = taosStr2Uint8("123", NULL); - ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); + result = taosStr2Uint8("123", NULL); + ASSERT_EQ(result, TSDB_CODE_INVALID_PARA); - // 测试无效输入 - result = taosStr2Uint8("abc", &val); - ASSERT_NE(result, 0); + // 测试无效输入 + result = taosStr2Uint8("abc", &val); + ASSERT_NE(result, 0); - result = taosStr2Uint8("", &val); - ASSERT_NE(result, 0); + result = taosStr2Uint8("", &val); + ASSERT_NE(result, 0); - // 测试超出范围的值 - char large_num[50]; - snprintf(large_num, sizeof(large_num), "%u", UINT8_MAX); - result = taosStr2Uint8(large_num, &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, UINT8_MAX); + // 测试超出范围的值 + char large_num[50]; + snprintf(large_num, sizeof(large_num), "%u", UINT8_MAX); + result = taosStr2Uint8(large_num, &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, UINT8_MAX); - // 测试大于 UINT8 范围的值 - snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT8_MAX + 1); - result = taosStr2Uint8(large_num, &val); - ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); + // 测试大于 UINT8 范围的值 + snprintf(large_num, sizeof(large_num), "%llu", (unsigned long long)UINT8_MAX + 1); + result = taosStr2Uint8(large_num, &val); + ASSERT_EQ(result, TAOS_SYSTEM_ERROR(ERANGE)); - result = taosStr2Uint8("123abc", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint8("123abc", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint8("abc123", &val); - ASSERT_NE(result, 0); - // 测试有效的整数字符串 - result = taosStr2Uint8("123", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint8("abc123", &val); + ASSERT_NE(result, 0); + // 测试有效的整数字符串 + result = taosStr2Uint8("123", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint8("0", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 0); + result = taosStr2Uint8("0", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 0); - // 测试带空格的字符串 - result = taosStr2Uint8(" 123", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + // 测试带空格的字符串 + result = taosStr2Uint8(" 123", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); - result = taosStr2Uint8("123 ", &val); - ASSERT_EQ(result, 0); - ASSERT_EQ(val, 123); + result = taosStr2Uint8("123 ", &val); + ASSERT_EQ(result, 0); + ASSERT_EQ(val, 123); } +TEST(osStringTests, strint2) { + const char* ret = tstrdup(NULL); + EXPECT_EQ(ret, nullptr); + + ret = taosStrndupi(NULL, 0); + EXPECT_EQ(ret, nullptr); + + char buf[12] = "12345"; + ret = tstrndup(buf, 4); + EXPECT_NE(ret, nullptr); + + int64_t val = 0; + int32_t ret32 = taosStr2int64(NULL, &val); + EXPECT_NE(ret32, 0); + ret32 = taosStr2int64(buf, NULL); + EXPECT_NE(ret32, 0); + + TdUcs4 p1, p2; + int32_t val32 = 0; + ret32 = tasoUcs4Compare(&p1, NULL, val32); + EXPECT_NE(ret32, 0); + ret32 = tasoUcs4Compare(NULL, &p2, val32); + EXPECT_NE(ret32, 0); + + void* retptr = taosAcquireConv(NULL, M2C, NULL); + EXPECT_EQ(retptr, nullptr); + + ret32 = taosUcs4ToMbs(NULL, 0, NULL, NULL); + EXPECT_EQ(ret32, 0); + ret32 = taosUcs4ToMbs(NULL, -1, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosUcs4ToMbs(NULL, 1, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosUcs4ToMbs(&p1, 1, NULL, NULL); + EXPECT_NE(ret32, 0); + + bool retb = taosValidateEncodec(NULL); + EXPECT_FALSE(retb); + + ret32 = taosUcs4len(NULL); + EXPECT_EQ(ret32, 0); + + unsigned char src[24] = "1234"; + char dst[24] = {0}; + int32_t len = 5; + int32_t bufSize = 24; + ret32 = taosHexEncode(NULL, NULL, len, -1); + EXPECT_NE(ret32, 0); + ret32 = taosHexEncode(src, NULL, len, -1); + EXPECT_NE(ret32, 0); + ret32 = taosHexEncode(src, dst, len, -1); + EXPECT_NE(ret32, 0); + ret32 = taosHexEncode(src, dst, len, bufSize); + EXPECT_EQ(ret32, 0); + + char dst2[24] = {0}; + ret32 = taosHexDecode(NULL, NULL, 0); + EXPECT_NE(ret32, 0); + ret32 = taosHexDecode(NULL, dst2, 0); + EXPECT_NE(ret32, 0); + ret32 = taosHexDecode(dst, NULL, 0); + EXPECT_NE(ret32, 0); + ret32 = taosHexDecode(dst, dst2, 24); + EXPECT_EQ(ret32, 0); + EXPECT_STREQ((char*)src, dst2); +} + +TEST(osStringTests, wchartest) { + char src[24] = "1234"; + TdWchar dst[24] = {0}; + + int32_t ret32 = taosWcharsWidth(NULL, 0); + EXPECT_LT(ret32, 0); + ret32 = taosWcharsWidth(dst, 0); + EXPECT_LT(ret32, 0); + + ret32 = taosMbToWchar(NULL, NULL, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbToWchar(dst, NULL, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbToWchar(dst, src, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbToWchar(dst, src, 4); + EXPECT_GT(ret32, 0); + ret32 = taosWcharsWidth(dst, ret32); + EXPECT_GT(ret32, 0); + + ret32 = taosMbsToWchars(NULL, NULL, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbsToWchars(dst, NULL, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbsToWchars(dst, src, 0); + EXPECT_LT(ret32, 0); + ret32 = taosMbsToWchars(dst, src, 4); + EXPECT_GT(ret32, 0); + ret32 = taosWcharsWidth(dst, ret32); + EXPECT_GT(ret32, 0); + + ret32 = taosWcharsWidth(NULL, dst[0]); + EXPECT_NE(ret32, 0); + ret32 = taosWcharToMb(src, dst[0]); + EXPECT_NE(ret32, 0); +} + +TEST(osStringTests, strtransform) { + char src[12] = "12"; + + void* retptr = taosStrCaseStr(NULL, NULL); + EXPECT_EQ(retptr, nullptr); + retptr = taosStrCaseStr(src, NULL); + EXPECT_NE(retptr, nullptr); + + int64_t ret64 = taosStr2Int64(NULL, NULL, 0); + EXPECT_EQ(ret64, 0); + uint64_t retu64 = taosStr2UInt64(NULL, NULL, 0); + EXPECT_EQ(retu64, 0); + int32_t ret32 = taosStr2Int32(NULL, NULL, 0); + EXPECT_EQ(ret32, 0); + uint32_t retu32 = taosStr2UInt32(NULL, NULL, 0); + EXPECT_EQ(retu32, 0); + ret32 = taosStr2Int16(NULL, NULL, 0); + EXPECT_EQ(ret32, 0); + ret32 = taosStr2UInt16(NULL, NULL, 0); + EXPECT_EQ(ret32, 0); + ret32 = taosStr2Int8(NULL, NULL, 0); + EXPECT_EQ(ret32, 0); + ret32 = taosStr2UInt8(NULL, NULL, 0); + EXPECT_EQ(ret32, 0); + + double retd = taosStr2Double(NULL, NULL); + EXPECT_EQ((int32_t)retd, 0); + float retf = taosStr2Float(NULL, NULL); + EXPECT_EQ((int32_t)retf, 0); + + bool retb = isValidateHex(NULL, 0); + EXPECT_FALSE(retb); + + char z[12] = {0}; + ret32 = taosHex2Ascii(NULL, 0, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosHex2Ascii(z, 0, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosHex2Ascii(z, 0, (void**)&z, NULL); + EXPECT_NE(ret32, 0); + + ret64 = tsnprintf(NULL, 0, NULL); + EXPECT_EQ(ret64, 0); + ret64 = tsnprintf(z, 4, NULL); + EXPECT_EQ(ret64, 0); + ret64 = tsnprintf(z, 0, "ab"); + EXPECT_EQ(ret64, 0); + ret64 = tsnprintf(z, 1, "ab"); + EXPECT_EQ(ret64, 0); +} diff --git a/source/os/test/osTests.cpp b/source/os/test/osTests.cpp index 2c20348608..f4e7eff323 100644 --- a/source/os/test/osTests.cpp +++ b/source/os/test/osTests.cpp @@ -14,8 +14,8 @@ */ #include -#include #include +#include #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wwrite-strings" @@ -36,6 +36,230 @@ #include +TEST(osTest, locale) { + char *ret = taosCharsetReplace(NULL); + EXPECT_EQ(ret, nullptr); + + ret = taosCharsetReplace("utf8"); + EXPECT_NE(ret, nullptr); + + ret = taosCharsetReplace("utf-8"); + EXPECT_NE(ret, nullptr); + + taosGetSystemLocale(NULL, ""); + taosGetSystemLocale("", NULL); +} + +TEST(osTest, memory) { + int32_t ret = taosMemoryDbgInitRestore(); + EXPECT_EQ(ret, 0); + + int64_t ret64 = taosMemSize(NULL); + EXPECT_EQ(ret64, 0); +} + +TEST(osTest, rand2) { + char str[128] = {0}; + taosRandStr2(str, 100); +} + +TEST(osTest, socket2) { + int32_t ret32 = taosCloseSocket(NULL); + EXPECT_NE(ret32, 0); + + ret32 = taosSetSockOpt(NULL, 0, 0, NULL, 0); + EXPECT_NE(ret32, 0); + +#if defined(LINUX) + struct in_addr ipInt; + ipInt.s_addr = htonl(0x7F000001); + char buf[128] = {0}; + taosInetNtop(ipInt, buf, 32); +#endif + + ret32 = taosGetIpv4FromFqdn("localhost", NULL); + EXPECT_NE(ret32, 0); + uint32_t ip = 0; + ret32 = taosGetIpv4FromFqdn(NULL, &ip); + EXPECT_NE(ret32, 0); + + taosInetNtoa(NULL, ip); + ret32 = taosInetAddr(NULL); + EXPECT_EQ(ret32, 0); + + ret32 = taosWinSocketInit(); + EXPECT_EQ(ret32, 0); +} + +TEST(osTest, time2) { + taosGetLocalTimezoneOffset(); + + char buf[12] = {0}; + char fmt[12] = {0}; + void *retptr = taosStrpTime(NULL, fmt, NULL); + EXPECT_EQ(retptr, nullptr); + retptr = taosStrpTime(buf, NULL, NULL); + EXPECT_EQ(retptr, nullptr); + + size_t ret = taosStrfTime(NULL, 0, fmt, NULL); + EXPECT_EQ(ret, 0); + ret = taosStrfTime(buf, 0, NULL, NULL); + EXPECT_EQ(ret, 0); + + time_t tp = {0}; + struct tm *retptr2 = taosGmTimeR(&tp, NULL); + EXPECT_EQ(retptr2, nullptr); + retptr2 = taosGmTimeR(NULL, NULL); + EXPECT_EQ(retptr2, nullptr); + + time_t rett = taosTimeGm(NULL); + EXPECT_EQ(rett, -1); + + timezone_t tz = {0}; + retptr2 = taosLocalTime(&tp, NULL, NULL, 0, tz); + EXPECT_EQ(retptr2, nullptr); + retptr2 = taosLocalTime(NULL, NULL, NULL, 0, tz); + EXPECT_EQ(retptr2, nullptr); +} + +TEST(osTest, system) { +#if defined(LINUX) + taosSetConsoleEcho(false); + taosSetConsoleEcho(true); + + taosGetOldTerminalMode(); + taosCloseCmd(NULL); + + TdCmdPtr ptr = taosOpenCmd(NULL); + EXPECT_EQ(ptr, nullptr); + taosCloseCmd(&ptr); + + ptr = taosOpenCmd("echo 'hello world'"); + ASSERT_NE(ptr, nullptr); + + char buf[256] = {0}; + int64_t ret64 = taosGetsCmd(NULL, 0, NULL); + EXPECT_LE(ret64, 0); + ret64 = taosGetsCmd(ptr, 0, NULL); + EXPECT_LE(ret64, 0); + ret64 = taosGetsCmd(ptr, 255, buf); + EXPECT_GT(ret64, 0); + taosCloseCmd(&ptr); + + ptr = taosOpenCmd("echoxxx 'hello world'"); + ASSERT_NE(ptr, nullptr); + ret64 = taosGetsCmd(ptr, 255, buf); + EXPECT_LE(ret64, 0); + taosCloseCmd(&ptr); + + ret64 = taosGetLineCmd(NULL, NULL); + EXPECT_LE(ret64, 0); + ret64 = taosGetLineCmd(ptr, NULL); + EXPECT_LE(ret64, 0); + + ptr = taosOpenCmd("echo 'hello world'"); + ASSERT_NE(ptr, nullptr); + char *ptrBuf = NULL; + ret64 = taosGetLineCmd(ptr, &ptrBuf); + EXPECT_GE(ret64, 0); + taosCloseCmd(&ptr); + + ptr = taosOpenCmd("echoxxx 'hello world'"); + ASSERT_NE(ptr, nullptr); + ret64 = taosGetLineCmd(ptr, &ptrBuf); + EXPECT_LE(ret64, 0); + taosCloseCmd(&ptr); + + int32_t ret32 = taosEOFCmd(NULL); + EXPECT_EQ(ret32, 0); + +#endif +} + +TEST(osTest, sysinfo) { +#if defined(LINUX) + + int32_t ret32 = 0; + + ret32 = taosGetEmail(NULL, 0); + EXPECT_NE(ret32, 0); + + ret32 = taosGetOsReleaseName(NULL, NULL, NULL, 0); + EXPECT_NE(ret32, 0); + + char buf[128] = {0}; + float numOfCores = 0; + ret32 = taosGetCpuInfo(buf, 0, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetCpuInfo(NULL, 0, &numOfCores); + EXPECT_NE(ret32, 0); + + + ret32 = taosGetCpuCores(NULL, false); + EXPECT_NE(ret32, 0); + ret32 = taosGetTotalMemory(NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcMemory(NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetSysMemory(NULL); + EXPECT_NE(ret32, 0); + + ret32 = taosGetDiskSize(buf, NULL); + EXPECT_NE(ret32, 0); + SDiskSize disksize = {0}; + ret32 = taosGetDiskSize(NULL, &disksize); + EXPECT_NE(ret32, 0); + + int64_t tmp = 0; + ret32 = taosGetProcIO(NULL, NULL, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIO(&tmp, NULL, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIO(&tmp, &tmp, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIO(&tmp, &tmp, &tmp, NULL); + EXPECT_NE(ret32, 0); + + ret32 = taosGetProcIODelta(NULL, NULL, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIODelta(&tmp, NULL, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIODelta(&tmp, &tmp, NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetProcIODelta(&tmp, &tmp, &tmp, NULL); + EXPECT_NE(ret32, 0); + + taosGetProcIODelta(NULL, NULL, NULL, NULL); + taosGetProcIODelta(&tmp, &tmp, &tmp, &tmp); + + ret32 = taosGetCardInfo(NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetCardInfo(&tmp, NULL); + EXPECT_NE(ret32, 0); + + ret32 = taosGetCardInfoDelta(NULL, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetCardInfoDelta(&tmp, NULL); + EXPECT_NE(ret32, 0); + + taosGetCardInfoDelta(NULL, NULL); + taosGetCardInfoDelta(&tmp, &tmp); + + ret32 = taosGetSystemUUIDLimit36(NULL, 0); + EXPECT_NE(ret32, 0); + + ret32 = taosGetSystemUUIDLen(NULL, 0); + EXPECT_NE(ret32, 0); + ret32 = taosGetSystemUUIDLen(buf, -1); + EXPECT_NE(ret32, 0); + + taosSetCoreDump(false); + + ret32 = taosGetlocalhostname(NULL, 0); + EXPECT_NE(ret32, 0); +#endif +} + TEST(osTest, osFQDNSuccess) { char fqdn[TD_FQDN_LEN]; char ipString[INET_ADDRSTRLEN]; @@ -47,8 +271,8 @@ TEST(osTest, osFQDNSuccess) { struct in_addr addr; addr.s_addr = htonl(ipv4); (void)snprintf(ipString, INET_ADDRSTRLEN, "%u.%u.%u.%u", (unsigned int)(addr.s_addr >> 24) & 0xFF, - (unsigned int)(addr.s_addr >> 16) & 0xFF, (unsigned int)(addr.s_addr >> 8) & 0xFF, - (unsigned int)(addr.s_addr) & 0xFF); + (unsigned int)(addr.s_addr >> 16) & 0xFF, (unsigned int)(addr.s_addr >> 8) & 0xFF, + (unsigned int)(addr.s_addr) & 0xFF); (void)printf("fqdn:%s ip:%s\n", fqdn, ipString); } @@ -56,7 +280,7 @@ TEST(osTest, osFQDNFailed) { char fqdn[1024] = "fqdn_test_not_found"; char ipString[24]; uint32_t ipv4 = 0; - int32_t code = taosGetIpv4FromFqdn(fqdn, &ipv4); + int32_t code = taosGetIpv4FromFqdn(fqdn, &ipv4); ASSERT_NE(code, 0); terrno = TSDB_CODE_RPC_FQDN_ERROR; @@ -79,7 +303,7 @@ TEST(osTest, osSystem) { } void fileOperateOnFree(void *param) { - char * fname = (char *)param; + char *fname = (char *)param; TdFilePtr pFile = taosOpenFile(fname, TD_FILE_CREATE | TD_FILE_WRITE); (void)printf("On free thread open file\n"); ASSERT_NE(pFile, nullptr); @@ -101,7 +325,7 @@ void *fileOperateOnFreeThread(void *param) { return NULL; } void fileOperateOnBusy(void *param) { - char * fname = (char *)param; + char *fname = (char *)param; TdFilePtr pFile = taosOpenFile(fname, TD_FILE_CREATE | TD_FILE_WRITE); (void)printf("On busy thread open file\n"); if (pFile == NULL) return; @@ -165,9 +389,9 @@ TEST(osTest, osFile) { (void)taosThreadJoin(thread2, NULL); taosThreadClear(&thread2); - //int ret = taosRemoveFile(fname); - //ASSERT_EQ(ret, 0); - //printf("remove file success"); + // int ret = taosRemoveFile(fname); + // ASSERT_EQ(ret, 0); + // printf("remove file success"); } #ifndef OSFILE_PERFORMANCE_TEST @@ -178,18 +402,109 @@ TEST(osTest, osFile) { #define TESTTIMES 1000 char *getRandomWord() { - static char words[][MAX_WORD_LENGTH] = { - "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", - "sed", "do", "eiusmod", "tempor", "incididunt", "ut", "labore", "et", "dolore", "magna", - "aliqua", "Ut", "enim", "ad", "minim", "veniam", "quis", "nostrud", "exercitation", "ullamco", - "Why", "do", "programmers", "prefer", "using", "dark", "mode?", "Because", "light", "attracts", - "bugs", "and", "they", "want", "to", "code", "in", "peace,", "like", "a", "ninja", "in", "the", "shadows." - "aliqua", "Ut", "enim", "ad", "minim", "veniam", "quis", "nostrud", "exercitation", "ullamco", - "laboris", "nisi", "ut", "aliquip", "ex", "ea", "commodo", "consequat", "Duis", "aute", "irure", - "dolor", "in", "reprehenderit", "in", "voluptate", "velit", "esse", "cillum", "dolore", "eu", - "fugiat", "nulla", "pariatur", "Excepteur", "sint", "occaecat", "cupidatat", "non", "proident", - "sunt", "in", "culpa", "qui", "officia", "deserunt", "mollit", "anim", "id", "est", "laborum" - }; + static char words[][MAX_WORD_LENGTH] = {"Lorem", + "ipsum", + "dolor", + "sit", + "amet", + "consectetur", + "adipiscing", + "elit", + "sed", + "do", + "eiusmod", + "tempor", + "incididunt", + "ut", + "labore", + "et", + "dolore", + "magna", + "aliqua", + "Ut", + "enim", + "ad", + "minim", + "veniam", + "quis", + "nostrud", + "exercitation", + "ullamco", + "Why", + "do", + "programmers", + "prefer", + "using", + "dark", + "mode?", + "Because", + "light", + "attracts", + "bugs", + "and", + "they", + "want", + "to", + "code", + "in", + "peace,", + "like", + "a", + "ninja", + "in", + "the", + "shadows." + "aliqua", + "Ut", + "enim", + "ad", + "minim", + "veniam", + "quis", + "nostrud", + "exercitation", + "ullamco", + "laboris", + "nisi", + "ut", + "aliquip", + "ex", + "ea", + "commodo", + "consequat", + "Duis", + "aute", + "irure", + "dolor", + "in", + "reprehenderit", + "in", + "voluptate", + "velit", + "esse", + "cillum", + "dolore", + "eu", + "fugiat", + "nulla", + "pariatur", + "Excepteur", + "sint", + "occaecat", + "cupidatat", + "non", + "proident", + "sunt", + "in", + "culpa", + "qui", + "officia", + "deserunt", + "mollit", + "anim", + "id", + "est", + "laborum"}; return words[taosRand() % MAX_WORDS]; } @@ -197,7 +512,7 @@ char *getRandomWord() { int64_t fillBufferWithRandomWords(char *buffer, int64_t maxBufferSize) { int64_t len = 0; while (len < maxBufferSize) { - char * word = getRandomWord(); + char *word = getRandomWord(); size_t wordLen = strlen(word); if (len + wordLen + 1 < maxBufferSize) { @@ -246,11 +561,11 @@ TEST(osTest, osFilePerformance) { int64_t OpenForWriteCloseFileCost; int64_t OpenForReadCloseFileCost; - char * buffer; - char * writeBuffer = (char *)taosMemoryCalloc(1, MAX_TEST_FILE_SIZE); - char * readBuffer = (char *)taosMemoryCalloc(1, MAX_TEST_FILE_SIZE); + char *buffer; + char *writeBuffer = (char *)taosMemoryCalloc(1, MAX_TEST_FILE_SIZE); + char *readBuffer = (char *)taosMemoryCalloc(1, MAX_TEST_FILE_SIZE); int64_t size = fillBufferWithRandomWords(writeBuffer, MAX_TEST_FILE_SIZE); - char * fname = "./osFilePerformanceTest.txt"; + char *fname = "./osFilePerformanceTest.txt"; TdFilePtr pOutFD = taosCreateFile(fname, TD_FILE_WRITE | TD_FILE_CREATE | TD_FILE_TRUNC); ASSERT_NE(pOutFD, nullptr); @@ -342,6 +657,6 @@ TEST(osTest, osFilePerformance) { (void)printf("Test OpenForRead & Close file %d times, cost: %" PRId64 "us\n", TESTTIMES, OpenForReadCloseFileCost); } -#endif // OSFILE_PERFORMANCE_TEST +#endif // OSFILE_PERFORMANCE_TEST #pragma GCC diagnostic pop diff --git a/source/os/test/osThreadTests.cpp b/source/os/test/osThreadTests.cpp index 20964c86bc..1f70c1abba 100644 --- a/source/os/test/osThreadTests.cpp +++ b/source/os/test/osThreadTests.cpp @@ -110,7 +110,7 @@ TEST(osThreadTests, thread) { taosMsleep(300); (void)taosThreadCancel(tid1); - + reti = taosThreadCreate(&tid2, NULL, funcPtr501, NULL); EXPECT_EQ(reti, 0); taosMsleep(1000); @@ -498,4 +498,42 @@ TEST(osThreadTests, spinlock) { TEST(osThreadTests, others) { taosThreadTestCancel(); taosThreadClear(NULL); + + TdThread tid1 = {0}; + TdThread tid2 = {0}; + TdThread *thread = &tid1; + taosResetPthread(NULL); + taosResetPthread(thread); + + bool retb = taosComparePthread(tid1, tid2); + EXPECT_TRUE(retb); + + int32_t ret32 = taosGetAppName(NULL, NULL); + EXPECT_NE(ret32, 0); + + char name[32] = {0}; + int32_t pid; + ret32 = taosGetPIdByName(name, NULL); + EXPECT_NE(ret32, 0); + ret32 = taosGetPIdByName(NULL, &pid); + EXPECT_NE(ret32, 0); + + ret32 = tsem_timewait(NULL, 124); + EXPECT_NE(ret32, 0); + ret32 = tsem_wait(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem2_init(NULL, 0, 0); + EXPECT_NE(ret32, 0); + ret32 = tsem_post(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem_destroy(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem2_post(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem2_destroy(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem2_wait(NULL); + EXPECT_NE(ret32, 0); + ret32 = tsem2_timewait(NULL, 128); + EXPECT_NE(ret32, 0); } \ No newline at end of file From b52f2d5f5b06618ee93244e6a5e9095515c12919 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Tue, 25 Feb 2025 16:39:05 +0800 Subject: [PATCH 23/34] fix: os unitest --- source/os/test/CMakeLists.txt | 84 ++++++++++++++++------------------- 1 file changed, 39 insertions(+), 45 deletions(-) diff --git a/source/os/test/CMakeLists.txt b/source/os/test/CMakeLists.txt index a26fc88916..4b7cb3f7b9 100644 --- a/source/os/test/CMakeLists.txt +++ b/source/os/test/CMakeLists.txt @@ -15,36 +15,47 @@ ENDIF() INCLUDE_DIRECTORIES(${TD_SOURCE_DIR}/src/util/inc) if(TD_LINUX) -add_executable(osAtomicTests "osAtomicTests.cpp") -target_link_libraries(osAtomicTests os util gtest_main) -add_test( - NAME osAtomicTests - COMMAND osAtomicTests -) -endif() + add_executable(osAtomicTests "osAtomicTests.cpp") + target_link_libraries(osAtomicTests os util gtest_main) + add_test( + NAME osAtomicTests + COMMAND osAtomicTests + ) -if(TD_LINUX) -add_executable(osDirTests "osDirTests.cpp") -target_link_libraries(osDirTests os util gtest_main) -add_test( - NAME osDirTests - COMMAND osDirTests -) -add_executable(osFileTests "osFileTests.cpp") -target_link_libraries(osFileTests os util gtest_main) -add_test( - NAME osFileTests - COMMAND osFileTests -) -endif() + add_executable(osDirTests "osDirTests.cpp") + target_link_libraries(osDirTests os util gtest_main) + add_test( + NAME osDirTests + COMMAND osDirTests + ) -if(TD_LINUX) -add_executable(osEnvTests "osEnvTests.cpp") -target_link_libraries(osEnvTests os util gtest_main) -add_test( - NAME osEnvTests - COMMAND osEnvTests -) + add_executable(osFileTests "osFileTests.cpp") + target_link_libraries(osFileTests os util gtest_main) + add_test( + NAME osFileTests + COMMAND osFileTests + ) + + add_executable(osEnvTests "osEnvTests.cpp") + target_link_libraries(osEnvTests os util gtest_main) + add_test( + NAME osEnvTests + COMMAND osEnvTests + ) + + add_executable(osTests "osTests.cpp") + target_link_libraries(osTests os util gtest_main) + add_test( + NAME osTests + COMMAND osTests + ) + + add_executable(osThreadTests "osThreadTests.cpp") + target_link_libraries(osThreadTests os util gtest_main) + add_test( + NAME osThreadTests + COMMAND osThreadTests + ) endif() add_executable(osMathTests "osMathTests.cpp") @@ -75,13 +86,6 @@ add_test( COMMAND osStringTests ) -add_executable(osTests "osTests.cpp") -target_link_libraries(osTests os util gtest_main) -add_test( - NAME osTests - COMMAND osTests -) - add_executable(osSystemTests "osSystemTests.cpp") target_link_libraries(osSystemTests os util gtest_main) add_test( @@ -89,19 +93,9 @@ add_test( COMMAND osSystemTests ) -if(TD_LINUX) -add_executable(osThreadTests "osThreadTests.cpp") -target_link_libraries(osThreadTests os util gtest_main) -add_test( - NAME osThreadTests - COMMAND osThreadTests -) -endif() - add_executable(osTimeTests "osTimeTests.cpp") target_link_libraries(osTimeTests os util gtest_main) add_test( NAME osTimeTests COMMAND osTimeTests ) - From b91dd108462a1d8412baa2d29e8388f31529de4f Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 10:56:19 +0800 Subject: [PATCH 24/34] enh: add log level to each log entry --- include/libs/function/taosudf.h | 8 ++-- include/libs/qcom/query.h | 52 +++++------------------- include/util/tlog.h | 17 ++++---- source/client/inc/clientLog.h | 14 +++---- source/client/jni/jniCommon.h | 8 ++-- source/client/src/clientTmq.c | 6 +-- source/dnode/mgmt/node_util/inc/dmUtil.h | 8 ++-- source/dnode/mnode/impl/inc/mndInt.h | 8 ++-- source/dnode/mnode/sdb/inc/sdb.h | 8 ++-- source/dnode/snode/src/snode.c | 6 +-- source/dnode/vnode/src/inc/meta.h | 12 +++--- source/dnode/vnode/src/inc/sma.h | 12 +++--- source/dnode/vnode/src/inc/tq.h | 12 +++--- source/dnode/vnode/src/inc/tsdb.h | 12 +++--- source/dnode/vnode/src/inc/vnd.h | 12 +++--- source/libs/azure/inc/azInt.h | 12 +++--- source/libs/function/inc/fnLog.h | 12 +++--- source/libs/index/inc/indexInt.h | 12 +++--- source/libs/nodes/src/nodesUtilFuncs.c | 3 +- source/libs/stream/inc/streamInt.h | 12 +++--- source/libs/sync/inc/syncUtil.h | 52 ++++++++++++------------ source/libs/tdb/src/inc/tdbOs.h | 12 +++--- source/libs/tfs/inc/tfsInt.h | 12 +++--- source/libs/transport/inc/transLog.h | 8 ++-- source/libs/wal/inc/walInt.h | 8 ++-- source/util/src/ttimer.c | 44 ++++---------------- utils/tsim/inc/simInt.h | 44 ++++---------------- 27 files changed, 170 insertions(+), 256 deletions(-) diff --git a/include/libs/function/taosudf.h b/include/libs/function/taosudf.h index fd6b42f61e..ece98ac243 100644 --- a/include/libs/function/taosudf.h +++ b/include/libs/function/taosudf.h @@ -347,10 +347,10 @@ typedef int32_t (*TScriptCloseFunc)(); extern int32_t udfDebugFlag; #define udfFatal(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF FATAL ", 1, 255, __VA_ARGS__); }} #define udfError(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF ERROR ", 1, 255, __VA_ARGS__); }} - #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} - #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF ", 2, 255, __VA_ARGS__); }} - #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF ", 4, udfDebugFlag, __VA_ARGS__); }} - #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF ", 8, udfDebugFlag, __VA_ARGS__); }} + #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} + #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} + #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} + #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} #endif // clang-format on diff --git a/include/libs/qcom/query.h b/include/libs/qcom/query.h index a17e67279c..065c7f92e8 100644 --- a/include/libs/qcom/query.h +++ b/include/libs/qcom/query.h @@ -409,48 +409,16 @@ void* getTaskPoolWorkerCb(); #define IS_AUDIT_CTB_NAME(_ctbname) \ ((*(_ctbname) == 't') && (0 == strncmp(_ctbname, TSDB_AUDIT_CTB_OPERATION, TSDB_AUDIT_CTB_OPERATION_LEN))) -#define qFatal(...) \ - do { \ - if (qDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qError(...) \ - do { \ - if (qDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qWarn(...) \ - do { \ - if (qDebugFlag & DEBUG_WARN) { \ - taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qInfo(...) \ - do { \ - if (qDebugFlag & DEBUG_INFO) { \ - taosPrintLog("QRY ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qDebug(...) \ - do { \ - if (qDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qTrace(...) \ - do { \ - if (qDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("QRY ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) -#define qDebugL(...) \ - do { \ - if (qDebugFlag & DEBUG_DEBUG) { \ - taosPrintLongString("QRY ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); \ - } \ - } while (0) +// clang-format off +#define qFatal(...) { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qError(...) { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qWarn(...) { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qInfo(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qDebug(...) { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} +#define qTrace(...) { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} +#define qDebugL(...){ if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} +#define qInfoL(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +// clang-format on #define QRY_ERR_RET(c) \ do { \ diff --git a/include/util/tlog.h b/include/util/tlog.h index 60ddc29288..07b11bb16e 100644 --- a/include/util/tlog.h +++ b/include/util/tlog.h @@ -128,18 +128,19 @@ bool reportThreadSetQuit(); void writeCrashLogToFile(int signum, void *sigInfo, char *nodeType, int64_t clusterId, int64_t startTime); // clang-format off -#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uFatal(...) { if (uDebugFlag & DEBUG_FATAL) { taosPrintLog("UTL FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} #define uError(...) { if (uDebugFlag & DEBUG_ERROR) { taosPrintLog("UTL ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} -#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} -#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL ", DEBUG_TRACE, uDebugFlag, __VA_ARGS__); }} -#define uDebugL(...){ if (uDebugFlag & DEBUG_DEBUG) { taosPrintLongString("UTL ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} -#define uInfoL(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLongString("UTL ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uWarn(...) { if (uDebugFlag & DEBUG_WARN) { taosPrintLog("UTL WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uInfo(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLog("UTL INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} +#define uDebug(...) { if (uDebugFlag & DEBUG_DEBUG) { taosPrintLog("UTL DEBUG ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} +#define uTrace(...) { if (uDebugFlag & DEBUG_TRACE) { taosPrintLog("UTL TRACE ", DEBUG_TRACE, uDebugFlag, __VA_ARGS__); }} +#define uDebugL(...){ if (uDebugFlag & DEBUG_DEBUG) { taosPrintLongString("UTL DEBUG ", DEBUG_DEBUG, uDebugFlag, __VA_ARGS__); }} +#define uInfoL(...) { if (uDebugFlag & DEBUG_INFO) { taosPrintLongString("UTL INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : uDebugFlag, __VA_ARGS__); }} #define pError(...) { taosPrintLog("APP ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define pPrint(...) { taosPrintLog("APP ", DEBUG_INFO, 255, __VA_ARGS__); } +#define pPrint(...) { taosPrintLog("APP INFO ", DEBUG_INFO, 255, __VA_ARGS__); } // clang-format on + // #define BUF_PAGE_DEBUG #ifdef __cplusplus } diff --git a/source/client/inc/clientLog.h b/source/client/inc/clientLog.h index 1a6d47d4f9..4e6c7bd3a6 100644 --- a/source/client/inc/clientLog.h +++ b/source/client/inc/clientLog.h @@ -25,14 +25,14 @@ extern "C" { // clang-format off #define tscFatal(...) do { if (cDebugFlag & DEBUG_FATAL) { taosPrintLog("TSC FATAL ", DEBUG_FATAL, cDebugFlag, __VA_ARGS__); }} while(0) #define tscError(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLog("TSC ERROR ", DEBUG_ERROR, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC INFO ", DEBUG_INFO, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC DEBUG ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC TRACE ", DEBUG_TRACE, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscPerf(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC PERF ", 0, cDebugFlag, __VA_ARGS__); }} while(0) #define tscErrorL(...) do { if (cDebugFlag & DEBUG_ERROR) { taosPrintLongString("TSC ERROR ", DEBUG_ERROR, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscWarn(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLog("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscWarnL(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLongString("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscInfo(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", DEBUG_INFO, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscDebug(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscTrace(...) do { if (cDebugFlag & DEBUG_TRACE) { taosPrintLog("TSC ", DEBUG_TRACE, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) -#define tscPerf(...) do { if (cDebugFlag & DEBUG_INFO) { taosPrintLog("TSC ", 0, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscWarnL(...) do { if (cDebugFlag & DEBUG_WARN) { taosPrintLongString("TSC WARN ", DEBUG_WARN, cDebugFlag, __VA_ARGS__); }} while(0) +#define tscDebugL(...) do { if (cDebugFlag & DEBUG_DEBUG) { taosPrintLongString("TSC DEBUG ", DEBUG_DEBUG, cDebugFlag, __VA_ARGS__); }} while(0) #define tscLog(...) do { taosPrintLog("TSC ", 0, DEBUG_FILE, __VA_ARGS__); } while(0) #define tscLogL(...) do { taosPrintLongString("TSC ", 0, DEBUG_FILE, __VA_ARGS__); } while(0) // clang-format on diff --git a/source/client/jni/jniCommon.h b/source/client/jni/jniCommon.h index d620487ad2..f636a11aef 100644 --- a/source/client/jni/jniCommon.h +++ b/source/client/jni/jniCommon.h @@ -37,25 +37,25 @@ #define jniWarn(...) \ { \ if (jniDebugFlag & DEBUG_WARN) { \ - taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniInfo(...) \ { \ if (jniDebugFlag & DEBUG_INFO) { \ - taosPrintLog("JNI ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniDebug(...) \ { \ if (jniDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("JNI ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ } \ } #define jniTrace(...) \ { \ if (jniDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("JNI ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ + taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ } \ } diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 4adc738d35..a11f351a1e 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -24,9 +24,9 @@ #include "tref.h" #include "ttimer.h" -#define tqErrorC(...) do { if (cDebugFlag & DEBUG_ERROR || tqClientDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) -#define tqInfoC(...) do { if (cDebugFlag & DEBUG_INFO || tqClientDebugFlag & DEBUG_INFO) { taosPrintLog("TQ ", DEBUG_INFO, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) -#define tqDebugC(...) do { if (cDebugFlag & DEBUG_DEBUG || tqClientDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ ", DEBUG_DEBUG, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqErrorC(...) do { if (cDebugFlag & DEBUG_ERROR || tqClientDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqInfoC(...) do { if (cDebugFlag & DEBUG_INFO || tqClientDebugFlag & DEBUG_INFO) { taosPrintLog("TQ INFO ", DEBUG_INFO, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) +#define tqDebugC(...) do { if (cDebugFlag & DEBUG_DEBUG || tqClientDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ DEBUG ", DEBUG_DEBUG, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) #define EMPTY_BLOCK_POLL_IDLE_DURATION 10 #define DEFAULT_AUTO_COMMIT_INTERVAL 5000 diff --git a/source/dnode/mgmt/node_util/inc/dmUtil.h b/source/dnode/mgmt/node_util/inc/dmUtil.h index de20f807e9..1c96b0c239 100644 --- a/source/dnode/mgmt/node_util/inc/dmUtil.h +++ b/source/dnode/mgmt/node_util/inc/dmUtil.h @@ -48,10 +48,10 @@ extern "C" { #define dFatal(...) { if (dDebugFlag & DEBUG_FATAL) { taosPrintLog("DND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define dError(...) { if (dDebugFlag & DEBUG_ERROR) { taosPrintLog("DND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", DEBUG_DEBUG, dDebugFlag, __VA_ARGS__); }} -#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", DEBUG_TRACE, dDebugFlag, __VA_ARGS__); }} +#define dWarn(...) { if (dDebugFlag & DEBUG_WARN) { taosPrintLog("DND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define dInfo(...) { if (dDebugFlag & DEBUG_INFO) { taosPrintLog("DND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND DEBUG ", DEBUG_DEBUG, dDebugFlag, __VA_ARGS__); }} +#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND TRACE ", DEBUG_TRACE, dDebugFlag, __VA_ARGS__); }} #define encryptDebug(...) { \ if (toLogFile) { \ diff --git a/source/dnode/mnode/impl/inc/mndInt.h b/source/dnode/mnode/impl/inc/mndInt.h index 982a541bb3..ad95f719b2 100644 --- a/source/dnode/mnode/impl/inc/mndInt.h +++ b/source/dnode/mnode/impl/inc/mndInt.h @@ -37,10 +37,10 @@ extern "C" { // clang-format off #define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} -#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} +#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} +#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} #define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ",QID:%s", __VA_ARGS__, buf);}} #define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ",QID:%s", __VA_ARGS__, buf);}} diff --git a/source/dnode/mnode/sdb/inc/sdb.h b/source/dnode/mnode/sdb/inc/sdb.h index 114a5ca59b..1994f06a20 100644 --- a/source/dnode/mnode/sdb/inc/sdb.h +++ b/source/dnode/mnode/sdb/inc/sdb.h @@ -31,10 +31,10 @@ extern "C" { // clang-format off #define mFatal(...) { if (mDebugFlag & DEBUG_FATAL) { taosPrintLog("MND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define mError(...) { if (mDebugFlag & DEBUG_ERROR) { taosPrintLog("MND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} -#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} +#define mWarn(...) { if (mDebugFlag & DEBUG_WARN) { taosPrintLog("MND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define mInfo(...) { if (mDebugFlag & DEBUG_INFO) { taosPrintLog("MND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} +#define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} // clang-format on #define SDB_GET_VAL(pData, dataPos, val, pos, func, type) \ diff --git a/source/dnode/snode/src/snode.c b/source/dnode/snode/src/snode.c index 6eee8c510b..fe1b333108 100644 --- a/source/dnode/snode/src/snode.c +++ b/source/dnode/snode/src/snode.c @@ -20,9 +20,9 @@ #include "tuuid.h" // clang-format off -#define sndError(...) do { if (sndDebugFlag & DEBUG_ERROR) {taosPrintLog("SND ERROR ", DEBUG_ERROR, sndDebugFlag, __VA_ARGS__);}} while (0) -#define sndInfo(...) do { if (sndDebugFlag & DEBUG_INFO) { taosPrintLog("SND INFO ", DEBUG_INFO, sndDebugFlag, __VA_ARGS__);}} while (0) -#define sndDebug(...) do { if (sndDebugFlag & DEBUG_DEBUG) { taosPrintLog("SND ", DEBUG_DEBUG, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndError(...) do { if (sndDebugFlag & DEBUG_ERROR) { taosPrintLog("SND ERROR ", DEBUG_ERROR, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndInfo(...) do { if (sndDebugFlag & DEBUG_INFO) { taosPrintLog("SND INFO ", DEBUG_INFO, sndDebugFlag, __VA_ARGS__);}} while (0) +#define sndDebug(...) do { if (sndDebugFlag & DEBUG_DEBUG) { taosPrintLog("SND DEBUG ", DEBUG_DEBUG, sndDebugFlag, __VA_ARGS__);}} while (0) // clang-format on int32_t sndBuildStreamTask(SSnode *pSnode, SStreamTask *pTask, int64_t nextProcessVer) { diff --git a/source/dnode/vnode/src/inc/meta.h b/source/dnode/vnode/src/inc/meta.h index c05953c67d..147da7436d 100644 --- a/source/dnode/vnode/src/inc/meta.h +++ b/source/dnode/vnode/src/inc/meta.h @@ -30,12 +30,12 @@ typedef struct SMetaCache SMetaCache; // metaDebug ================== // clang-format off -#define metaFatal(...) do { if (metaDebugFlag & DEBUG_FATAL) { taosPrintLog("MTA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define metaError(...) do { if (metaDebugFlag & DEBUG_ERROR) { taosPrintLog("MTA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define metaWarn(...) do { if (metaDebugFlag & DEBUG_WARN) { taosPrintLog("MTA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define metaInfo(...) do { if (metaDebugFlag & DEBUG_INFO) { taosPrintLog("MTA ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define metaDebug(...) do { if (metaDebugFlag & DEBUG_DEBUG) { taosPrintLog("MTA ", DEBUG_DEBUG, metaDebugFlag, __VA_ARGS__); }} while(0) -#define metaTrace(...) do { if (metaDebugFlag & DEBUG_TRACE) { taosPrintLog("MTA ", DEBUG_TRACE, metaDebugFlag, __VA_ARGS__); }} while(0) +#define metaFatal(...) do { if (metaDebugFlag & DEBUG_FATAL) { taosPrintLog("MTA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define metaError(...) do { if (metaDebugFlag & DEBUG_ERROR) { taosPrintLog("MTA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define metaWarn(...) do { if (metaDebugFlag & DEBUG_WARN) { taosPrintLog("MTA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define metaInfo(...) do { if (metaDebugFlag & DEBUG_INFO) { taosPrintLog("MTA INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define metaDebug(...) do { if (metaDebugFlag & DEBUG_DEBUG) { taosPrintLog("MTA DEBUG ", DEBUG_DEBUG, metaDebugFlag, __VA_ARGS__); }} while(0) +#define metaTrace(...) do { if (metaDebugFlag & DEBUG_TRACE) { taosPrintLog("MTA TRACE ", DEBUG_TRACE, metaDebugFlag, __VA_ARGS__); }} while(0) // clang-format on // metaOpen ================== diff --git a/source/dnode/vnode/src/inc/sma.h b/source/dnode/vnode/src/inc/sma.h index 243f51ca0a..182290f77e 100644 --- a/source/dnode/vnode/src/inc/sma.h +++ b/source/dnode/vnode/src/inc/sma.h @@ -24,12 +24,12 @@ extern "C" { // smaDebug ================ // clang-format off -#define smaFatal(...) do { if (smaDebugFlag & DEBUG_FATAL) { taosPrintLog("SMA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define smaError(...) do { if (smaDebugFlag & DEBUG_ERROR) { taosPrintLog("SMA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define smaWarn(...) do { if (smaDebugFlag & DEBUG_WARN) { taosPrintLog("SMA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define smaInfo(...) do { if (smaDebugFlag & DEBUG_INFO) { taosPrintLog("SMA ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define smaDebug(...) do { if (smaDebugFlag & DEBUG_DEBUG) { taosPrintLog("SMA ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) -#define smaTrace(...) do { if (smaDebugFlag & DEBUG_TRACE) { taosPrintLog("SMA ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define smaFatal(...) do { if (smaDebugFlag & DEBUG_FATAL) { taosPrintLog("SMA FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define smaError(...) do { if (smaDebugFlag & DEBUG_ERROR) { taosPrintLog("SMA ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define smaWarn(...) do { if (smaDebugFlag & DEBUG_WARN) { taosPrintLog("SMA WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define smaInfo(...) do { if (smaDebugFlag & DEBUG_INFO) { taosPrintLog("SMA INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define smaDebug(...) do { if (smaDebugFlag & DEBUG_DEBUG) { taosPrintLog("SMA DEBUG ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define smaTrace(...) do { if (smaDebugFlag & DEBUG_TRACE) { taosPrintLog("SMA TRACE ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define RSMA_TASK_INFO_HASH_SLOT (8) diff --git a/source/dnode/vnode/src/inc/tq.h b/source/dnode/vnode/src/inc/tq.h index cd66e82687..be0df15447 100644 --- a/source/dnode/vnode/src/inc/tq.h +++ b/source/dnode/vnode/src/inc/tq.h @@ -33,12 +33,12 @@ extern "C" { // tqDebug =================== // clang-format off -#define tqFatal(...) do { if (tqDebugFlag & DEBUG_FATAL) { taosPrintLog("TQ FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tqError(...) do { if (tqDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tqWarn(...) do { if (tqDebugFlag & DEBUG_WARN) { taosPrintLog("TQ WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tqInfo(...) do { if (tqDebugFlag & DEBUG_INFO) { taosPrintLog("TQ ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tqDebug(...) do { if (tqDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ ", DEBUG_DEBUG, tqDebugFlag, __VA_ARGS__); }} while(0) -#define tqTrace(...) do { if (tqDebugFlag & DEBUG_TRACE) { taosPrintLog("TQ ", DEBUG_TRACE, tqDebugFlag, __VA_ARGS__); }} while(0) +#define tqFatal(...) do { if (tqDebugFlag & DEBUG_FATAL) { taosPrintLog("TQ FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tqError(...) do { if (tqDebugFlag & DEBUG_ERROR) { taosPrintLog("TQ ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tqWarn(...) do { if (tqDebugFlag & DEBUG_WARN) { taosPrintLog("TQ WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tqInfo(...) do { if (tqDebugFlag & DEBUG_INFO) { taosPrintLog("TQ INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tqDebug(...) do { if (tqDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ DEBUG ", DEBUG_DEBUG, tqDebugFlag, __VA_ARGS__); }} while(0) +#define tqTrace(...) do { if (tqDebugFlag & DEBUG_TRACE) { taosPrintLog("TQ TRACE ", DEBUG_TRACE, tqDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define IS_OFFSET_RESET_TYPE(_t) ((_t) < 0) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 753f7cb726..1778b7cda8 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -28,12 +28,12 @@ extern "C" { // tsdbDebug ================ // clang-format off -#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TSD FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TSD ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TSD WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TSD ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSD ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) -#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TSD ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define tsdbFatal(...) do { if (tsdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TSD FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tsdbError(...) do { if (tsdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TSD ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tsdbWarn(...) do { if (tsdbDebugFlag & DEBUG_WARN) { taosPrintLog("TSD WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tsdbInfo(...) do { if (tsdbDebugFlag & DEBUG_INFO) { taosPrintLog("TSD INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tsdbDebug(...) do { if (tsdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TSD DEBUG ", DEBUG_DEBUG, tsdbDebugFlag, __VA_ARGS__); }} while(0) +#define tsdbTrace(...) do { if (tsdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TSD TRACE ", DEBUG_TRACE, tsdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on typedef struct TSDBROW TSDBROW; diff --git a/source/dnode/vnode/src/inc/vnd.h b/source/dnode/vnode/src/inc/vnd.h index 7da3dcbe5a..db48f8cfa3 100644 --- a/source/dnode/vnode/src/inc/vnd.h +++ b/source/dnode/vnode/src/inc/vnd.h @@ -25,12 +25,12 @@ extern "C" { #endif // clang-format off -#define vFatal(...) do { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("VND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define vError(...) do { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("VND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define vWarn(...) do { if (vDebugFlag & DEBUG_WARN) { taosPrintLog("VND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define vInfo(...) do { if (vDebugFlag & DEBUG_INFO) { taosPrintLog("VND ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) -#define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) +#define vFatal(...) do { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("VND FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define vError(...) do { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("VND ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define vWarn(...) do { if (vDebugFlag & DEBUG_WARN) { taosPrintLog("VND WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define vInfo(...) do { if (vDebugFlag & DEBUG_INFO) { taosPrintLog("VND INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND DEBUG ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) +#define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND TRACE ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) #define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) #define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ",QID:%s", __VA_ARGS__, buf);}} while(0) diff --git a/source/libs/azure/inc/azInt.h b/source/libs/azure/inc/azInt.h index 3538e925c7..e3ea685ebb 100644 --- a/source/libs/azure/inc/azInt.h +++ b/source/libs/azure/inc/azInt.h @@ -27,12 +27,12 @@ extern "C" { #endif // clang-format off -#define azFatal(...) { if (azDebugFlag & DEBUG_FATAL) { taosPrintLog("AZR FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define azError(...) { if (azDebugFlag & DEBUG_ERROR) { taosPrintLog("AZR ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define azWarn(...) { if (azDebugFlag & DEBUG_WARN) { taosPrintLog("AZR WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define azInfo(...) { if (azDebugFlag & DEBUG_INFO) { taosPrintLog("AZR ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define azDebug(...) { if (azDebugFlag & DEBUG_DEBUG) { taosPrintLog("AZR ", DEBUG_DEBUG, azDebugFlag, __VA_ARGS__); }} -#define azTrace(...) { if (azDebugFlag & DEBUG_TRACE) { taosPrintLog("AZR ", DEBUG_TRACE, azDebugFlag, __VA_ARGS__); }} +#define azFatal(...) { if (azDebugFlag & DEBUG_FATAL) { taosPrintLog("AZR FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define azError(...) { if (azDebugFlag & DEBUG_ERROR) { taosPrintLog("AZR ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define azWarn(...) { if (azDebugFlag & DEBUG_WARN) { taosPrintLog("AZR WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define azInfo(...) { if (azDebugFlag & DEBUG_INFO) { taosPrintLog("AZR INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define azDebug(...) { if (azDebugFlag & DEBUG_DEBUG) { taosPrintLog("AZR DEBUG ", DEBUG_DEBUG, azDebugFlag, __VA_ARGS__); }} +#define azTrace(...) { if (azDebugFlag & DEBUG_TRACE) { taosPrintLog("AZR TRACE ", DEBUG_TRACE, azDebugFlag, __VA_ARGS__); }} // clang-format on #ifdef __cplusplus diff --git a/source/libs/function/inc/fnLog.h b/source/libs/function/inc/fnLog.h index 150d145f50..b2c3937363 100644 --- a/source/libs/function/inc/fnLog.h +++ b/source/libs/function/inc/fnLog.h @@ -22,12 +22,12 @@ extern "C" { #endif // clang-format off -#define fnFatal(...) { if (udfDebugFlag & DEBUG_FATAL) { taosPrintLog("UDF FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define fnError(...) { if (udfDebugFlag & DEBUG_ERROR) { taosPrintLog("UDF ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define fnWarn(...) { if (udfDebugFlag & DEBUG_WARN) { taosPrintLog("UDF WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define fnInfo(...) { if (udfDebugFlag & DEBUG_INFO) { taosPrintLog("UDF ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define fnDebug(...) { if (udfDebugFlag & DEBUG_DEBUG) { taosPrintLog("UDF ", DEBUG_DEBUG, udfDebugFlag, __VA_ARGS__); }} -#define fnTrace(...) { if (udfDebugFlag & DEBUG_TRACE) { taosPrintLog("UDF ", DEBUG_TRACE, udfDebugFlag, __VA_ARGS__); }} +#define fnFatal(...) { if (udfDebugFlag & DEBUG_FATAL) { taosPrintLog("UDF FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define fnError(...) { if (udfDebugFlag & DEBUG_ERROR) { taosPrintLog("UDF ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define fnWarn(...) { if (udfDebugFlag & DEBUG_WARN) { taosPrintLog("UDF WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define fnInfo(...) { if (udfDebugFlag & DEBUG_INFO) { taosPrintLog("UDF INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define fnDebug(...) { if (udfDebugFlag & DEBUG_DEBUG) { taosPrintLog("UDF DEBUG ", DEBUG_DEBUG, udfDebugFlag, __VA_ARGS__); }} +#define fnTrace(...) { if (udfDebugFlag & DEBUG_TRACE) { taosPrintLog("UDF TRACE ", DEBUG_TRACE, udfDebugFlag, __VA_ARGS__); }} // clang-format on #ifdef __cplusplus diff --git a/source/libs/index/inc/indexInt.h b/source/libs/index/inc/indexInt.h index 4e7c0a0ef7..19ff27cd64 100644 --- a/source/libs/index/inc/indexInt.h +++ b/source/libs/index/inc/indexInt.h @@ -32,12 +32,12 @@ extern "C" { #endif // clang-format off -#define indexFatal(...) do { if (idxDebugFlag & DEBUG_FATAL) { taosPrintLog("IDX FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while (0) -#define indexError(...) do { if (idxDebugFlag & DEBUG_ERROR) { taosPrintLog("IDX ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while (0) -#define indexWarn(...) do { if (idxDebugFlag & DEBUG_WARN) { taosPrintLog("IDX WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while (0) -#define indexInfo(...) do { if (idxDebugFlag & DEBUG_INFO) { taosPrintLog("IDX ", DEBUG_INFO, 255, __VA_ARGS__); } } while (0) -#define indexDebug(...) do { if (idxDebugFlag & DEBUG_DEBUG) { taosPrintLog("IDX ", DEBUG_DEBUG, idxDebugFlag, __VA_ARGS__);} } while (0) -#define indexTrace(...) do { if (idxDebugFlag & DEBUG_TRACE) { taosPrintLog("IDX", DEBUG_TRACE, idxDebugFlag, __VA_ARGS__);} } while (0) +#define indexFatal(...) do { if (idxDebugFlag & DEBUG_FATAL) { taosPrintLog("IDX FATAL ", DEBUG_FATAL, 255, __VA_ARGS__);}} while (0) +#define indexError(...) do { if (idxDebugFlag & DEBUG_ERROR) { taosPrintLog("IDX ERROR ", DEBUG_ERROR, 255, __VA_ARGS__);}} while (0) +#define indexWarn(...) do { if (idxDebugFlag & DEBUG_WARN) { taosPrintLog("IDX WARN ", DEBUG_WARN, 255, __VA_ARGS__);}} while (0) +#define indexInfo(...) do { if (idxDebugFlag & DEBUG_INFO) { taosPrintLog("IDX INFO ", DEBUG_INFO, 255, __VA_ARGS__);}} while (0) +#define indexDebug(...) do { if (idxDebugFlag & DEBUG_DEBUG) { taosPrintLog("IDX DEBUG ", DEBUG_DEBUG, idxDebugFlag, __VA_ARGS__);}} while (0) +#define indexTrace(...) do { if (idxDebugFlag & DEBUG_TRACE) { taosPrintLog("IDX TRACE ", DEBUG_TRACE, idxDebugFlag, __VA_ARGS__);}} while (0) // clang-format on extern void* indexQhandle; diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index 874d6df811..c68cbbc8e0 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -971,8 +971,9 @@ int32_t nodesMakeNode(ENodeType type, SNode** ppNodeOut) { default: break; } - if (TSDB_CODE_SUCCESS != code) + if (TSDB_CODE_SUCCESS != code) { nodesError("nodesMakeNode unknown node = %s", nodesNodeName(type)); + } else *ppNodeOut = pNode; return code; diff --git a/source/libs/stream/inc/streamInt.h b/source/libs/stream/inc/streamInt.h index d9778a6a05..bc47cd4ce1 100644 --- a/source/libs/stream/inc/streamInt.h +++ b/source/libs/stream/inc/streamInt.h @@ -41,12 +41,12 @@ extern "C" { #define STREAM_TASK_QUEUE_CAPACITY_IN_SIZE (10) // clang-format off -#define stFatal(...) do { if (stDebugFlag & DEBUG_FATAL) { taosPrintLog("STM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define stError(...) do { if (stDebugFlag & DEBUG_ERROR) { taosPrintLog("STM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define stWarn(...) do { if (stDebugFlag & DEBUG_WARN) { taosPrintLog("STM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define stInfo(...) do { if (stDebugFlag & DEBUG_INFO) { taosPrintLog("STM ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define stDebug(...) do { if (stDebugFlag & DEBUG_DEBUG) { taosPrintLog("STM ", DEBUG_DEBUG, stDebugFlag, __VA_ARGS__); }} while(0) -#define stTrace(...) do { if (stDebugFlag & DEBUG_TRACE) { taosPrintLog("STM ", DEBUG_TRACE, stDebugFlag, __VA_ARGS__); }} while(0) +#define stFatal(...) do { if (stDebugFlag & DEBUG_FATAL) { taosPrintLog("STM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define stError(...) do { if (stDebugFlag & DEBUG_ERROR) { taosPrintLog("STM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define stWarn(...) do { if (stDebugFlag & DEBUG_WARN) { taosPrintLog("STM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define stInfo(...) do { if (stDebugFlag & DEBUG_INFO) { taosPrintLog("STM INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define stDebug(...) do { if (stDebugFlag & DEBUG_DEBUG) { taosPrintLog("STM DEBUG ", DEBUG_DEBUG, stDebugFlag, __VA_ARGS__); }} while(0) +#define stTrace(...) do { if (stDebugFlag & DEBUG_TRACE) { taosPrintLog("STM TRACE ", DEBUG_TRACE, stDebugFlag, __VA_ARGS__); }} while(0) // clang-format on typedef struct SStreamTmrInfo { diff --git a/source/libs/sync/inc/syncUtil.h b/source/libs/sync/inc/syncUtil.h index 7b71491f47..7c4f9b2781 100644 --- a/source/libs/sync/inc/syncUtil.h +++ b/source/libs/sync/inc/syncUtil.h @@ -27,45 +27,45 @@ extern "C" { #define sFatal(...) if (sDebugFlag & DEBUG_FATAL) { taosPrintLog("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); } #define sError(...) if (sDebugFlag & DEBUG_ERROR) { taosPrintLog("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define sWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } -#define sInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLog("SYN ", DEBUG_INFO, 255, __VA_ARGS__); } -#define sDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLog("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } -#define sTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLog("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } +#define sWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } +#define sInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLog("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); } +#define sDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } +#define sTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } #define sGTrace(param, ...) do { if (sDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) #define sGFatal(param, ...) do { if (sDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGError(param, ...) do { if (sDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf);sError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGWarn(param, ...) do { if (sDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGInfo(param, ...) do { if (sDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) -#define sGDebug(param, ...) do { if (sDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGError(param, ...) do { if (sDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf);sError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGWarn(param, ...) do { if (sDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGInfo(param, ...) do { if (sDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define sGDebug(param, ...) do { if (sDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); sDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) #define sLFatal(...) if (sDebugFlag & DEBUG_FATAL) { taosPrintLongString("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); } #define sLError(...) if (sDebugFlag & DEBUG_ERROR) { taosPrintLongString("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); } -#define sLWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } -#define sLInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLongString("SYN ", DEBUG_INFO, 255, __VA_ARGS__); } -#define sLDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLongString("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } -#define sLTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLongString("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } +#define sLWarn(...) if (sDebugFlag & DEBUG_WARN) { taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); } +#define sLInfo(...) if (sDebugFlag & DEBUG_INFO) { taosPrintLongString("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); } +#define sLDebug(...) if (sDebugFlag & DEBUG_DEBUG) { taosPrintLongString("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); } +#define sLTrace(...) if (sDebugFlag & DEBUG_TRACE) { taosPrintLongString("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); } -#define sNFatal(pNode, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintNodeLog("SYN FATAL ", DEBUG_FATAL, 255, true, pNode, __VA_ARGS__); } -#define sNError(pNode, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintNodeLog("SYN ERROR ", DEBUG_ERROR, 255, true, pNode, __VA_ARGS__); } -#define sNWarn(pNode, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintNodeLog("SYN WARN ", DEBUG_WARN, 255, true, pNode, __VA_ARGS__); } -#define sNInfo(pNode, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintNodeLog("SYN ", DEBUG_INFO, 255, true, pNode, __VA_ARGS__); } -#define sNDebug(pNode, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintNodeLog("SYN ", DEBUG_DEBUG, sDebugFlag, false, pNode, __VA_ARGS__); } -#define sNTrace(pNode, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintNodeLog("SYN ", DEBUG_TRACE, sDebugFlag, false, pNode, __VA_ARGS__); } +#define sNFatal(pNode, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintNodeLog("SYN FATAL ", DEBUG_FATAL, 255, true, pNode, __VA_ARGS__); } +#define sNError(pNode, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintNodeLog("SYN ERROR ", DEBUG_ERROR, 255, true, pNode, __VA_ARGS__); } +#define sNWarn(pNode, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintNodeLog("SYN WARN ", DEBUG_WARN, 255, true, pNode, __VA_ARGS__); } +#define sNInfo(pNode, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintNodeLog("SYN INFO ", DEBUG_INFO, 255, true, pNode, __VA_ARGS__); } +#define sNDebug(pNode, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintNodeLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, false, pNode, __VA_ARGS__); } +#define sNTrace(pNode, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintNodeLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, false, pNode, __VA_ARGS__); } #define sSFatal(pSender, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintSnapshotSenderLog("SYN FATAL ", DEBUG_FATAL, 255, pSender, __VA_ARGS__); } #define sSError(pSender, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintSnapshotSenderLog("SYN ERROR ", DEBUG_ERROR, 255, pSender, __VA_ARGS__); } -#define sSWarn(pSender, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotSenderLog("SYN WARN ", DEBUG_WARN, 255, pSender, __VA_ARGS__); } -#define sSInfo(pSender, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotSenderLog("SYN ", DEBUG_INFO, 255, pSender, __VA_ARGS__); } -#define sSDebug(pSender, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotSenderLog("SYN ", DEBUG_DEBUG, sDebugFlag, pSender, __VA_ARGS__); } -#define sSTrace(pSender, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotSenderLog("SYN ", DEBUG_TRACE, sDebugFlag, pSender, __VA_ARGS__); } +#define sSWarn(pSender, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotSenderLog("SYN WARN ", DEBUG_WARN, 255, pSender, __VA_ARGS__); } +#define sSInfo(pSender, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotSenderLog("SYN INFO ", DEBUG_INFO, 255, pSender, __VA_ARGS__); } +#define sSDebug(pSender, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotSenderLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, pSender, __VA_ARGS__); } +#define sSTrace(pSender, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotSenderLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, pSender, __VA_ARGS__); } #define sRFatal(pReceiver, ...) if (sDebugFlag & DEBUG_FATAL) { syncPrintSnapshotReceiverLog("SYN FATAL ", DEBUG_FATAL, 255, pReceiver, __VA_ARGS__); } #define sRError(pReceiver, ...) if (sDebugFlag & DEBUG_ERROR) { syncPrintSnapshotReceiverLog("SYN ERROR ", DEBUG_ERROR, 255, pReceiver, __VA_ARGS__); } -#define sRWarn(pReceiver, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotReceiverLog("SYN WARN ", DEBUG_WARN, 255, pReceiver, __VA_ARGS__); } -#define sRInfo(pReceiver, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_INFO, 255, pReceiver, __VA_ARGS__); } -#define sRDebug(pReceiver, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_DEBUG, sDebugFlag, pReceiver, __VA_ARGS__); } -#define sRTrace(pReceiver, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotReceiverLog("SYN ", DEBUG_TRACE, sDebugFlag, pReceiver, __VA_ARGS__); } +#define sRWarn(pReceiver, ...) if (sDebugFlag & DEBUG_WARN) { syncPrintSnapshotReceiverLog("SYN WARN ", DEBUG_WARN, 255, pReceiver, __VA_ARGS__); } +#define sRInfo(pReceiver, ...) if (sDebugFlag & DEBUG_INFO) { syncPrintSnapshotReceiverLog("SYN INFO ", DEBUG_INFO, 255, pReceiver, __VA_ARGS__); } +#define sRDebug(pReceiver, ...) if (sDebugFlag & DEBUG_DEBUG) { syncPrintSnapshotReceiverLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, pReceiver, __VA_ARGS__); } +#define sRTrace(pReceiver, ...) if (sDebugFlag & DEBUG_TRACE) { syncPrintSnapshotReceiverLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, pReceiver, __VA_ARGS__); } // clang-format on diff --git a/source/libs/tdb/src/inc/tdbOs.h b/source/libs/tdb/src/inc/tdbOs.h index cd2d4ce57a..c7c282a7d8 100644 --- a/source/libs/tdb/src/inc/tdbOs.h +++ b/source/libs/tdb/src/inc/tdbOs.h @@ -30,12 +30,12 @@ extern "C" { // clang-format off extern int32_t tdbDebugFlag; -#define tdbFatal(...) do { if (tdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) -#define tdbError(...) do { if (tdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) -#define tdbWarn(...) do { if (tdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) -#define tdbInfo(...) do { if (tdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) -#define tdbDebug(...) do { if (tdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB ", DEBUG_DEBUG, tdbDebugFlag, __VA_ARGS__); }} while(0) -#define tdbTrace(...) do { if (tdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB ", DEBUG_TRACE, tdbDebugFlag, __VA_ARGS__); }} while(0) +#define tdbFatal(...) do { if (tdbDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0) +#define tdbError(...) do { if (tdbDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0) +#define tdbWarn(...) do { if (tdbDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0) +#define tdbInfo(...) do { if (tdbDebugFlag & DEBUG_INFO) { taosPrintLog("TDB INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0) +#define tdbDebug(...) do { if (tdbDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB DEBUG ", DEBUG_DEBUG, tdbDebugFlag, __VA_ARGS__); }} while(0) +#define tdbTrace(...) do { if (tdbDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB TRACE ", DEBUG_TRACE, tdbDebugFlag, __VA_ARGS__); }} while(0) // clang-format on // For memory ----------------- diff --git a/source/libs/tfs/inc/tfsInt.h b/source/libs/tfs/inc/tfsInt.h index 9b4b29963e..11ee4bdf43 100644 --- a/source/libs/tfs/inc/tfsInt.h +++ b/source/libs/tfs/inc/tfsInt.h @@ -31,12 +31,12 @@ extern "C" { // For debug purpose // clang-format off -#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} -#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS ", DEBUG_DEBUG, fsDebugFlag, __VA_ARGS__); }} -#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS ", DEBUG_TRACE, fsDebugFlag, __VA_ARGS__); }} +#define fFatal(...) { if (fsDebugFlag & DEBUG_FATAL) { taosPrintLog("TFS FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define fError(...) { if (fsDebugFlag & DEBUG_ERROR) { taosPrintLog("TFS ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define fWarn(...) { if (fsDebugFlag & DEBUG_WARN) { taosPrintLog("TFS WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define fInfo(...) { if (fsDebugFlag & DEBUG_INFO) { taosPrintLog("TFS INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define fDebug(...) { if (fsDebugFlag & DEBUG_DEBUG) { taosPrintLog("TFS DEBUG ", DEBUG_DEBUG, fsDebugFlag, __VA_ARGS__); }} +#define fTrace(...) { if (fsDebugFlag & DEBUG_TRACE) { taosPrintLog("TFS TRACE ", DEBUG_TRACE, fsDebugFlag, __VA_ARGS__); }} // clang-format on typedef struct { diff --git a/source/libs/transport/inc/transLog.h b/source/libs/transport/inc/transLog.h index ec71bbefae..8b8cc3ae72 100644 --- a/source/libs/transport/inc/transLog.h +++ b/source/libs/transport/inc/transLog.h @@ -26,10 +26,10 @@ extern "C" { #define tFatal(...) { if (rpcDebugFlag & DEBUG_FATAL) { taosPrintLog("RPC FATAL ", DEBUG_FATAL, rpcDebugFlag, __VA_ARGS__); }} #define tError(...) { if (rpcDebugFlag & DEBUG_ERROR ){ taosPrintLog("RPC ERROR ", DEBUG_ERROR, rpcDebugFlag, __VA_ARGS__); }} -#define tWarn(...) { if (rpcDebugFlag & DEBUG_WARN) { taosPrintLog("RPC WARN ", DEBUG_WARN, rpcDebugFlag, __VA_ARGS__); }} -#define tInfo(...) { if (rpcDebugFlag & DEBUG_INFO) { taosPrintLog("RPC ", DEBUG_INFO, rpcDebugFlag, __VA_ARGS__); }} -#define tDebug(...) { if (rpcDebugFlag & DEBUG_DEBUG) { taosPrintLog("RPC ", DEBUG_DEBUG, rpcDebugFlag, __VA_ARGS__); }} -#define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} +#define tWarn(...) { if (rpcDebugFlag & DEBUG_WARN) { taosPrintLog("RPC WARN ", DEBUG_WARN, rpcDebugFlag, __VA_ARGS__); }} +#define tInfo(...) { if (rpcDebugFlag & DEBUG_INFO) { taosPrintLog("RPC INFO ", DEBUG_INFO, rpcDebugFlag, __VA_ARGS__); }} +#define tDebug(...) { if (rpcDebugFlag & DEBUG_DEBUG) { taosPrintLog("RPC DEBUG ", DEBUG_DEBUG, rpcDebugFlag, __VA_ARGS__); }} +#define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC TRACE ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} #define tDump(x, y) { if (rpcDebugFlag & DEBUG_DUMP) { taosDumpData((unsigned char *)x, y); } } #define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) diff --git a/source/libs/wal/inc/walInt.h b/source/libs/wal/inc/walInt.h index 3bc69a6393..304cb52870 100644 --- a/source/libs/wal/inc/walInt.h +++ b/source/libs/wal/inc/walInt.h @@ -30,10 +30,10 @@ extern "C" { // clang-format off #define wFatal(...) { if (wDebugFlag & DEBUG_FATAL) { taosPrintLog("WAL FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} #define wError(...) { if (wDebugFlag & DEBUG_ERROR) { taosPrintLog("WAL ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} -#define wWarn(...) { if (wDebugFlag & DEBUG_WARN) { taosPrintLog("WAL WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} -#define wInfo(...) { if (wDebugFlag & DEBUG_INFO) { taosPrintLog("WAL ", DEBUG_INFO, 255, __VA_ARGS__); }} -#define wDebug(...) { if (wDebugFlag & DEBUG_DEBUG) { taosPrintLog("WAL ", DEBUG_DEBUG, wDebugFlag, __VA_ARGS__); }} -#define wTrace(...) { if (wDebugFlag & DEBUG_TRACE) { taosPrintLog("WAL ", DEBUG_TRACE, wDebugFlag, __VA_ARGS__); }} +#define wWarn(...) { if (wDebugFlag & DEBUG_WARN) { taosPrintLog("WAL WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define wInfo(...) { if (wDebugFlag & DEBUG_INFO) { taosPrintLog("WAL INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define wDebug(...) { if (wDebugFlag & DEBUG_DEBUG) { taosPrintLog("WAL DEBUG ", DEBUG_DEBUG, wDebugFlag, __VA_ARGS__); }} +#define wTrace(...) { if (wDebugFlag & DEBUG_TRACE) { taosPrintLog("WAL TRACE ", DEBUG_TRACE, wDebugFlag, __VA_ARGS__); }} // clang-format on // meta section begin diff --git a/source/util/src/ttimer.c b/source/util/src/ttimer.c index ec300c5206..a6527ccbec 100644 --- a/source/util/src/ttimer.c +++ b/source/util/src/ttimer.c @@ -20,42 +20,14 @@ #include "tlog.h" #include "tsched.h" -#define tmrFatal(...) \ - { \ - if (tmrDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("TMR FATAL ", DEBUG_FATAL, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrError(...) \ - { \ - if (tmrDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("TMR ERROR ", DEBUG_ERROR, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrWarn(...) \ - { \ - if (tmrDebugFlag & DEBUG_WARN) { \ - taosPrintLog("TMR WARN ", DEBUG_WARN, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrInfo(...) \ - { \ - if (tmrDebugFlag & DEBUG_INFO) { \ - taosPrintLog("TMR ", DEBUG_INFO, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrDebug(...) \ - { \ - if (tmrDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("TMR ", DEBUG_DEBUG, tmrDebugFlag, __VA_ARGS__); \ - } \ - } -#define tmrTrace(...) \ - { \ - if (tmrDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("TMR ", DEBUG_TRACE, tmrDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define tmrFatal(...) { if (tmrDebugFlag & DEBUG_FATAL) { taosPrintLog("TMR FATAL ", DEBUG_FATAL, tmrDebugFlag, __VA_ARGS__); }} +#define tmrError(...) { if (tmrDebugFlag & DEBUG_ERROR) { taosPrintLog("TMR ERROR ", DEBUG_ERROR, tmrDebugFlag, __VA_ARGS__); }} +#define tmrWarn(...) { if (tmrDebugFlag & DEBUG_WARN) { taosPrintLog("TMR WARN ", DEBUG_WARN, tmrDebugFlag, __VA_ARGS__); }} +#define tmrInfo(...) { if (tmrDebugFlag & DEBUG_INFO) { taosPrintLog("TMR INFO ", DEBUG_INFO, tmrDebugFlag, __VA_ARGS__); }} +#define tmrDebug(...) { if (tmrDebugFlag & DEBUG_DEBUG) { taosPrintLog("TMR DEBUG ", DEBUG_DEBUG, tmrDebugFlag, __VA_ARGS__); }} +#define tmrTrace(...) { if (tmrDebugFlag & DEBUG_TRACE) { taosPrintLog("TMR TRACE ", DEBUG_TRACE, tmrDebugFlag, __VA_ARGS__); }} +// clang-format on #define TIMER_STATE_WAITING 0 #define TIMER_STATE_EXPIRED 1 diff --git a/utils/tsim/inc/simInt.h b/utils/tsim/inc/simInt.h index 0ad0bfdea8..c2a032ab68 100644 --- a/utils/tsim/inc/simInt.h +++ b/utils/tsim/inc/simInt.h @@ -59,42 +59,14 @@ extern "C" { #define FAILED_POSTFIX "" #endif -#define simFatal(...) \ - { \ - if (simDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("SIM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \ - } \ - } -#define simError(...) \ - { \ - if (simDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("SIM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \ - } \ - } -#define simWarn(...) \ - { \ - if (simDebugFlag & DEBUG_WARN) { \ - taosPrintLog("SIM WARN ", DEBUG_WARN, 255, __VA_ARGS__); \ - } \ - } -#define simInfo(...) \ - { \ - if (simDebugFlag & DEBUG_INFO) { \ - taosPrintLog("SIM ", DEBUG_INFO, 255, __VA_ARGS__); \ - } \ - } -#define simDebug(...) \ - { \ - if (simDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("SIM ", DEBUG_DEBUG, simDebugFlag, __VA_ARGS__); \ - } \ - } -#define simTrace(...) \ - { \ - if (simDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("SIM ", DEBUG_TRACE, simDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define simFatal(...) { if (simDebugFlag & DEBUG_FATAL) { taosPrintLog("SIM FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} +#define simError(...) { if (simDebugFlag & DEBUG_ERROR) { taosPrintLog("SIM ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} +#define simWarn(...) { if (simDebugFlag & DEBUG_WARN) { taosPrintLog("SIM WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} +#define simInfo(...) { if (simDebugFlag & DEBUG_INFO) { taosPrintLog("SIM INFO ", DEBUG_INFO, 255, __VA_ARGS__); }} +#define simDebug(...) { if (simDebugFlag & DEBUG_DEBUG) { taosPrintLog("SIM DEBUG ", DEBUG_DEBUG, simDebugFlag, __VA_ARGS__); }} +#define simTrace(...) { if (simDebugFlag & DEBUG_TRACE) { taosPrintLog("SIM TRACE ", DEBUG_TRACE, simDebugFlag, __VA_ARGS__); }} +// clang-format on enum { SIM_SCRIPT_TYPE_MAIN, SIM_SCRIPT_TYPE_BACKGROUND }; From 76ad364b93d36c497d112a5764571a4a1fead349 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Wed, 26 Feb 2025 11:34:50 +0800 Subject: [PATCH 25/34] enh: adjust some logs --- include/libs/function/taosudf.h | 8 +- include/libs/qcom/query.h | 16 +- source/client/inc/clientStmt.h | 10 +- source/client/inc/clientStmt2.h | 10 +- source/client/jni/jniCommon.h | 44 +--- source/client/src/clientEnv.c | 40 ++-- source/client/src/clientHb.c | 34 +-- source/client/src/clientImpl.c | 64 +++--- source/client/src/clientMain.c | 31 +-- source/client/src/clientMonitor.c | 68 +++--- source/client/src/clientMsgHandler.c | 38 ++-- source/client/src/clientRawBlockWrite.c | 2 +- source/client/src/clientStmt.c | 2 +- source/client/src/clientStmt2.c | 2 +- source/client/src/clientTmq.c | 14 +- source/dnode/mgmt/mgmt_dnode/src/dmHandle.c | 2 +- source/dnode/mgmt/mgmt_mnode/src/mmInt.c | 2 +- source/dnode/mgmt/node_util/inc/dmUtil.h | 12 +- source/dnode/mnode/impl/inc/mndInt.h | 12 +- source/dnode/mnode/impl/src/mndStream.c | 2 +- source/dnode/vnode/src/inc/vnd.h | 12 +- source/dnode/vnode/src/sma/smaRollup.c | 14 +- source/dnode/vnode/src/tq/tq.c | 6 +- source/dnode/vnode/src/tq/tqRead.c | 4 +- source/dnode/vnode/src/tq/tqUtil.c | 4 +- source/dnode/vnode/src/tqCommon/tqCommon.c | 2 +- source/dnode/vnode/src/tsdb/tsdbFile2.c | 16 +- source/dnode/vnode/src/tsdb/tsdbRead2.c | 2 +- source/libs/catalog/inc/catalogInt.h | 24 +-- source/libs/catalog/src/catalog.c | 6 +- source/libs/catalog/src/ctgAsync.c | 64 +++--- source/libs/catalog/src/ctgCache.c | 36 ++-- source/libs/catalog/src/ctgRemote.c | 44 ++-- source/libs/catalog/src/ctgRent.c | 2 +- source/libs/catalog/src/ctgUtil.c | 12 +- source/libs/executor/src/aggregateoperator.c | 4 +- source/libs/executor/src/executil.c | 2 +- source/libs/executor/src/executor.c | 2 +- source/libs/executor/src/groupoperator.c | 2 +- source/libs/executor/src/operator.c | 6 +- source/libs/executor/src/scanoperator.c | 2 +- source/libs/function/src/tudf.c | 6 +- source/libs/function/src/udfd.c | 6 +- source/libs/nodes/inc/nodesUtil.h | 12 +- source/libs/parser/inc/parUtil.h | 12 +- source/libs/parser/src/parInsertSql.c | 12 +- source/libs/parser/src/parInsertStmt.c | 16 +- source/libs/parser/src/parInsertUtil.c | 8 +- source/libs/parser/src/parTranslater.c | 44 ++-- source/libs/planner/src/planner.c | 6 +- source/libs/qcom/src/queryUtil.c | 2 +- source/libs/qcom/src/querymsg.c | 2 +- source/libs/qworker/inc/qwInt.h | 20 +- source/libs/qworker/src/qwDbg.c | 6 +- source/libs/qworker/src/qworker.c | 14 +- source/libs/scheduler/inc/schInt.h | 14 +- source/libs/scheduler/src/schJob.c | 34 +-- source/libs/scheduler/src/schRemote.c | 9 +- source/libs/scheduler/src/schStatus.c | 2 +- source/libs/scheduler/src/schTask.c | 8 +- source/libs/scheduler/src/schUtil.c | 8 +- source/libs/scheduler/src/scheduler.c | 12 +- source/libs/stream/src/streamCheckStatus.c | 2 +- source/libs/stream/src/streamDispatch.c | 2 +- source/libs/stream/src/streamExec.c | 2 +- source/libs/sync/src/syncMain.c | 6 +- source/libs/transport/inc/transLog.h | 12 +- source/libs/transport/src/thttp.c | 12 +- source/libs/transport/src/trans.c | 2 +- source/libs/transport/src/transCli.c | 208 +++++++++---------- source/libs/transport/src/transComm.c | 4 +- source/libs/transport/src/transSvr.c | 146 ++++++------- source/util/src/tpagedbuf.c | 2 +- source/util/src/tqueue.c | 12 +- source/util/src/tref.c | 68 +++--- 75 files changed, 691 insertions(+), 719 deletions(-) diff --git a/include/libs/function/taosudf.h b/include/libs/function/taosudf.h index ece98ac243..cef0eee84b 100644 --- a/include/libs/function/taosudf.h +++ b/include/libs/function/taosudf.h @@ -347,10 +347,10 @@ typedef int32_t (*TScriptCloseFunc)(); extern int32_t udfDebugFlag; #define udfFatal(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF FATAL ", 1, 255, __VA_ARGS__); }} #define udfError(...) { if (udfDebugFlag & 1) { taosPrintLog("UDF ERROR ", 1, 255, __VA_ARGS__); }} - #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} - #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} - #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} - #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} + #define udfWarn(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF WARN ", 2, 255, __VA_ARGS__); }} + #define udfInfo(...) { if (udfDebugFlag & 2) { taosPrintLog("UDF INFO ", 2, 255, __VA_ARGS__); }} + #define udfDebug(...) { if (udfDebugFlag & 4) { taosPrintLog("UDF DEBUG ", 4, udfDebugFlag, __VA_ARGS__); }} + #define udfTrace(...) { if (udfDebugFlag & 8) { taosPrintLog("UDF TRACE ", 8, udfDebugFlag, __VA_ARGS__); }} #endif // clang-format on diff --git a/include/libs/qcom/query.h b/include/libs/qcom/query.h index 065c7f92e8..6cb44ac13b 100644 --- a/include/libs/qcom/query.h +++ b/include/libs/qcom/query.h @@ -410,14 +410,14 @@ void* getTaskPoolWorkerCb(); ((*(_ctbname) == 't') && (0 == strncmp(_ctbname, TSDB_AUDIT_CTB_OPERATION, TSDB_AUDIT_CTB_OPERATION_LEN))) // clang-format off -#define qFatal(...) { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qError(...) { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qWarn(...) { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qInfo(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} -#define qDebug(...) { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} -#define qTrace(...) { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} -#define qDebugL(...){ if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} -#define qInfoL(...) { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} +#define qFatal(...) do { if (qDebugFlag & DEBUG_FATAL) { taosPrintLog("QRY FATAL ", DEBUG_FATAL, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qError(...) do { if (qDebugFlag & DEBUG_ERROR) { taosPrintLog("QRY ERROR ", DEBUG_ERROR, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qWarn(...) do { if (qDebugFlag & DEBUG_WARN) { taosPrintLog("QRY WARN ", DEBUG_WARN, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qInfo(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLog("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) +#define qDebug(...) do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLog("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0) +#define qTrace(...) do { if (qDebugFlag & DEBUG_TRACE) { taosPrintLog("QRY TRACE ", DEBUG_TRACE, qDebugFlag, __VA_ARGS__); }} while(0) +#define qDebugL(...)do { if (qDebugFlag & DEBUG_DEBUG) { taosPrintLongString("QRY DEBUG ", DEBUG_DEBUG, qDebugFlag, __VA_ARGS__); }} while(0) +#define qInfoL(...) do { if (qDebugFlag & DEBUG_INFO) { taosPrintLongString("QRY INFO ", DEBUG_INFO, tsLogEmbedded ? 255 : qDebugFlag, __VA_ARGS__); }} while(0) // clang-format on #define QRY_ERR_RET(c) \ diff --git a/source/client/inc/clientStmt.h b/source/client/inc/clientStmt.h index 35bfa66f72..ec61b2ff57 100644 --- a/source/client/inc/clientStmt.h +++ b/source/client/inc/clientStmt.h @@ -205,12 +205,12 @@ extern char *gStmtStatusStr[]; } \ } while (0) -#define STMT_FLOG(param, ...) qFatal("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_ELOG(param, ...) qError("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_DLOG(param, ...) qDebug("stmt:%p " param, pStmt, __VA_ARGS__) +#define STMT_FLOG(param, ...) qFatal("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_ELOG(param, ...) qError("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_DLOG(param, ...) qDebug("stmt:%p, " param, pStmt, __VA_ARGS__) -#define STMT_ELOG_E(param) qError("stmt:%p " param, pStmt) -#define STMT_DLOG_E(param) qDebug("stmt:%p " param, pStmt) +#define STMT_ELOG_E(param) qError("stmt:%p, " param, pStmt) +#define STMT_DLOG_E(param) qDebug("stmt:%p, " param, pStmt) TAOS_STMT *stmtInit(STscObj* taos, int64_t reqid, TAOS_STMT_OPTIONS* pOptions); int stmtClose(TAOS_STMT *stmt); diff --git a/source/client/inc/clientStmt2.h b/source/client/inc/clientStmt2.h index 283573803e..c7f8e9ffcd 100644 --- a/source/client/inc/clientStmt2.h +++ b/source/client/inc/clientStmt2.h @@ -221,12 +221,12 @@ do { \ } while (0) -#define STMT_FLOG(param, ...) qFatal("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_ELOG(param, ...) qError("stmt:%p " param, pStmt, __VA_ARGS__) -#define STMT_DLOG(param, ...) qDebug("stmt:%p " param, pStmt, __VA_ARGS__) +#define STMT_FLOG(param, ...) qFatal("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_ELOG(param, ...) qError("stmt:%p, " param, pStmt, __VA_ARGS__) +#define STMT_DLOG(param, ...) qDebug("stmt:%p, " param, pStmt, __VA_ARGS__) -#define STMT_ELOG_E(param) qError("stmt:%p " param, pStmt) -#define STMT_DLOG_E(param) qDebug("stmt:%p " param, pStmt) +#define STMT_ELOG_E(param) qError("stmt:%p, " param, pStmt) +#define STMT_DLOG_E(param) qDebug("stmt:%p, " param, pStmt) */ TAOS_STMT2 *stmtInit2(STscObj *taos, TAOS_STMT2_OPTION *pOptions); int stmtClose2(TAOS_STMT2 *stmt); diff --git a/source/client/jni/jniCommon.h b/source/client/jni/jniCommon.h index f636a11aef..690ccb1e61 100644 --- a/source/client/jni/jniCommon.h +++ b/source/client/jni/jniCommon.h @@ -22,42 +22,14 @@ #ifndef TDENGINE_JNICOMMON_H #define TDENGINE_JNICOMMON_H -#define jniFatal(...) \ - { \ - if (jniDebugFlag & DEBUG_FATAL) { \ - taosPrintLog("JNI FATAL ", DEBUG_FATAL, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniError(...) \ - { \ - if (jniDebugFlag & DEBUG_ERROR) { \ - taosPrintLog("JNI ERROR ", DEBUG_ERROR, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniWarn(...) \ - { \ - if (jniDebugFlag & DEBUG_WARN) { \ - taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniInfo(...) \ - { \ - if (jniDebugFlag & DEBUG_INFO) { \ - taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniDebug(...) \ - { \ - if (jniDebugFlag & DEBUG_DEBUG) { \ - taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); \ - } \ - } -#define jniTrace(...) \ - { \ - if (jniDebugFlag & DEBUG_TRACE) { \ - taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); \ - } \ - } +// clang-format off +#define jniFatal(...) do { if (jniDebugFlag & DEBUG_FATAL) { taosPrintLog("JNI FATAL ", DEBUG_FATAL, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniError(...) do { if (jniDebugFlag & DEBUG_ERROR) { taosPrintLog("JNI ERROR ", DEBUG_ERROR, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniWarn(...) do { if (jniDebugFlag & DEBUG_WARN) { taosPrintLog("JNI WARN ", DEBUG_WARN, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniInfo(...) do { if (jniDebugFlag & DEBUG_INFO) { taosPrintLog("JNI INFO ", DEBUG_INFO, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniDebug(...) do { if (jniDebugFlag & DEBUG_DEBUG) { taosPrintLog("JNI DEBUG ", DEBUG_DEBUG, jniDebugFlag, __VA_ARGS__); }} while(0) +#define jniTrace(...) do { if (jniDebugFlag & DEBUG_TRACE) { taosPrintLog("JNI TRACE ", DEBUG_TRACE, jniDebugFlag, __VA_ARGS__); }} while(0) +// clang-format on extern jclass g_arrayListClass; extern jmethodID g_arrayListConstructFp; diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 11bdb16eca..33d0909d81 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -93,8 +93,7 @@ static int32_t registerRequest(SRequestObj *pRequest, STscObj *pTscObj) { int32_t total = atomic_add_fetch_64((int64_t *)&pSummary->totalRequests, 1); int32_t currentInst = atomic_add_fetch_64((int64_t *)&pSummary->currentRequests, 1); - tscDebug("0x%" PRIx64 " new Request from connObj:0x%" PRIx64 - ", current:%d, app current:%d, total:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", new from connObj:0x%" PRIx64 ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, pRequest->self, pRequest->pTscObj->id, num, currentInst, total, pRequest->requestId); } @@ -134,7 +133,7 @@ static int32_t generateWriteSlowLog(STscObj *pTscObj, SRequestObj *pRequest, int cJSON *json = cJSON_CreateObject(); int32_t code = TSDB_CODE_SUCCESS; if (json == NULL) { - tscError("[monitor] cJSON_CreateObject failed"); + tscError("failed to create monitor json"); return TSDB_CODE_OUT_OF_MEMORY; } char clusterId[32] = {0}; @@ -255,26 +254,25 @@ static void deregisterRequest(SRequestObj *pRequest) { int32_t reqType = SLOW_LOG_TYPE_OTHERS; int64_t duration = taosGetTimestampUs() - pRequest->metric.start; - tscDebug("0x%" PRIx64 " free Request from connObj: 0x%" PRIx64 ",QID:0x%" PRIx64 - " elapsed:%.2f ms, " - "current:%d, app current:%d", + tscDebug("req:0x%" PRIx64 ", free from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 + " elapsed:%.2f ms, current:%d, app current:%d", pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst); if (TSDB_CODE_SUCCESS == nodesSimAcquireAllocator(pRequest->allocatorRefId)) { if ((pRequest->pQuery && pRequest->pQuery->pRoot && QUERY_NODE_VNODE_MODIFY_STMT == pRequest->pQuery->pRoot->type && (0 == ((SVnodeModifyOpStmt *)pRequest->pQuery->pRoot)->sqlNodeType)) || QUERY_NODE_VNODE_MODIFY_STMT == pRequest->stmtType) { - tscDebug("insert duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 - "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", - duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, - pRequest->metric.planCostUs, pRequest->metric.execCostUs); + tscDebug("req:0x%" PRIx64 ", insert duration:%" PRId64 "us, parseCost:%" PRId64 "us, ctgCost:%" PRId64 + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); (void)atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration); reqType = SLOW_LOG_TYPE_INSERT; } else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) { - tscDebug("query duration %" PRId64 "us: parseCost:%" PRId64 "us, ctgCost:%" PRId64 "us, analyseCost:%" PRId64 - "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", - duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, pRequest->metric.analyseCostUs, - pRequest->metric.planCostUs, pRequest->metric.execCostUs); + tscDebug("req:0x%" PRIx64 ", query duration:%" PRId64 "us, parseCost:%" PRId64 "us, ctgCost:%" PRId64 + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); (void)atomic_add_fetch_64((int64_t *)&pActivity->queryElapsedTime, duration); reqType = SLOW_LOG_TYPE_QUERY; @@ -299,7 +297,7 @@ static void deregisterRequest(SRequestObj *pRequest) { checkSlowLogExceptDb(pRequest, pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogExceptDb)) { (void)atomic_add_fetch_64((int64_t *)&pActivity->numOfSlowQueries, 1); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogScope & reqType) { - taosPrintSlowLog("PID:%d, Conn:%u,QID:0x%" PRIx64 ", Start:%" PRId64 " us, Duration:%" PRId64 "us, SQL:%s", + taosPrintSlowLog("PID:%d, Conn:%u, QID:0x%" PRIx64 ", Start:%" PRId64 "us, Duration:%" PRId64 "us, SQL:%s", taosGetPId(), pTscObj->connId, pRequest->requestId, pRequest->metric.start, duration, pRequest->sqlstr); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsEnableMonitor) { @@ -460,7 +458,7 @@ void destroyTscObj(void *pObj) { STscObj *pTscObj = pObj; int64_t tscId = pTscObj->id; - tscTrace("begin to destroy tscObj %" PRIx64 " p:%p", tscId, pTscObj); + tscTrace("connObj:%" PRIx64 ", begin destroy, p:%p", tscId, pTscObj); SClientHbKey connKey = {.tscRid = pTscObj->id, .connType = pTscObj->connType}; hbDeregisterConn(pTscObj, connKey); @@ -469,7 +467,7 @@ void destroyTscObj(void *pObj) { taosHashCleanup(pTscObj->pRequests); schedulerStopQueryHb(pTscObj->pAppInfo->pTransporter); - tscDebug("connObj 0x%" PRIx64 " p:%p destroyed, remain inst totalConn:%" PRId64, pTscObj->id, pTscObj, + tscDebug("connObj:0x%" PRIx64 ", p:%p destroyed, remain inst totalConn:%" PRId64, pTscObj->id, pTscObj, pTscObj->pAppInfo->numOfConns); // In any cases, we should not free app inst here. Or an race condition rises. @@ -478,7 +476,7 @@ void destroyTscObj(void *pObj) { (void)taosThreadMutexDestroy(&pTscObj->mutex); taosMemoryFree(pTscObj); - tscTrace("end to destroy tscObj %" PRIx64 " p:%p", tscId, pTscObj); + tscTrace("connObj:0x%" PRIx64 ", end destroy, p:%p", tscId, pTscObj); } int32_t createTscObj(const char *user, const char *auth, const char *db, int32_t connType, SAppInstInfo *pAppInfo, @@ -684,7 +682,7 @@ void doDestroyRequest(void *p) { SRequestObj *pRequest = (SRequestObj *)p; uint64_t reqId = pRequest->requestId; - tscDebug("begin to destroy request 0x%" PRIx64 " p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", begin destroy request p:%p", reqId, pRequest); int64_t nextReqRefId = pRequest->relation.nextRefId; @@ -726,7 +724,7 @@ void doDestroyRequest(void *p) { taosMemoryFreeClear(pRequest->effectiveUser); taosMemoryFreeClear(pRequest->sqlstr); taosMemoryFree(pRequest); - tscDebug("end to destroy request %" PRIx64 " p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", end destroy request p:%p", reqId, pRequest); destroyNextReq(nextReqRefId); } @@ -749,7 +747,7 @@ void taosStopQueryImpl(SRequestObj *pRequest) { } schedulerFreeJob(&pRequest->body.queryJob, TSDB_CODE_TSC_QUERY_KILLED); - tscDebug("request %" PRIx64 " killed", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", killed", pRequest->requestId); } void stopAllQueries(SRequestObj *pRequest) { diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index b3e288c816..b6a1c7fe7a 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -121,7 +121,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat pTscObj->authVer = pRsp->version; if (pTscObj->sysInfo != pRsp->sysInfo) { - tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", connObj:%" PRIi64, pRsp->user, pTscObj->sysInfo, pRsp->sysInfo, pTscObj->id); pTscObj->sysInfo = pRsp->sysInfo; } @@ -134,7 +134,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat if (passInfo->fp) { (*passInfo->fp)(passInfo->param, &pRsp->passVer, TAOS_NOTIFY_PASSVER); } - tscDebug("update passVer of user %s from %d to %d, tscRid:%" PRIi64, pRsp->user, oldVer, + tscDebug("update passVer of user %s from %d to %d, connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_32(&passInfo->ver), pTscObj->id); } } @@ -147,7 +147,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat if (whiteListInfo->fp) { (*whiteListInfo->fp)(whiteListInfo->param, &pRsp->whiteListVer, TAOS_NOTIFY_WHITELIST_VER); } - tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_64(&whiteListInfo->ver), pTscObj->id); } } else { @@ -156,7 +156,7 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat SWhiteListInfo *whiteListInfo = &pTscObj->whiteListInfo; int64_t oldVer = atomic_load_64(&whiteListInfo->ver); atomic_store_64(&whiteListInfo->ver, pRsp->whiteListVer); - tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", tscRid:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", connObj:%" PRIi64, pRsp->user, oldVer, atomic_load_64(&whiteListInfo->ver), pTscObj->id); } releaseTscObj(pReq->connKey.tscRid); @@ -548,7 +548,7 @@ static int32_t hbQueryHbRspHandle(SAppHbMgr *pAppHbMgr, SClientHbRsp *pRsp) { struct SCatalog *pCatalog = NULL; int32_t code = catalogGetHandle(pReq->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pReq->clusterId, tstrerror(code)); + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pReq->clusterId, tstrerror(code)); } else { hbProcessQueryRspKvs(kvNum, pRsp->info, pCatalog, pAppHbMgr); } @@ -608,7 +608,7 @@ static int32_t hbAsyncCallBack(void *param, SDataBuf *pMsg, int32_t code) { pInst->serverCfg.monitorParas = pRsp.monitorParas; pInst->serverCfg.enableAuditDelete = pRsp.enableAuditDelete; - tscDebug("[monitor] paras from hb, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d", pInst->clusterId, + tscDebug("monitor paras from hb, clusterId:0x%" PRIx64 ", threshold:%d scope:%d", pInst->clusterId, pRsp.monitorParas.tsSlowLogThreshold, pRsp.monitorParas.tsSlowLogScope); if (rspNum) { @@ -1081,33 +1081,33 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req code = hbGetQueryBasicInfo(connKey, req); if (code != TSDB_CODE_SUCCESS) { - tscWarn("hbGetQueryBasicInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetQueryBasicInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (hbParam->reqCnt == 0) { code = catalogGetHandle(hbParam->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } code = hbGetAppInfo(hbParam->clusterId, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("getAppInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("getAppInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (!taosHashGet(clientHbMgr.appHbHash, &hbParam->clusterId, sizeof(hbParam->clusterId))) { code = hbGetExpiredUserInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredUserInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredUserInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } if (clientHbMgr.appHbHash) { code = taosHashPut(clientHbMgr.appHbHash, &hbParam->clusterId, sizeof(uint64_t), NULL, 0); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbQueryHbReqHandle put clusterId failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, + tscWarn("hbQueryHbReqHandle put clusterId failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } @@ -1118,7 +1118,7 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req if (2 != atomic_load_8(&hbParam->pAppHbMgr->connHbFlag)) { code = hbGetUserAuthInfo(connKey, hbParam, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetUserAuthInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetUserAuthInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } atomic_store_8(&hbParam->pAppHbMgr->connHbFlag, 1); @@ -1126,32 +1126,32 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req code = hbGetExpiredDBInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredDBInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredDBInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } code = hbGetExpiredStbInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredStbInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredStbInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } #ifdef TD_ENTERPRISE code = hbGetExpiredViewInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredViewInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredViewInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } #endif code = hbGetExpiredTSMAInfo(connKey, pCatalog, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetExpiredTSMAInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetExpiredTSMAInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } } else { code = hbGetAppInfo(hbParam->clusterId, req); if (TSDB_CODE_SUCCESS != code) { - tscWarn("hbGetAppInfo failed, clusterId:%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); + tscWarn("hbGetAppInfo failed, clusterId:0x%" PRIx64 ", error:%s", hbParam->clusterId, tstrerror(code)); return code; } } diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index c2a199e9c1..5cb8e83b28 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -227,7 +227,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, (*pRequest)->sqlstr = taosMemoryMalloc(sqlLen + 1); if ((*pRequest)->sqlstr == NULL) { - tscError("0x%" PRIx64 " failed to prepare sql string buffer, %s", (*pRequest)->self, sql); + tscError("req:0x%" PRIx64 ", failed to prepare sql string buffer, %s", (*pRequest)->self, sql); destroyRequest(*pRequest); *pRequest = NULL; return terrno; @@ -245,7 +245,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, int32_t err = taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self, sizeof((*pRequest)->self)); if (err) { - tscError("%" PRId64 " failed to add to request container,QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", + tscError("req:0x%" PRId64 ", failed to add to request container, QID:0x%" PRIx64 ", connObj:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -256,7 +256,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, if (tsQueryUseNodeAllocator && !qIsInsertValuesSql((*pRequest)->sqlstr, (*pRequest)->sqlLen)) { if (TSDB_CODE_SUCCESS != nodesCreateAllocator((*pRequest)->requestId, tsQueryNodeChunkSize, &((*pRequest)->allocatorRefId))) { - tscError("%" PRId64 " failed to create node allocator,QID:0x%" PRIx64 ", conn:%" PRId64 ", %s", (*pRequest)->self, + tscError("req:0x%" PRId64 ", failed to create node allocator, QID:0x%" PRIx64 ", connObj:%" PRId64 ", %s", (*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql); destroyRequest(*pRequest); *pRequest = NULL; @@ -264,7 +264,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param, } } - tscDebugL("0x%" PRIx64 " SQL: %s,QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->sqlstr, (*pRequest)->requestId); + tscDebugL("req:0x%" PRIx64 ", QID:0x%" PRIx64 ", build request", (*pRequest)->self, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } @@ -381,10 +381,10 @@ void asyncExecLocalCmd(SRequestObj* pRequest, SQuery* pQuery) { if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); } @@ -1030,7 +1030,7 @@ int32_t handleQueryExecRsp(SRequestObj* pRequest) { break; } default: - tscError("0x%" PRIx64 ", invalid exec result for request type %d,QID:0x%" PRIx64, pRequest->self, pRequest->type, + tscError("req:0x%" PRIx64 ", invalid exec result for request type:%d, QID:0x%" PRIx64, pRequest->self, pRequest->type, pRequest->requestId); code = TSDB_CODE_APP_ERROR; } @@ -1075,7 +1075,7 @@ void returnToUser(SRequestObj* pRequest) { (void)releaseRequest(pRequest->relation.userRefId); return; } else { - tscError("0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", user ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.userRefId, pRequest->requestId); } } @@ -1146,7 +1146,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { SSDataBlock* pBlock = NULL; pRequest->code = createResultBlock(res, rowNum, &pBlock); if (TSDB_CODE_SUCCESS != pRequest->code) { - tscError("0x%" PRIx64 ", create result block failed,QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, + tscError("req:0x%" PRIx64 ", create result block failed, QID:0x%" PRIx64 " %s", pRequest->self, pRequest->requestId, tstrerror(pRequest->code)); returnToUser(pRequest); return; @@ -1157,7 +1157,7 @@ void postSubQueryFetchCb(void* param, TAOS_RES* res, int32_t rowNum) { continuePostSubQuery(pNextReq, pBlock); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } @@ -1176,7 +1176,7 @@ void handlePostSubQuery(SSqlCallbackWrapper* pWrapper) { continuePostSubQuery(pNextReq, NULL); (void)releaseRequest(pRequest->relation.nextRefId); } else { - tscError("0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there,QID:0x%" PRIx64, pRequest->self, + tscError("req:0x%" PRIx64 ", next req ref 0x%" PRIx64 " is not there, QID:0x%" PRIx64, pRequest->self, pRequest->relation.nextRefId, pRequest->requestId); } } @@ -1208,23 +1208,23 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) { } taosMemoryFree(pResult); - tscDebug("0x%" PRIx64 " enter scheduler exec cb, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", enter scheduler exec cb, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); if (code != TSDB_CODE_SUCCESS && NEED_CLIENT_HANDLE_ERROR(code) && pRequest->sqlstr != NULL) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%s, tryCount:%d,QID:0x%" PRIx64, pRequest->self, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->retry, pRequest->requestId); if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } restartAsyncQuery(pRequest, code); return; } - tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type)); + tscTrace("req:0x%" PRIx64 ", scheduler exec cb, request type:%s", pRequest->self, TMSG_INFO(pRequest->type)); if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { if (TSDB_CODE_SUCCESS != removeMeta(pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type))) { - tscError("0x%" PRIx64 " remove meta failed,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); } } @@ -1322,7 +1322,7 @@ void launchQueryImpl(SRequestObj* pRequest, SQuery* pQuery, bool keepQuery, void if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type) && NULL == pRequest->body.resInfo.execRes.res) { int ret = removeMeta(pRequest->pTscObj, pRequest->targetTableList, IS_VIEW_REQUEST(pRequest->type)); if (TSDB_CODE_SUCCESS != ret) { - tscError("0x%" PRIx64 " remove meta failed,code:%d,QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); + tscError("req:0x%" PRIx64 ", remove meta failed,code:%d, QID:0x%" PRIx64, pRequest->self, ret, pRequest->requestId); } } @@ -1370,7 +1370,7 @@ static int32_t asyncExecSchQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaDat code = qCreateQueryPlan(&cxt, &pDag, pMnodeList); } if (code) { - tscError("0x%" PRIx64 " failed to create query plan, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", failed to create query plan, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); } else { pRequest->body.subplanNum = pDag->numOfSubplans; @@ -1414,7 +1414,7 @@ static int32_t asyncExecSchQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaDat taosArrayDestroy(pNodeList); } else { qDestroyQueryPlan(pDag); - tscDebug("0x%" PRIx64 " plan not executed, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", plan not executed, code:%s 0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1472,7 +1472,7 @@ void launchAsyncQuery(SRequestObj* pRequest, SQuery* pQuery, SMetaData* pResultM doRequestCallback(pRequest, 0); break; default: - tscError("0x%" PRIx64 " invalid execMode %d", pRequest->self, pQuery->execMode); + tscError("req:0x%" PRIx64 ", invalid execMode %d", pRequest->self, pQuery->execMode); doRequestCallback(pRequest, -1); break; } @@ -1659,7 +1659,7 @@ int32_t taosConnectImpl(const char* user, const char* auth, const char* db, __ta *pTscObj = NULL; return terrno; } else { - tscDebug("0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p,QID:0x%" PRIx64, (*pTscObj)->id, + tscDebug("connObj:0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, (*pTscObj)->connId, (*pTscObj)->pAppInfo->pTransporter, pRequest->requestId); destroyRequest(pRequest); } @@ -1754,14 +1754,14 @@ void updateTargetEpSet(SMsgSendInfo* pSendInfo, STscObj* pTscObj, SRpcMsg* pMsg, SCatalog* pCatalog = NULL; int32_t code = catalogGetHandle(pTscObj->pAppInfo->clusterId, &pCatalog); if (code != TSDB_CODE_SUCCESS) { - tscError("fail to get catalog handle, clusterId:%" PRIx64 ", error %s", pTscObj->pAppInfo->clusterId, + tscError("fail to get catalog handle, clusterId:0x%" PRIx64 ", error:%s", pTscObj->pAppInfo->clusterId, tstrerror(code)); return; } code = catalogUpdateVgEpSet(pCatalog, pSendInfo->target.dbFName, pSendInfo->target.vgId, pEpSet); if (code != TSDB_CODE_SUCCESS) { - tscError("fail to update catalog vg epset, clusterId:%" PRIx64 ", error %s", pTscObj->pAppInfo->clusterId, + tscError("fail to update catalog vg epset, clusterId:0x%" PRIx64 ", error:%s", pTscObj->pAppInfo->clusterId, tstrerror(code)); return; } @@ -1789,14 +1789,14 @@ int32_t doProcessMsgFromServerImpl(SRpcMsg* pMsg, SEpSet* pEpSet) { char tbuf[40] = {0}; TRACE_TO_STR(trace, tbuf); - tscDebug("processMsgFromServer handle %p, message: %s, size:%d, code: %s,QID:%s", pMsg->info.handle, - TMSG_INFO(pMsg->msgType), pMsg->contLen, tstrerror(pMsg->code), tbuf); + tscDebug("QID:%s, process message from server, handle:%p, message:%s, size:%d, code:%s", tbuf, pMsg->info.handle, + TMSG_INFO(pMsg->msgType), pMsg->contLen, tstrerror(pMsg->code)); if (pSendInfo->requestObjRefId != 0) { SRequestObj* pRequest = (SRequestObj*)taosAcquireRef(clientReqRefPool, pSendInfo->requestObjRefId); if (pRequest) { if (pRequest->self != pSendInfo->requestObjRefId) { - tscError("doProcessMsgFromServer pRequest->self:%" PRId64 " != pSendInfo->requestObjRefId:%" PRId64, + tscError("doProcessMsgFromServer req:0x%" PRId64 " != pSendInfo->requestObjRefId:0x%" PRId64, pRequest->self, pSendInfo->requestObjRefId); if (TSDB_CODE_SUCCESS != taosReleaseRef(clientReqRefPool, pSendInfo->requestObjRefId)) { @@ -2000,7 +2000,7 @@ void* doFetchRows(SRequestObj* pRequest, bool setupOneRowPtr, bool convertUcs4) return NULL; } - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResInfo->numOfRows, pResInfo->totalRows, pResInfo->completed, pRequest->requestId); STscObj* pTscObj = pRequest->pTscObj; @@ -2952,7 +2952,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s return NULL; } - tscDebug("taos_query start with sql:%s", sql); + tscDebug("connObj:0x%" PRIx64 ", taos_query start with sql:%s", *(int64_t*)taos, sql); SSyncQueryParam* param = taosMemoryCalloc(1, sizeof(SSyncQueryParam)); if (NULL == param) { @@ -2983,7 +2983,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s } taosMemoryFree(param); - tscDebug("taos_query end with sql:%s", sql); + tscDebug("connObj:0x%" PRIx64 ", res:%p created, taos_query end", *(int64_t*)taos, pRequest); return pRequest; } @@ -3024,7 +3024,7 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { SReqResultInfo* pResultInfo = &pRequest->body.resInfo; - tscDebug("0x%" PRIx64 " enter scheduler fetch cb, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscDebug("req:0x%" PRIx64 ", enter scheduler fetch cb, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); pResultInfo->pData = pResult; @@ -3047,10 +3047,10 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { setQueryResultFromRsp(pResultInfo, (const SRetrieveTableRsp*)pResultInfo->pData, pResultInfo->convertUcs4); if (pRequest->code != TSDB_CODE_SUCCESS) { pResultInfo->numOfRows = 0; - tscError("0x%" PRIx64 " fetch results failed, code:%s,QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), + tscError("req:0x%" PRIx64 ", fetch results failed, code:%s, QID:0x%" PRIx64, pRequest->self, tstrerror(pRequest->code), pRequest->requestId); } else { - tscDebug("0x%" PRIx64 " fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", fetch results, numOfRows:%" PRId64 " total Rows:%" PRId64 ", complete:%d, QID:0x%" PRIx64, pRequest->self, pResultInfo->numOfRows, pResultInfo->totalRows, pResultInfo->completed, pRequest->requestId); diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 184f73c664..184fd4a112 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -478,10 +478,10 @@ void taos_close_internal(void *taos) { } STscObj *pTscObj = (STscObj *)taos; - tscDebug("0x%" PRIx64 " try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); + tscDebug("connObj:0x%" PRIx64 ", try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); if (TSDB_CODE_SUCCESS != taosRemoveRef(clientConnRefPool, pTscObj->id)) { - tscError("0x%" PRIx64 " failed to remove ref from conn pool", pTscObj->id); + tscError("connObj:0x%" PRIx64 ", failed to remove ref from conn pool", pTscObj->id); } } @@ -535,14 +535,15 @@ void taos_free_result(TAOS_RES *res) { return; } - tscDebug("taos free res %p", res); + tscTrace("res:%p, will be freed", res); if (TD_RES_QUERY(res)) { SRequestObj *pRequest = (SRequestObj *)res; - tscDebug("0x%" PRIx64 " taos_free_result start to free query", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", call taos_free_result to free query", pRequest->requestId); destroyRequest(pRequest); return; } + SMqRspObj *pRsp = (SMqRspObj *)res; if (TD_RES_TMQ(res)) { tDeleteMqDataRsp(&pRsp->dataRsp); @@ -1157,7 +1158,7 @@ static void doAsyncQueryFromAnalyse(SMetaData *pResultMeta, void *param, int32_t SRequestObj *pRequest = pWrapper->pRequest; SQuery *pQuery = pRequest->pQuery; - qDebug("0x%" PRIx64 " start to semantic analysis,QID:0x%" PRIx64, pRequest->self, pRequest->requestId); + qDebug("req:0x%" PRIx64 ", start to semantic analysis, QID:0x%" PRIx64, pRequest->self, pRequest->requestId); int64_t analyseStart = taosGetTimestampUs(); pRequest->metric.ctgCostUs = analyseStart - pRequest->metric.ctgStart; @@ -1276,14 +1277,14 @@ void handleQueryAnslyseRes(SSqlCallbackWrapper *pWrapper, SMetaData *pResultMeta pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); restartAsyncQuery(pRequest, code); return; } // return to app directly - tscError("0x%" PRIx64 " error occurs, code:%s, return to user app,QID:0x%" PRIx64, pRequest->self, tstrerror(code), + tscError("req:0x%" PRIx64 ", error occurs, code:%s, return to user app, QID:0x%" PRIx64, pRequest->self, tstrerror(code), pRequest->requestId); pRequest->code = code; returnToUser(pRequest); @@ -1333,7 +1334,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c SQuery *pQuery = pRequest->pQuery; pRequest->metric.ctgCostUs += taosGetTimestampUs() - pRequest->metric.ctgStart; - qDebug("0x%" PRIx64 " start to continue parse,QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, + qDebug("req:0x%" PRIx64 ", start to continue parse, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, tstrerror(code)); if (code == TSDB_CODE_SUCCESS) { @@ -1346,7 +1347,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1363,7 +1364,7 @@ void continueInsertFromCsv(SSqlCallbackWrapper *pWrapper, SRequestObj *pRequest) } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pWrapper->pRequest->self, code, + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pWrapper->pRequest->self, code, tstrerror(code), pWrapper->pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1469,7 +1470,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { code = pRequest->prevCode; terrno = code; pRequest->code = code; - tscDebug("call sync query cb with code: %s", tstrerror(code)); + tscDebug("req:0x%" PRIx64 ", call sync query cb with code:%s", pRequest->self, tstrerror(code)); doRequestCallback(pRequest, code); return; } @@ -1484,7 +1485,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { } if (TSDB_CODE_SUCCESS != code) { - tscError("0x%" PRIx64 " error happens, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscError("req:0x%" PRIx64 ", error happens, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); destorySqlCallbackWrapper(pWrapper); pRequest->pWrapper = NULL; @@ -1492,11 +1493,11 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { pRequest->pQuery = NULL; if (NEED_CLIENT_HANDLE_ERROR(code)) { - tscDebug("0x%" PRIx64 " client retry to handle the error, code:%d - %s, tryCount:%d,QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", client retry to handle the error, code:%d - %s, tryCount:%d, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->retry, pRequest->requestId); code = refreshMeta(pRequest->pTscObj, pRequest); if (code != 0) { - tscWarn("0x%" PRIx64 " refresh meta failed, code:%d - %s,QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), + tscWarn("req:0x%" PRIx64 ", refresh meta failed, code:%d - %s, QID:0x%" PRIx64, pRequest->self, code, tstrerror(code), pRequest->requestId); } pRequest->prevCode = code; @@ -1511,7 +1512,7 @@ void doAsyncQuery(SRequestObj *pRequest, bool updateMetaForce) { } void restartAsyncQuery(SRequestObj *pRequest, int32_t code) { - tscInfo("restart request: %s p: %p", pRequest->sqlstr, pRequest); + tscInfo("restart request:%s p:%p", pRequest->sqlstr, pRequest); SRequestObj *pUserReq = pRequest; (void)acquireRequest(pRequest->self); while (pUserReq) { diff --git a/source/client/src/clientMonitor.c b/source/client/src/clientMonitor.c index 5f7e11b6a3..dc6dbc996a 100644 --- a/source/client/src/clientMonitor.c +++ b/source/client/src/clientMonitor.c @@ -97,7 +97,7 @@ static void monitorFreeSlowLogDataEx(void* paras) { static SAppInstInfo* getAppInstByClusterId(int64_t clusterId) { void* p = taosHashGet(appInfo.pInstMapByClusterId, &clusterId, LONG_BYTES); if (p == NULL) { - tscError("failed to get app inst, clusterId:%" PRIx64, clusterId); + tscError("failed to get app inst, clusterId:0x%" PRIx64, clusterId); return NULL; } return *(SAppInstInfo**)p; @@ -114,7 +114,7 @@ static int32_t monitorReportAsyncCB(void* param, SDataBuf* pMsg, int32_t code) { if (param != NULL) { MonitorSlowLogData* p = (MonitorSlowLogData*)param; if (code != 0) { - tscError("failed to send slow log:%s, clusterId:%" PRIx64, p->data, p->clusterId); + tscError("failed to send slow log:%s, clusterId:0x%" PRIx64, p->data, p->clusterId); } MonitorSlowLogData tmp = {.clusterId = p->clusterId, .type = p->type, @@ -241,7 +241,7 @@ void monitorCreateClient(int64_t clusterId) { MonitorClient* pMonitor = NULL; taosWLockLatch(&monitorLock); if (taosHashGet(monitorCounterHash, &clusterId, LONG_BYTES) == NULL) { - tscInfo("[monitor] monitorCreateClient for %" PRIx64, clusterId); + tscInfo("clusterId:0x%" PRIx64 ", create monitor", clusterId); pMonitor = taosMemoryCalloc(1, sizeof(MonitorClient)); if (pMonitor == NULL) { tscError("failed to create monitor client"); @@ -293,7 +293,7 @@ void monitorCreateClient(int64_t clusterId) { tscError("failed to start timer"); goto fail; } - tscInfo("[monitor] monitorCreateClient for %" PRIx64 "finished %p.", clusterId, pMonitor); + tscInfo("clusterId:0x%" PRIx64 ", create monitor finished, montitor:%p", clusterId, pMonitor); } taosWUnLockLatch(&monitorLock); @@ -331,7 +331,7 @@ void monitorCreateClientCounter(int64_t clusterId, const char* name, const char* } goto end; } - tscInfo("[monitor] monitorCreateClientCounter %" PRIx64 "(%p):%s : %p.", pMonitor->clusterId, pMonitor, name, + tscInfo("clusterId:0x%" PRIx64 ", monitor:%p, create counter:%s:%p", pMonitor->clusterId, pMonitor, name, newCounter); end: @@ -347,21 +347,21 @@ void monitorCounterInc(int64_t clusterId, const char* counterName, const char** MonitorClient** ppMonitor = (MonitorClient**)taosHashGet(monitorCounterHash, &clusterId, LONG_BYTES); if (ppMonitor == NULL || *ppMonitor == NULL) { - tscError("monitorCounterInc not found pMonitor %" PRId64, clusterId); + tscError("clusterId:0x%" PRIx64 ", monitor not found", clusterId); goto end; } MonitorClient* pMonitor = *ppMonitor; taos_counter_t** ppCounter = (taos_counter_t**)taosHashGet(pMonitor->counters, counterName, strlen(counterName)); if (ppCounter == NULL || *ppCounter == NULL) { - tscError("monitorCounterInc not found pCounter %" PRIx64 ":%s.", clusterId, counterName); + tscError("clusterId:0x%" PRIx64 ", monitor:%p counter:%s not found", clusterId, pMonitor, counterName); goto end; } if (taos_counter_inc(*ppCounter, label_values) != 0) { - tscError("monitorCounterInc failed to inc %" PRIx64 ":%s.", clusterId, counterName); + tscError("clusterId:0x%" PRIx64 ", monitor:%p counter:%s inc failed", clusterId, pMonitor, counterName); goto end; } - tscDebug("[monitor] monitorCounterInc %" PRIx64 "(%p):%s", pMonitor->clusterId, pMonitor, counterName); + tscDebug("clusterId:0x%" PRIx64 ", monitor:%p, counter:%s inc", pMonitor->clusterId, pMonitor, counterName); end: taosWUnLockLatch(&monitorLock); @@ -379,11 +379,11 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP char path[PATH_MAX] = {0}; char clusterId[32] = {0}; if (snprintf(clusterId, sizeof(clusterId), "%" PRIx64, slowLogData->clusterId) < 0) { - tscError("failed to generate clusterId:%" PRIx64, slowLogData->clusterId); + tscError("failed to generate clusterId:0x%" PRIx64, slowLogData->clusterId); return; } taosGetTmpfilePath(tmpPath, clusterId, path); - tscInfo("[monitor] create slow log file:%s", path); + tscInfo("monitor create slow log file:%s", path); pFile = taosOpenFile(path, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_APPEND | TD_FILE_READ | TD_FILE_TRUNC); if (pFile == NULL) { tscError("failed to open file:%s since %d", path, terrno); @@ -404,7 +404,7 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP pClient->offset = 0; pClient->pFile = pFile; if (taosHashPut(monitorSlowLogHash, &slowLogData->clusterId, LONG_BYTES, &pClient, POINTER_BYTES) != 0) { - tscError("failed to put clusterId:%" PRId64 " to hash table", slowLogData->clusterId); + tscError("failed to put clusterId:0x%" PRIx64 " to hash table", slowLogData->clusterId); int32_t ret = taosCloseFile(&pFile); if (ret != 0) { tscError("failed to close file:%p ret:%d", pFile, ret); @@ -428,11 +428,11 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP if (taosWriteFile(pFile, slowLogData->data, strlen(slowLogData->data) + 1) < 0) { tscError("failed to write len to file:%p since %s", pFile, terrstr()); } - tscDebug("[monitor] write slow log to file:%p, clusterId:%" PRIx64, pFile, slowLogData->clusterId); + tscDebug("monitor write slow log to file:%p, clusterId:0x%" PRIx64, pFile, slowLogData->clusterId); } static char* readFile(TdFilePtr pFile, int64_t* offset, int64_t size) { - tscDebug("[monitor] readFile slow begin pFile:%p, offset:%" PRId64 ", size:%" PRId64, pFile, *offset, size); + tscDebug("monitor readFile slow begin pFile:%p, offset:%" PRId64 ", size:%" PRId64, pFile, *offset, size); if (taosLSeekFile(pFile, *offset, SEEK_SET) < 0) { tscError("failed to seek file:%p code: %d", pFile, terrno); return NULL; @@ -481,7 +481,7 @@ static char* readFile(TdFilePtr pFile, int64_t* offset, int64_t size) { *offset += (len + 1); } - tscDebug("[monitor] readFile slow log end, data:%s, offset:%" PRId64, pCont, *offset); + tscDebug("monitor readFile slow log end, data:%s, offset:%" PRId64, pCont, *offset); return pCont; } @@ -525,7 +525,7 @@ static int32_t monitorReadSend(int64_t clusterId, TdFilePtr pFile, int64_t* offs SLOW_LOG_QUEUE_TYPE type, char* fileName) { SAppInstInfo* pInst = getAppInstByClusterId(clusterId); if (pInst == NULL) { - tscError("failed to get app instance by clusterId:%" PRId64, clusterId); + tscError("failed to get app instance by clusterId:0x%" PRIx64, clusterId); if (taosCloseFile(&pFile) != 0) { tscError("failed to close file:%p", pFile); } @@ -546,13 +546,13 @@ static void monitorSendSlowLogAtBeginning(int64_t clusterId, char** fileName, Td int64_t size = getFileSize(*fileName); if (size <= offset) { processFileInTheEnd(pFile, *fileName); - tscDebug("[monitor] monitorSendSlowLogAtBeginning delete file:%s", *fileName); + tscDebug("monitor delete file:%s", *fileName); } else { int32_t code = monitorReadSend(clusterId, pFile, &offset, size, SLOW_LOG_READ_BEGINNIG, *fileName); if (code == 0) { - tscDebug("[monitor] monitorSendSlowLogAtBeginning send slow log succ, clusterId:%" PRId64, clusterId); + tscDebug("monitor send slow log succ, clusterId:0x%" PRIx64, clusterId); } else { - tscError("[monitor] monitorSendSlowLogAtBeginning send slow log failed, clusterId:%" PRId64 ",ret:%d", clusterId, + tscError("monitor send slow log failed, clusterId:0x%" PRIx64 ", ret:%d", clusterId, code); } *fileName = NULL; @@ -562,12 +562,12 @@ static void monitorSendSlowLogAtBeginning(int64_t clusterId, char** fileName, Td static void monitorSendSlowLogAtRunning(int64_t clusterId) { void* tmp = taosHashGet(monitorSlowLogHash, &clusterId, LONG_BYTES); if (tmp == NULL) { - tscError("failed to get slow log client by clusterId:%" PRId64, clusterId); + tscError("failed to get slow log client by clusterId:0x%" PRIx64, clusterId); return; } SlowLogClient* pClient = (*(SlowLogClient**)tmp); if (pClient == NULL) { - tscError("failed to get slow log client by clusterId:%" PRId64, clusterId); + tscError("failed to get slow log client by clusterId:0x%" PRIx64, clusterId); return; } int64_t size = getFileSize(pClient->path); @@ -575,11 +575,11 @@ static void monitorSendSlowLogAtRunning(int64_t clusterId) { if (taosFtruncateFile(pClient->pFile, 0) < 0) { tscError("failed to truncate file:%p code: %d", pClient->pFile, terrno); } - tscDebug("[monitor] monitorSendSlowLogAtRunning truncate file to 0 file:%p", pClient->pFile); + tscDebug("monitor truncate file to 0 file:%p", pClient->pFile); pClient->offset = 0; } else { int32_t code = monitorReadSend(clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_RUNNING, NULL); - tscDebug("[monitor] monitorSendSlowLogAtRunning send slow log clusterId:%" PRId64 ",ret:%d", clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ", ret:%d", clusterId, code); } } @@ -596,13 +596,13 @@ static bool monitorSendSlowLogAtQuit(int64_t clusterId) { if (size <= pClient->offset) { processFileInTheEnd(pClient->pFile, pClient->path); pClient->pFile = NULL; - tscInfo("[monitor] monitorSendSlowLogAtQuit remove file:%s", pClient->path); + tscInfo("monitor remove file:%s", pClient->path); if ((--quitCnt) == 0) { return true; } } else { int32_t code = monitorReadSend(clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_QUIT, NULL); - tscDebug("[monitor] monitorSendSlowLogAtQuit send slow log clusterId:%" PRId64 ",ret:%d", clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ", ret:%d", clusterId, code); } return false; } @@ -620,7 +620,7 @@ static void monitorSendAllSlowLogAtQuit() { } else if (pClient->offset == 0) { int64_t* clusterId = (int64_t*)taosHashGetKey(pIter, NULL); int32_t code = monitorReadSend(*clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_QUIT, NULL); - tscDebug("[monitor] monitorSendAllSlowLogAtQuit send slow log clusterId:%" PRId64 ",ret:%d", *clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ", ret:%d", *clusterId, code); if (code == 0) { quitCnt++; } @@ -669,7 +669,7 @@ static void monitorSendAllSlowLog() { int64_t size = getFileSize(pClient->path); if (size <= 0) { if (size < 0) { - tscError("[monitor] monitorSendAllSlowLog failed to get file size:%s, err:%d", pClient->path, errno); + tscError("monitor failed to get file size:%s, err:%d", pClient->path, errno); if (errno == ENOENT) { processFileRemoved(pClient); } @@ -677,7 +677,7 @@ static void monitorSendAllSlowLog() { continue; } int32_t code = monitorReadSend(*clusterId, pClient->pFile, &pClient->offset, size, SLOW_LOG_READ_RUNNING, NULL); - tscDebug("[monitor] monitorSendAllSlowLog send slow log clusterId:%" PRId64 ",ret:%d", *clusterId, code); + tscDebug("monitor send slow log clusterId:0x%" PRIx64 ", ret:%d", *clusterId, code); } } } @@ -686,7 +686,7 @@ static void monitorSendAllSlowLogFromTempDir(int64_t clusterId) { SAppInstInfo* pInst = getAppInstByClusterId((int64_t)clusterId); if (pInst == NULL || !pInst->serverCfg.monitorParas.tsEnableMonitor) { - tscInfo("[monitor] monitor is disabled, skip send slow log"); + tscInfo("monitor is disabled, skip send slow log"); return; } char namePrefix[PATH_MAX] = {0}; @@ -837,7 +837,7 @@ static void tscMonitorStop() { int32_t monitorInit() { int32_t code = 0; - tscInfo("[monitor] tscMonitor init"); + tscInfo("monitor init"); monitorCounterHash = (SHashObj*)taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_ENTRY_LOCK); if (monitorCounterHash == NULL) { @@ -887,7 +887,7 @@ int32_t monitorInit() { } void monitorClose() { - tscInfo("[monitor] tscMonitor close"); + tscInfo("monitor close"); taosWLockLatch(&monitorLock); atomic_store_32(&monitorFlag, 1); tscMonitorStop(); @@ -907,17 +907,17 @@ int32_t monitorPutData2MonitorQueue(MonitorSlowLogData data) { MonitorSlowLogData* slowLogData = NULL; if (atomic_load_32(&monitorFlag) == 1) { - tscError("[monitor] slow log thread is exiting"); + tscError("monitor slow log thread is exiting"); return -1; } code = taosAllocateQitem(sizeof(MonitorSlowLogData), DEF_QITEM, 0, (void**)&slowLogData); if (code) { - tscError("[monitor] failed to allocate slow log data"); + tscError("monitor failed to allocate slow log data"); return code; } *slowLogData = data; - tscDebug("[monitor] write slow log to queue, clusterId:%" PRIx64 " type:%s, data:%s", slowLogData->clusterId, + tscDebug("monitor write slow log to queue, clusterId:0x%" PRIx64 " type:%s, data:%s", slowLogData->clusterId, queueTypeStr[slowLogData->type], slowLogData->data); if (taosWriteQitem(monitorQueue, slowLogData) == 0) { if (tsem2_post(&monitorSem) != 0) { diff --git a/source/client/src/clientMsgHandler.c b/source/client/src/clientMsgHandler.c index 58ba39864d..92c1d13679 100644 --- a/source/client/src/clientMsgHandler.c +++ b/source/client/src/clientMsgHandler.c @@ -123,7 +123,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { } for (int32_t i = 0; i < connectRsp.epSet.numOfEps; ++i) { - tscDebug("0x%" PRIx64 " epSet.fqdn[%d]:%s port:%d, connObj:0x%" PRIx64, pRequest->requestId, i, + tscDebug("QID:0x%" PRIx64 ", epSet.fqdn[%d]:%s port:%d, connObj:0x%" PRIx64, pRequest->requestId, i, connectRsp.epSet.eps[i].fqdn, connectRsp.epSet.eps[i].port, pTscObj->id); } @@ -137,7 +137,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { pTscObj->pAppInfo->clusterId = connectRsp.clusterId; pTscObj->pAppInfo->serverCfg.monitorParas = connectRsp.monitorParas; pTscObj->pAppInfo->serverCfg.enableAuditDelete = connectRsp.enableAuditDelete; - tscDebug("[monitor] paras from connect rsp, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d", + tscDebug("monitor paras from connect rsp, clusterId:0x%" PRIx64 ", threshold:%d scope:%d", connectRsp.clusterId, connectRsp.monitorParas.tsSlowLogThreshold, connectRsp.monitorParas.tsSlowLogScope); lastClusterId = connectRsp.clusterId; @@ -164,7 +164,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { SAppHbMgr* pAppHbMgr = taosArrayGetP(clientHbMgr.appHbMgrs, pTscObj->appHbMgrIdx); if (pAppHbMgr) { if (hbRegisterConn(pAppHbMgr, pTscObj->id, connectRsp.clusterId, connectRsp.connType) != 0) { - tscError("0x%" PRIx64 " failed to register conn to hbMgr", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", failed to register conn to hbMgr", pRequest->requestId); } } else { (void)taosThreadMutexUnlock(&clientHbMgr.lock); @@ -173,7 +173,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { } (void)taosThreadMutexUnlock(&clientHbMgr.lock); - tscDebug("0x%" PRIx64 " clusterId:%" PRId64 ", totalConn:%" PRId64, pRequest->requestId, connectRsp.clusterId, + tscDebug("QID:0x%" PRIx64 ", clusterId:0x%" PRIx64 ", totalConn:%" PRId64, pRequest->requestId, connectRsp.clusterId, pTscObj->pAppInfo->numOfConns); End: @@ -229,11 +229,11 @@ int32_t processCreateDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char dbFName[TSDB_DB_FNAME_LEN]; (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_INFORMATION_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", failed to refresh db vg info", pRequest->requestId); } (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_PERFORMANCE_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", failed to refresh db vg info", pRequest->requestId); } } } @@ -254,7 +254,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { TSDB_CODE_MND_DB_IN_DROPPING == code) { SUseDbRsp usedbRsp = {0}; if (tDeserializeSUseDbRsp(pMsg->pData, pMsg->len, &usedbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", deserialize SUseDbRsp failed", pRequest->requestId); } struct SCatalog* pCatalog = NULL; @@ -262,11 +262,11 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { int64_t clusterId = pRequest->pTscObj->pAppInfo->clusterId; int32_t code1 = catalogGetHandle(clusterId, &pCatalog); if (code1 != TSDB_CODE_SUCCESS) { - tscWarn("0x%" PRIx64 "catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pRequest->requestId, clusterId, + tscWarn("QID:0x%" PRIx64 "catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->requestId, clusterId, tstrerror(code1)); } else { if (catalogRemoveDB(pCatalog, usedbRsp.db, usedbRsp.uid) != 0) { - tscError("0x%" PRIx64 "catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, + tscError("QID:0x%" PRIx64 "catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, usedbRsp.uid); } } @@ -293,7 +293,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { SUseDbRsp usedbRsp = {0}; if (tDeserializeSUseDbRsp(pMsg->pData, pMsg->len, &usedbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SUseDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", deserialize SUseDbRsp failed", pRequest->requestId); } if (strlen(usedbRsp.db) == 0) { @@ -321,7 +321,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { SName name = {0}; if (tNameFromString(&name, usedbRsp.db, T_NAME_ACCT | T_NAME_DB) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to parse db name:%s", pRequest->requestId, usedbRsp.db); + tscError("QID:0x%" PRIx64 ", failed to parse db name:%s", pRequest->requestId, usedbRsp.db); } SUseDbOutput output = {0}; @@ -330,17 +330,17 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { terrno = code; if (output.dbVgroup) taosHashCleanup(output.dbVgroup->vgHash); - tscError("0x%" PRIx64 " failed to build use db output since %s", pRequest->requestId, terrstr()); + tscError("QID:0x%" PRIx64 ", failed to build use db output since %s", pRequest->requestId, terrstr()); } else if (output.dbVgroup && output.dbVgroup->vgHash) { struct SCatalog* pCatalog = NULL; int32_t code1 = catalogGetHandle(pRequest->pTscObj->pAppInfo->clusterId, &pCatalog); if (code1 != TSDB_CODE_SUCCESS) { - tscWarn("catalogGetHandle failed, clusterId:%" PRIx64 ", error:%s", pRequest->pTscObj->pAppInfo->clusterId, + tscWarn("catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->pTscObj->pAppInfo->clusterId, tstrerror(code1)); } else { if (catalogUpdateDBVgInfo(pCatalog, output.db, output.dbId, output.dbVgroup) != 0) { - tscError("0x%" PRIx64 " failed to update db vg info, db:%s, dbId:%" PRId64, pRequest->requestId, output.db, + tscError("QID:0x%" PRIx64 ", failed to update db vg info, db:%s, dbId:%" PRId64, pRequest->requestId, output.db, output.dbId); } output.dbVgroup = NULL; @@ -352,7 +352,7 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char db[TSDB_DB_NAME_LEN] = {0}; if (tNameGetDbName(&name, db) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to get db name since %s", pRequest->requestId, tstrerror(code)); + tscError("QID:0x%" PRIx64 ", failed to get db name since %s", pRequest->requestId, tstrerror(code)); } setConnectionDB(pRequest->pTscObj, db); @@ -434,13 +434,13 @@ int32_t processDropDbRsp(void* param, SDataBuf* pMsg, int32_t code) { } else { SDropDbRsp dropdbRsp = {0}; if (tDeserializeSDropDbRsp(pMsg->pData, pMsg->len, &dropdbRsp) != 0) { - tscError("0x%" PRIx64 " deserialize SDropDbRsp failed", pRequest->requestId); + tscError("QID:0x%" PRIx64 ", deserialize SDropDbRsp failed", pRequest->requestId); } struct SCatalog* pCatalog = NULL; code = catalogGetHandle(pRequest->pTscObj->pAppInfo->clusterId, &pCatalog); if (TSDB_CODE_SUCCESS == code) { if (catalogRemoveDB(pCatalog, dropdbRsp.db, dropdbRsp.uid) != 0) { - tscError("0x%" PRIx64 " failed to remove db:%s", pRequest->requestId, dropdbRsp.db); + tscError("QID:0x%" PRIx64 ", failed to remove db:%s", pRequest->requestId, dropdbRsp.db); } STscObj* pTscObj = pRequest->pTscObj; @@ -451,11 +451,11 @@ int32_t processDropDbRsp(void* param, SDataBuf* pMsg, int32_t code) { char dbFName[TSDB_DB_FNAME_LEN] = {0}; (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_INFORMATION_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != TSDB_CODE_SUCCESS) { - tscError("0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); + tscError("QID:0x%" PRIx64 ", failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); } (void)snprintf(dbFName, sizeof(dbFName) - 1, "%d.%s", pTscObj->acctId, TSDB_PERFORMANCE_SCHEMA_DB); if (catalogRefreshDBVgInfo(pCatalog, &conn, dbFName) != 0) { - tscError("0x%" PRIx64 " failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); + tscError("QID:0x%" PRIx64 ", failed to refresh db vg info, db:%s", pRequest->requestId, dbFName); } } } diff --git a/source/client/src/clientRawBlockWrite.c b/source/client/src/clientRawBlockWrite.c index cf40e109e7..b43507c2a6 100644 --- a/source/client/src/clientRawBlockWrite.c +++ b/source/client/src/clientRawBlockWrite.c @@ -47,7 +47,7 @@ } \ } while (0) -#define LOG_ID_TAG "connId:0x%" PRIx64 ",QID:0x%" PRIx64 +#define LOG_ID_TAG "connId:0x%" PRIx64 ", QID:0x%" PRIx64 #define LOG_ID_VALUE *(int64_t*)taos, pRequest->requestId #define TMQ_META_VERSION "1.0" diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 4f912ec077..839102883a 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -573,7 +573,7 @@ int32_t stmtRebuildDataBlock(STscStmt* pStmt, STableDataCxt* pDataBlock, STableD STMT_ERR_RET(stmtTryAddTableVgroupInfo(pStmt, &vgId)); STMT_ERR_RET(qRebuildStmtDataBlock(newBlock, pDataBlock, uid, suid, vgId, pStmt->sql.autoCreateTbl)); - STMT_DLOG("tableDataCxt rebuilt, uid:%" PRId64 ", vgId:%d", uid, vgId); + STMT_DLOG("uid:%" PRId64 ", rebuild table data context, vgId:%d", uid, vgId); return TSDB_CODE_SUCCESS; } diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index 67066e1fdd..ae56403925 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -499,7 +499,7 @@ static int32_t stmtRebuildDataBlock(STscStmt2* pStmt, STableDataCxt* pDataBlock, STMT_ERR_RET(stmtTryAddTableVgroupInfo(pStmt, &vgId)); STMT_ERR_RET(qRebuildStmtDataBlock(newBlock, pDataBlock, uid, suid, vgId, pStmt->sql.autoCreateTbl)); - STMT_DLOG("tableDataCxt rebuilt, uid:%" PRId64 ", vgId:%d", uid, vgId); + STMT_DLOG("uid:%" PRId64 ", rebuild table data context, vgId:%d", uid, vgId); return TSDB_CODE_SUCCESS; } diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index a11f351a1e..5052681279 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1474,7 +1474,7 @@ static int32_t askEp(tmq_t* pTmq, void* param, bool sync, bool updateEpSet) { pParam = NULL; SEpSet epSet = getEpSet_s(&pTmq->pTscObj->pAppInfo->mgmtEp); - tqDebugC("consumer:0x%" PRIx64 " ask ep from mnode,QID:0x%" PRIx64, pTmq->consumerId, sendInfo->requestId); + tqDebugC("consumer:0x%" PRIx64 " ask ep from mnode, QID:0x%" PRIx64, pTmq->consumerId, sendInfo->requestId); code = asyncSendMsgToServer(pTmq->pTscObj->pAppInfo->pTransporter, &epSet, NULL, sendInfo); END: @@ -2102,7 +2102,7 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { goto END; } rspType = ((SMqRspHead*)pMsg->pData)->mqMsgType; - tqDebugC("consumer:0x%" PRIx64 " recv poll rsp, vgId:%d, type %d(%s),QID:0x%" PRIx64, tmq->consumerId, vgId, rspType, tmqMsgTypeStr[rspType], requestId); + tqDebugC("consumer:0x%" PRIx64 " recv poll rsp, vgId:%d, type %d(%s), QID:0x%" PRIx64, tmq->consumerId, vgId, rspType, tmqMsgTypeStr[rspType], requestId); pRspWrapper->tmqRspType = rspType; pRspWrapper->pollRsp.reqId = requestId; @@ -2123,7 +2123,7 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { taosFreeQitem(pRspWrapper); tqErrorC("consumer:0x%" PRIx64 " put poll res into mqueue failed, code:%d", tmq->consumerId, code); } else { - tqDebugC("consumer:0x%" PRIx64 " put poll res into mqueue, type:%d(%s), vgId:%d, total in queue:%d,QID:0x%" PRIx64, + tqDebugC("consumer:0x%" PRIx64 " put poll res into mqueue, type:%d(%s), vgId:%d, total in queue:%d, QID:0x%" PRIx64, tmq ? tmq->consumerId : 0, rspType, tmqMsgTypeStr[rspType], vgId, taosQueueItemSize(tmq->mqueue), requestId); } } @@ -2297,7 +2297,7 @@ static int32_t doTmqPollImpl(tmq_t* pTmq, SMqClientTopic* pTopic, SMqClientVg* p char offsetFormatBuf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(offsetFormatBuf, tListLen(offsetFormatBuf), &pVg->offsetInfo.endOffset); code = asyncSendMsgToServer(pTmq->pTscObj->pAppInfo->pTransporter, &pVg->epSet, NULL, sendInfo); - tqDebugC("consumer:0x%" PRIx64 " send poll to %s vgId:%d, code:%d, epoch %d, req:%s,QID:0x%" PRIx64, pTmq->consumerId, + tqDebugC("consumer:0x%" PRIx64 " send poll to %s vgId:%d, code:%d, epoch %d, req:%s, QID:0x%" PRIx64, pTmq->consumerId, pTopic->topicName, pVg->vgId, code, pTmq->epoch, offsetFormatBuf, req.reqId); TSDB_CHECK_CODE(code, lino, END); @@ -2523,7 +2523,7 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ tFormatOffset(buf, TSDB_OFFSET_LEN, &pollRspWrapper->rspOffset); if (pollRspWrapper->dataRsp.blockNum == 0) { tqDebugC("consumer:0x%" PRIx64 " empty block received, vgId:%d, offset:%s, vg total:%" PRId64 - ", total:%" PRId64 ",QID:0x%" PRIx64, + ", total:%" PRId64 ", QID:0x%" PRIx64, tmq->consumerId, pVg->vgId, buf, pVg->numOfRows, tmq->totalRows, pollRspWrapper->reqId); pVg->emptyBlockReceiveTs = taosGetTimestampMs(); } else { @@ -2551,7 +2551,7 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ } } tqDebugC("consumer:0x%" PRIx64 " process poll rsp, vgId:%d, offset:%s, blocks:%d, rows:%" PRId64 - ", vg total:%" PRId64 ", total:%" PRId64 ",QID:0x%" PRIx64, + ", vg total:%" PRId64 ", total:%" PRId64 ", QID:0x%" PRIx64, tmq->consumerId, pVg->vgId, buf, pRspObj->dataRsp.blockNum, numOfRows, pVg->numOfRows, tmq->totalRows, pollRspWrapper->reqId); } @@ -3551,7 +3551,7 @@ int32_t tmq_get_topic_assignment(tmq_t* tmq, const char* pTopicName, tmq_topic_a char offsetFormatBuf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(offsetFormatBuf, tListLen(offsetFormatBuf), &pClientVg->offsetInfo.beginOffset); - tqInfoC("consumer:0x%" PRIx64 " %s retrieve wal info vgId:%d, epoch %d, req:%s,QID:0x%" PRIx64, tmq->consumerId, + tqInfoC("consumer:0x%" PRIx64 " %s retrieve wal info vgId:%d, epoch %d, req:%s, QID:0x%" PRIx64, tmq->consumerId, pTopic->topicName, pClientVg->vgId, tmq->epoch, offsetFormatBuf, req.reqId); code = asyncSendMsgToServer(tmq->pTscObj->pAppInfo->pTransporter, &pClientVg->epSet, NULL, sendInfo); if (code != 0) { diff --git a/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c b/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c index 0a3543ac07..54f086569e 100644 --- a/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c +++ b/source/dnode/mgmt/mgmt_dnode/src/dmHandle.c @@ -37,7 +37,7 @@ static void dmUpdateDnodeCfg(SDnodeMgmt *pMgmt, SDnodeCfg *pCfg) { auditSetDnodeId(pCfg->dnodeId); code = dmWriteEps(pMgmt->pData); if (code != 0) { - dInfo("failed to set local info, dnodeId:%d clusterId:%" PRId64 " reason:%s", pCfg->dnodeId, pCfg->clusterId, + dInfo("failed to set local info, dnodeId:%d clusterId:0x%" PRIx64 " reason:%s", pCfg->dnodeId, pCfg->clusterId, tstrerror(code)); } (void)taosThreadRwlockUnlock(&pMgmt->pData->lock); diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmInt.c b/source/dnode/mgmt/mgmt_mnode/src/mmInt.c index b1b7a90db8..5a7825c808 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmInt.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmInt.c @@ -34,7 +34,7 @@ static int32_t mmRequire(const SMgmtInputOpt *pInput, bool *required) { if (!option.deploy) { *required = mmDeployRequired(pInput); if (*required) { - dInfo("deploy mnode required. dnodeId:%d<=0, clusterId:%" PRId64 "<=0, localEp:%s==firstEp", + dInfo("deploy mnode required. dnodeId:%d<=0, clusterId:0x%" PRIx64 "<=0, localEp:%s==firstEp", pInput->pData->dnodeId, pInput->pData->clusterId, tsLocalEp); } } else { diff --git a/source/dnode/mgmt/node_util/inc/dmUtil.h b/source/dnode/mgmt/node_util/inc/dmUtil.h index 1c96b0c239..fc880ec055 100644 --- a/source/dnode/mgmt/node_util/inc/dmUtil.h +++ b/source/dnode/mgmt/node_util/inc/dmUtil.h @@ -83,12 +83,12 @@ extern "C" { }\ } -#define dGFatal(param, ...) {if (dDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dFatal(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGError(param, ...) {if (dDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dError(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGWarn(param, ...) {if (dDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dWarn(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGInfo(param, ...) {if (dDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dInfo(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGDebug(param, ...) {if (dDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dDebug(param ",QID:%s", __VA_ARGS__, buf);}} -#define dGTrace(param, ...) {if (dDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dTrace(param ",QID:%s", __VA_ARGS__, buf);}} +#define dGFatal(param, ...) {if (dDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dFatal(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGError(param, ...) {if (dDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dError(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGWarn(param, ...) {if (dDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dWarn(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGInfo(param, ...) {if (dDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dInfo(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGDebug(param, ...) {if (dDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dDebug(param ", QID:%s", __VA_ARGS__, buf);}} +#define dGTrace(param, ...) {if (dDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); dTrace(param ", QID:%s", __VA_ARGS__, buf);}} // clang-format on diff --git a/source/dnode/mnode/impl/inc/mndInt.h b/source/dnode/mnode/impl/inc/mndInt.h index ad95f719b2..8c85536276 100644 --- a/source/dnode/mnode/impl/inc/mndInt.h +++ b/source/dnode/mnode/impl/inc/mndInt.h @@ -42,12 +42,12 @@ extern "C" { #define mDebug(...) { if (mDebugFlag & DEBUG_DEBUG) { taosPrintLog("MND DEBUG ", DEBUG_DEBUG, mDebugFlag, __VA_ARGS__); }} #define mTrace(...) { if (mDebugFlag & DEBUG_TRACE) { taosPrintLog("MND TRACE ", DEBUG_TRACE, mDebugFlag, __VA_ARGS__); }} -#define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGWarn(param, ...) { if (mDebugFlag & DEBUG_WARN){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mWarn (param ",QID:%s", __VA_ARGS__, buf);}} -#define mGInfo(param, ...) { if (mDebugFlag & DEBUG_INFO){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mInfo (param ",QID:%s", __VA_ARGS__, buf);}} -#define mGDebug(param, ...) { if (mDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mDebug(param ",QID:%s", __VA_ARGS__, buf);}} -#define mGTrace(param, ...) { if (mDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mTrace(param ",QID:%s", __VA_ARGS__, buf);}} +#define mGFatal(param, ...) { if (mDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mFatal(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGError(param, ...) { if (mDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mError(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGWarn(param, ...) { if (mDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); mWarn (param ", QID:%s", __VA_ARGS__, buf);}} +#define mGInfo(param, ...) { if (mDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); mInfo (param ", QID:%s", __VA_ARGS__, buf);}} +#define mGDebug(param, ...) { if (mDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mDebug(param ", QID:%s", __VA_ARGS__, buf);}} +#define mGTrace(param, ...) { if (mDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); mTrace(param ", QID:%s", __VA_ARGS__, buf);}} // clang-format on #define SYSTABLE_SCH_TABLE_NAME_LEN ((TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE) diff --git a/source/dnode/mnode/impl/src/mndStream.c b/source/dnode/mnode/impl/src/mndStream.c index a0c68f8b00..ef5f59b456 100644 --- a/source/dnode/mnode/impl/src/mndStream.c +++ b/source/dnode/mnode/impl/src/mndStream.c @@ -2835,7 +2835,7 @@ int32_t mndProcessConsensusInTmr(SRpcMsg *pMsg) { if (taosArrayGetSize(pInfo->pTaskList) == 0) { mndClearConsensusRspEntry(pInfo); if (streamId == -1) { - mError("streamId is -1, streamId:%" PRIx64" in consensus-checkpointId hashMap, cont", pInfo->streamId); + mError("streamId is -1, streamId:%" PRIx64 " in consensus-checkpointId hashMap, cont", pInfo->streamId); } void *p = taosArrayPush(pStreamList, &streamId); diff --git a/source/dnode/vnode/src/inc/vnd.h b/source/dnode/vnode/src/inc/vnd.h index db48f8cfa3..850d0b036e 100644 --- a/source/dnode/vnode/src/inc/vnd.h +++ b/source/dnode/vnode/src/inc/vnd.h @@ -32,12 +32,12 @@ extern "C" { #define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND DEBUG ", DEBUG_DEBUG, vDebugFlag, __VA_ARGS__); }} while(0) #define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND TRACE ", DEBUG_TRACE, vDebugFlag, __VA_ARGS__); }} while(0) -#define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGError(param, ...) do { if (vDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vError(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGWarn(param, ...) do { if (vDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vWarn(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGInfo(param, ...) do { if (vDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vInfo(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define vGDebug(param, ...) do { if (vDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vDebug(param ",QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGTrace(param, ...) do { if (vDebugFlag & DEBUG_TRACE) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGFatal(param, ...) do { if (vDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGError(param, ...) do { if (vDebugFlag & DEBUG_ERROR) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGWarn(param, ...) do { if (vDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGInfo(param, ...) do { if (vDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define vGDebug(param, ...) do { if (vDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); vDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) // clang-format on diff --git a/source/dnode/vnode/src/sma/smaRollup.c b/source/dnode/vnode/src/sma/smaRollup.c index 7d83dbcf84..1a33a69f2b 100644 --- a/source/dnode/vnode/src/sma/smaRollup.c +++ b/source/dnode/vnode/src/sma/smaRollup.c @@ -1017,20 +1017,20 @@ int32_t tdProcessRSmaSubmit(SSma *pSma, int64_t version, void *pReq, void *pMsg, int32_t code = 0; if ((code = atomic_load_32(&SMA_RSMA_STAT(pSma)->execStat))) { - smaError("vgId:%d, failed to process rsma submit since invalid exec code: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit since invalid exec code:%s", SMA_VID(pSma), tstrerror(code)); goto _exit; } STbUidStore uidStore = {0}; if ((code = tdFetchSubmitReqSuids(pReq, &uidStore)) < 0) { - smaError("vgId:%d, failed to process rsma submit fetch suid since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit fetch suid since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } if (uidStore.suid != 0) { if ((code = tdExecuteRSmaAsync(pSma, version, pMsg, len, STREAM_INPUT__DATA_SUBMIT, uidStore.suid)) < 0) { - smaError("vgId:%d, failed to process rsma submit exec 1 since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit exec 1 since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } @@ -1054,13 +1054,13 @@ int32_t tdProcessRSmaDelete(SSma *pSma, int64_t version, void *pReq, void *pMsg, int32_t code = 0; if ((code = atomic_load_32(&SMA_RSMA_STAT(pSma)->execStat))) { - smaError("vgId:%d, failed to process rsma delete since invalid exec code: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma delete since invalid exec code:%s", SMA_VID(pSma), tstrerror(code)); goto _exit; } SDeleteRes *pDelRes = pReq; if ((code = tdExecuteRSmaAsync(pSma, version, pMsg, len, STREAM_INPUT__REF_DATA_BLOCK, pDelRes->suid)) < 0) { - smaError("vgId:%d, failed to process rsma submit exec 1 since: %s", SMA_VID(pSma), tstrerror(code)); + smaError("vgId:%d, failed to process rsma submit exec 1 since %s", SMA_VID(pSma), tstrerror(code)); goto _exit; } _exit: @@ -1249,7 +1249,7 @@ int32_t tdRSmaPersistExecImpl(SRSmaStat *pRSmaStat, SHashObj *pInfoHash) { if (streamFlushed) { pRSmaInfo->items[i].streamFlushed = 1; if (++nStreamFlushed >= nTaskInfo) { - smaInfo("vgId:%d, rsma commit, checkpoint ready, %d us consumed, received/total: %d/%d", TD_VID(pVnode), + smaInfo("vgId:%d, rsma commit, checkpoint ready, %d us consumed, received/total:%d/%d", TD_VID(pVnode), nSleep * 10, nStreamFlushed, nTaskInfo); taosHashCancelIterate(pInfoHash, infoHash); goto _checkpoint; @@ -1260,7 +1260,7 @@ int32_t tdRSmaPersistExecImpl(SRSmaStat *pRSmaStat, SHashObj *pInfoHash) { } taosUsleep(10); ++nSleep; - smaDebug("vgId:%d, rsma commit, wait for checkpoint ready, %d us elapsed, received/total: %d/%d", TD_VID(pVnode), + smaDebug("vgId:%d, rsma commit, wait for checkpoint ready, %d us elapsed, received/total:%d/%d", TD_VID(pVnode), nSleep * 10, nStreamFlushed, nTaskInfo); } } while (0); diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index b9de5dce52..5df4f852c2 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -202,7 +202,7 @@ void tqPushEmptyDataRsp(STqHandle* pHandle, int32_t vgId) { dataRsp.blockNum = 0; char buf[TSDB_OFFSET_LEN] = {0}; (void)tFormatOffset(buf, TSDB_OFFSET_LEN, &dataRsp.reqOffset); - tqInfo("tqPushEmptyDataRsp to consumer:0x%" PRIx64 " vgId:%d, offset:%s,QID:0x%" PRIx64, req.consumerId, vgId, buf, + tqInfo("tqPushEmptyDataRsp to consumer:0x%" PRIx64 " vgId:%d, offset:%s, QID:0x%" PRIx64, req.consumerId, vgId, buf, req.reqId); code = tqSendDataRsp(pHandle, pHandle->msg, &req, &dataRsp, TMQ_MSG_TYPE__POLL_DATA_RSP, vgId); @@ -225,7 +225,7 @@ int32_t tqSendDataRsp(STqHandle* pHandle, const SRpcMsg* pMsg, const SMqPollReq* (void)tFormatOffset(buf1, TSDB_OFFSET_LEN, &(pRsp->reqOffset)); (void)tFormatOffset(buf2, TSDB_OFFSET_LEN, &(pRsp->rspOffset)); - tqDebug("tmq poll vgId:%d consumer:0x%" PRIx64 " (epoch %d) start to send rsp, block num:%d, req:%s, rsp:%s,QID:0x%" PRIx64, + tqDebug("tmq poll vgId:%d consumer:0x%" PRIx64 " (epoch %d) start to send rsp, block num:%d, req:%s, rsp:%s, QID:0x%" PRIx64, vgId, pReq->consumerId, pReq->epoch, pRsp->blockNum, buf1, buf2, pReq->reqId); return tqDoSendDataRsp(&pMsg->info, pRsp, pReq->epoch, pReq->consumerId, type, sver, ever); @@ -477,7 +477,7 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) { char buf[TSDB_OFFSET_LEN] = {0}; (void)tFormatOffset(buf, TSDB_OFFSET_LEN, &reqOffset); - tqDebug("tmq poll: consumer:0x%" PRIx64 " (epoch %d), subkey %s, recv poll req vgId:%d, req:%s,QID:0x%" PRIx64, + tqDebug("tmq poll: consumer:0x%" PRIx64 " (epoch %d), subkey %s, recv poll req vgId:%d, req:%s, QID:0x%" PRIx64, consumerId, req.epoch, pHandle->subKey, vgId, buf, req.reqId); code = tqExtractDataForMq(pTq, pHandle, &req, pMsg); diff --git a/source/dnode/vnode/src/tq/tqRead.c b/source/dnode/vnode/src/tq/tqRead.c index ee705ed374..6d41426d08 100644 --- a/source/dnode/vnode/src/tq/tqRead.c +++ b/source/dnode/vnode/src/tq/tqRead.c @@ -222,12 +222,12 @@ int32_t tqFetchLog(STQ* pTq, STqHandle* pHandle, int64_t* fetchOffset, uint64_t while (offset <= appliedVer) { if (walFetchHead(pHandle->pWalReader, offset) < 0) { tqDebug("tmq poll: consumer:0x%" PRIx64 ", (epoch %d) vgId:%d offset %" PRId64 - ", no more log to return,QID:0x%" PRIx64 " 0x%" PRIx64, + ", no more log to return, QID:0x%" PRIx64 " 0x%" PRIx64, pHandle->consumerId, pHandle->epoch, vgId, offset, reqId, id); goto END; } - tqDebug("vgId:%d, consumer:0x%" PRIx64 " taosx get msg ver %" PRId64 ", type: %s,QID:0x%" PRIx64 " 0x%" PRIx64, + tqDebug("vgId:%d, consumer:0x%" PRIx64 " taosx get msg ver %" PRId64 ", type:%s, QID:0x%" PRIx64 " 0x%" PRIx64, vgId, pHandle->consumerId, offset, TMSG_INFO(pHandle->pWalReader->pHead->head.msgType), reqId, id); if (pHandle->pWalReader->pHead->head.msgType == TDMT_VND_SUBMIT) { diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index bc8b8504c4..f92cd6d972 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -190,10 +190,10 @@ end: char buf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(buf, TSDB_OFFSET_LEN, &dataRsp.rspOffset); if (code != 0){ - tqError("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s,QID:0x%" PRIx64 " error msg:%s, line:%d", + tqError("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s, QID:0x%" PRIx64 " error msg:%s, line:%d", consumerId, pHandle->subKey, vgId, dataRsp.blockNum, buf, pRequest->reqId, tstrerror(code), lino); } else { - tqDebug("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s,QID:0x%" PRIx64 " success", + tqDebug("tmq poll: consumer:0x%" PRIx64 ", subkey %s, vgId:%d, rsp block:%d, rsp offset type:%s, QID:0x%" PRIx64 " success", consumerId, pHandle->subKey, vgId, dataRsp.blockNum, buf, pRequest->reqId); } diff --git a/source/dnode/vnode/src/tqCommon/tqCommon.c b/source/dnode/vnode/src/tqCommon/tqCommon.c index 0c4a3932b7..fe4b2ae8f1 100644 --- a/source/dnode/vnode/src/tqCommon/tqCommon.c +++ b/source/dnode/vnode/src/tqCommon/tqCommon.c @@ -461,7 +461,7 @@ int32_t tqStreamTaskProcessRetrieveReq(SStreamMeta* pMeta, SRpcMsg* pMsg) { } // enqueue - tqDebug("s-task:%s (vgId:%d level:%d) recv retrieve req from task:0x%x(vgId:%d),QID:0x%" PRIx64, pTask->id.idStr, + tqDebug("s-task:%s (vgId:%d level:%d) recv retrieve req from task:0x%x(vgId:%d), QID:0x%" PRIx64, pTask->id.idStr, pTask->pMeta->vgId, pTask->info.taskLevel, req.srcTaskId, req.srcNodeId, req.reqId); // if task is in ck status, set current ck failed diff --git a/source/dnode/vnode/src/tsdb/tsdbFile2.c b/source/dnode/vnode/src/tsdb/tsdbFile2.c index cdf87d5f19..ae78511e8b 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFile2.c +++ b/source/dnode/vnode/src/tsdb/tsdbFile2.c @@ -249,14 +249,14 @@ int32_t tsdbTFileObjRef(STFileObj *fobj) { (void)taosThreadMutexLock(&fobj->mutex); if (fobj->ref <= 0 || fobj->state != TSDB_FSTATE_LIVE) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); (void)taosThreadMutexUnlock(&fobj->mutex); return TSDB_CODE_FAILED; } nRef = ++fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("ref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("ref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); return 0; } @@ -266,11 +266,11 @@ int32_t tsdbTFileObjUnref(STFileObj *fobj) { (void)taosThreadMutexUnlock(&fobj->mutex); if (nRef < 0) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); return TSDB_CODE_FAILED; } - tsdbTrace("unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { if (fobj->state == TSDB_FSTATE_DEAD) { tsdbRemoveFile(fobj->fname); @@ -335,14 +335,14 @@ static void tsdbTFileObjRemoveLC(STFileObj *fobj, bool remove_all) { int32_t tsdbTFileObjRemove(STFileObj *fobj) { (void)taosThreadMutexLock(&fobj->mutex); if (fobj->state != TSDB_FSTATE_LIVE || fobj->ref <= 0) { - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); (void)taosThreadMutexUnlock(&fobj->mutex); return TSDB_CODE_FAILED; } fobj->state = TSDB_FSTATE_DEAD; int32_t nRef = --fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("remove unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("remove unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { tsdbTFileObjRemoveLC(fobj, true); taosMemoryFree(fobj); @@ -355,14 +355,14 @@ int32_t tsdbTFileObjRemoveUpdateLC(STFileObj *fobj) { if (fobj->state != TSDB_FSTATE_LIVE || fobj->ref <= 0) { (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbError("file %s, fobj:%p ref %d", fobj->fname, fobj, fobj->ref); + tsdbError("file %s, fobj:%p ref:%d", fobj->fname, fobj, fobj->ref); return TSDB_CODE_FAILED; } fobj->state = TSDB_FSTATE_DEAD; int32_t nRef = --fobj->ref; (void)taosThreadMutexUnlock(&fobj->mutex); - tsdbTrace("remove unref file %s, fobj:%p ref %d", fobj->fname, fobj, nRef); + tsdbTrace("remove unref file %s, fobj:%p ref:%d", fobj->fname, fobj, nRef); if (nRef == 0) { tsdbTFileObjRemoveLC(fobj, false); taosMemoryFree(fobj); diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 57041e851a..8baf08ef94 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -230,7 +230,7 @@ static int32_t setColumnIdSlotList(SBlockLoadSuppInfo* pSupInfo, SColumnInfo* pC if (IS_VAR_DATA_TYPE(pCols[i].type)) { pSupInfo->buildBuf[i] = taosMemoryMalloc(pCols[i].bytes); if (pSupInfo->buildBuf[i] == NULL) { - tsdbError("failed to prepare memory for set columnId slot list, size:%d, code: %s", pCols[i].bytes, + tsdbError("failed to prepare memory for set columnId slot list, size:%d, code:%s", pCols[i].bytes, tstrerror(terrno)); } TSDB_CHECK_NULL(pSupInfo->buildBuf[i], code, lino, _end, terrno); diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index dd553ac301..b6bc2fac07 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -827,19 +827,19 @@ typedef struct SCtgCacheItemInfo { #define CTG_CACHE_OVERFLOW(_csize, _maxsize) ((_maxsize >= 0) ? ((_csize) >= (_maxsize)*1048576L * 0.9) : false) #define CTG_CACHE_LOW(_csize, _maxsize) ((_maxsize >= 0) ? ((_csize) <= (_maxsize)*1048576L * 0.75) : true) -#define ctgFatal(param, ...) qFatal("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgError(param, ...) qError("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgWarn(param, ...) qWarn("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgInfo(param, ...) qInfo("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgDebug(param, ...) qDebug("CTG:%p " param, pCtg, __VA_ARGS__) -#define ctgTrace(param, ...) qTrace("CTG:%p " param, pCtg, __VA_ARGS__) +#define ctgFatal(param, ...) qFatal("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgError(param, ...) qError("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgWarn(param, ...) qWarn ("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgInfo(param, ...) qInfo ("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgDebug(param, ...) qDebug("CTG:%p, " param, pCtg, __VA_ARGS__) +#define ctgTrace(param, ...) qTrace("CTG:%p, " param, pCtg, __VA_ARGS__) -#define ctgTaskFatal(param, ...) qFatal("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskError(param, ...) qError("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskWarn(param, ...) qWarn("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskInfo(param, ...) qInfo("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskDebug(param, ...) qDebug("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) -#define ctgTaskTrace(param, ...) qTrace("QID:%" PRIx64 " CTG:%p " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskFatal(param, ...) qFatal("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskError(param, ...) qError("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskWarn(param, ...) qWarn ("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskInfo(param, ...) qInfo ("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskDebug(param, ...) qDebug("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) +#define ctgTaskTrace(param, ...) qTrace("QID:%" PRIx64 ", CTG:%p, " param, pTask->pJob->queryId, pCtg, __VA_ARGS__) #define CTG_LOCK_DEBUG(...) \ do { \ diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 0355babbf0..c775893e53 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -917,7 +917,7 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { if (ctg && (*ctg)) { *catalogHandle = *ctg; CTG_STAT_HIT_INC(CTG_CI_CLUSTER, 1); - qDebug("got catalog handle from cache, clusterId:0x%" PRIx64 ", CTG:%p", clusterId, *ctg); + qDebug("CTG:%p, get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } @@ -1001,7 +1001,7 @@ int32_t catalogGetDBVgVersion(SCatalog* pCtg, const char* dbFName, int32_t* vers ctgReleaseVgInfoToCache(pCtg, dbCache); - ctgDebug("Got db vgVersion from cache, dbFName:%s, vgVersion:%d", dbFName, *version); + ctgDebug("get db vgVersion from cache, dbFName:%s, vgVersion:%d", dbFName, *version); CTG_API_LEAVE(TSDB_CODE_SUCCESS); @@ -1973,7 +1973,7 @@ int32_t catalogClearCache(void) { int32_t code = ctgClearCacheEnqueue(NULL, false, false, false, true); - qInfo("clear catalog cache end, code: %s", tstrerror(code)); + qInfo("clear catalog cache end, code:%s", tstrerror(code)); CTG_API_LEAVE_NOLOCK(code); } diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 917d9feed6..55d69baf70 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -77,7 +77,7 @@ int32_t ctgInitGetTbMetaTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -99,7 +99,7 @@ int32_t ctgInitGetTbMetasTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->pNames = param; ctx->pResList = taosArrayInit(pJob->tbMetaNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbMetaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbMetaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -110,7 +110,7 @@ int32_t ctgInitGetTbMetasTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbMetaNum); return TSDB_CODE_SUCCESS; @@ -138,7 +138,7 @@ int32_t ctgInitGetDbVgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -166,7 +166,7 @@ int32_t ctgInitGetDbCfgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -194,7 +194,7 @@ int32_t ctgInitGetDbInfoTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; @@ -228,7 +228,7 @@ int32_t ctgInitGetTbHashTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tableName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tableName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -250,7 +250,7 @@ int32_t ctgInitGetTbHashsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->pNames = param; ctx->pResList = taosArrayInit(pJob->tbHashNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbHashNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbHashNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -261,7 +261,7 @@ int32_t ctgInitGetTbHashsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbHashNum); return TSDB_CODE_SUCCESS; @@ -280,7 +280,7 @@ int32_t ctgInitGetQnodeTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -298,7 +298,7 @@ int32_t ctgInitGetDnodeTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -325,7 +325,7 @@ int32_t ctgInitGetIndexTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, indexFName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, indexFName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; @@ -353,7 +353,7 @@ int32_t ctgInitGetUdfTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, udfName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, udfName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; @@ -381,7 +381,7 @@ int32_t ctgInitGetUserTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, user:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, user:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), user->user); return TSDB_CODE_SUCCESS; @@ -399,7 +399,7 @@ int32_t ctgInitGetSvrVerTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -431,7 +431,7 @@ int32_t ctgInitGetTbIndexTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -464,7 +464,7 @@ int32_t ctgInitGetTbCfgTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -497,7 +497,7 @@ int32_t ctgInitGetTbTagTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; @@ -520,7 +520,7 @@ int32_t ctgInitGetViewsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { ctx->forceFetch = p->forceFetch; ctx->pResList = taosArrayInit(pJob->viewNum, sizeof(SMetaRes)); if (NULL == ctx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->viewNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->viewNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -531,7 +531,7 @@ int32_t ctgInitGetViewsTask(SCtgJob* pJob, int32_t taskIdx, void* param) { CTG_ERR_RET(terrno); } - qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, viewNum:%d", pJob->queryId, taskIdx, + qDebug("QID:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, viewNum:%d", pJob->queryId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->viewNum); return TSDB_CODE_SUCCESS; @@ -552,7 +552,7 @@ int32_t ctgInitGetTbTSMATask(SCtgJob* pJob, int32_t taskId, void* param) { pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tbTsmaNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbTsmaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbTsmaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -580,7 +580,7 @@ int32_t ctgInitGetTSMATask(SCtgJob* pJob, int32_t taskId, void* param) { pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tsmaNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tsmaNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tsmaNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -609,7 +609,7 @@ static int32_t ctgInitGetTbNamesTask(SCtgJob* pJob, int32_t taskId, void* param) pTaskCtx->pNames = param; pTaskCtx->pResList = taosArrayInit(pJob->tbNameNum, sizeof(SMetaRes)); if (NULL == pTaskCtx->pResList) { - qError("QID:0x%" PRIx64 " taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbNameNum, + qError("QID:0x%" PRIx64 ", taosArrayInit %d SMetaRes %d failed", pJob->queryId, pJob->tbNameNum, (int32_t)sizeof(SMetaRes)); ctgFreeTask(&task, true); CTG_ERR_RET(terrno); @@ -873,7 +873,7 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const *job = taosMemoryCalloc(1, sizeof(SCtgJob)); if (NULL == *job) { - ctgError("failed to calloc, size:%d,QID:0x%" PRIx64, (int32_t)sizeof(SCtgJob), pConn->requestId); + ctgError("failed to calloc, size:%d, QID:0x%" PRIx64, (int32_t)sizeof(SCtgJob), pConn->requestId); CTG_ERR_RET(terrno); } @@ -1478,16 +1478,16 @@ _return: int32_t ctgCallUserCb(void* param) { SCtgJob* pJob = (SCtgJob*)param; - qDebug("QID:0x%" PRIx64 " ctg start to call user cb with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); + qDebug("QID:0x%" PRIx64 ", ctg start to call user cb with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); (*pJob->userFp)(&pJob->jobRes, pJob->userParam, pJob->jobResCode); - qDebug("QID:0x%" PRIx64 " ctg end to call user cb", pJob->queryId); + qDebug("QID:0x%" PRIx64 ", ctg end to call user cb", pJob->queryId); int64_t refId = pJob->refId; int32_t code = taosRemoveRef(gCtgMgmt.jobPool, refId); if (code) { - qError("QID:0x%" PRIx64 " remove ctg job %" PRId64 " from jobPool failed, error:%s", pJob->queryId, refId, + qError("QID:0x%" PRIx64 ", remove ctg job %" PRId64 " from jobPool failed, error:%s", pJob->queryId, refId, tstrerror(code)); } @@ -1498,7 +1498,7 @@ void ctgUpdateJobErrCode(SCtgJob* pJob, int32_t errCode) { if (!NEED_CLIENT_REFRESH_VG_ERROR(errCode) || errCode == TSDB_CODE_SUCCESS) return; atomic_store_32(&pJob->jobResCode, errCode); - qDebug("QID:0x%" PRIx64 " ctg job errCode updated to %s", pJob->queryId, tstrerror(errCode)); + qDebug("QID:0x%" PRIx64 ", ctg job errCode updated to %s", pJob->queryId, tstrerror(errCode)); return; } @@ -1510,7 +1510,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { return TSDB_CODE_SUCCESS; } - qDebug("QID:0x%" PRIx64 " task %d end with res %s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); + qDebug("QID:0x%" PRIx64 ", task %d end with res %s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); pTask->code = rspCode; pTask->status = CTG_TASK_DONE; @@ -1519,7 +1519,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { int32_t taskDone = atomic_add_fetch_32(&pJob->taskDone, 1); if (taskDone < taosArrayGetSize(pJob->pTasks)) { - qDebug("QID:0x%" PRIx64 " task done: %d, total: %d", pJob->queryId, taskDone, + qDebug("QID:0x%" PRIx64 ", task done:%d, total:%d", pJob->queryId, taskDone, (int32_t)taosArrayGetSize(pJob->pTasks)); ctgUpdateJobErrCode(pJob, rspCode); @@ -4374,7 +4374,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) { CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("QID:0x%" PRIx64 " ctg launch [%dth] task", pJob->queryId, pTask->taskId); + qDebug("QID:0x%" PRIx64 ", ctg launch [%dth] task", pJob->queryId, pTask->taskId); CTG_ERR_RET((*gCtgAsyncFps[pTask->type].launchFp)(pTask)); pTask = taosArrayGet(pJob->pTasks, i); @@ -4387,7 +4387,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) { } if (taskNum <= 0) { - qDebug("QID:0x%" PRIx64 " ctg call user callback with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); + qDebug("QID:0x%" PRIx64 ", ctg call user callback with rsp %s", pJob->queryId, tstrerror(pJob->jobResCode)); CTG_ERR_RET(taosAsyncExec(ctgCallUserCb, pJob, NULL)); #if CTG_BATCH_FETCH diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index c05f4704aa..cf397df3fb 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -244,7 +244,7 @@ int32_t ctgAcquireVgInfoFromCache(SCatalog *pCtg, const char *dbFName, SCtgDBCac CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("Got db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); return TSDB_CODE_SUCCESS; @@ -280,14 +280,14 @@ int32_t ctgAcquireTbMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("tb %s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); goto _return; } *pDb = dbCache; *pTb = pCache; - ctgDebug("tb %s meta got in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType); @@ -327,7 +327,7 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("Got db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); tbCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == tbCache) { @@ -338,14 +338,14 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_LOCK(CTG_READ, &tbCache->metaLock); if (NULL == tbCache->pMeta) { - ctgDebug("tb %s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); CTG_META_NHIT_INC(); goto _return; } *pTb = tbCache; - ctgDebug("tb %s meta got in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); CTG_META_HIT_INC(tbCache->pMeta->tableType); @@ -557,7 +557,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt (*pTableMeta)->schemaExt = NULL; } - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); return TSDB_CODE_SUCCESS; } @@ -577,7 +577,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt taosHashRelease(dbCache->tbCache, tbCache); *pTb = NULL; - ctgDebug("Got ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", ctx->pName->tname, + ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", ctx->pName->tname, ctx->tbInfo.tbType, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, ctx->tbInfo.suid, &tbCache)); @@ -632,7 +632,7 @@ int32_t ctgReadTbMetaFromCache(SCatalog *pCtg, SCtgTbMetaCtx *ctx, STableMeta ** ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); + ctgDebug("get tb:%s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); return TSDB_CODE_SUCCESS; @@ -669,7 +669,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, *sver = tbMeta->sversion; *tver = tbMeta->tversion; - ctgDebug("Got tb %s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, + ctgDebug("get tb:%s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, dbFName, *tbType, *sver, *tver, *suid); ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); @@ -684,7 +684,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, taosHashRelease(dbCache->tbCache, tbCache); } - ctgDebug("Got ctb %s ver from cache, will continue to get its stb ver, dbFName:%s", pTableName->tname, dbFName); + ctgDebug("get ctb %s ver from cache, will continue to get its stb ver, dbFName:%s", pTableName->tname, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, *suid, &tbCache)); if (NULL == tbCache) { @@ -711,7 +711,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, + ctgDebug("get tb:%s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, dbFName); return TSDB_CODE_SUCCESS; @@ -729,7 +729,7 @@ int32_t ctgReadTbTypeFromCache(SCatalog *pCtg, char *dbFName, char *tbName, int3 *tbType = tbCache->pMeta->tableType; ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("Got tb %s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); + ctgDebug("get tb:%s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); return TSDB_CODE_SUCCESS; } @@ -835,7 +835,7 @@ int32_t ctgChkAuthFromCache(SCatalog *pCtg, SUserAuthInfo *pReq, bool tbNotExist *inCache = true; - ctgDebug("Got user from cache, user:%s", pReq->user); + ctgDebug("get user from cache, user:%s", pReq->user); CTG_CACHE_HIT_INC(CTG_CI_USER, 1); SCtgAuthReq req = {0}; @@ -3517,7 +3517,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3542,7 +3542,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got tb %s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3564,7 +3564,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("Got ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", pName->tname, + ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", pName->tname, nctx.tbInfo.tbType, dbFName); char *stName = taosHashAcquire(dbCache->stbCache, &pTableMeta->suid, sizeof(pTableMeta->suid)); @@ -3877,7 +3877,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC CTG_UNLOCK(CTG_READ, &pCache->viewLock); taosHashRelease(dbCache->viewCache, pCache); - ctgDebug("Got view %s meta from cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("get view %s meta from cache, dbFName:%s", pName->tname, dbFName); res.pRes = pViewMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index ec93b7dee2..e5c7750ddc 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -48,7 +48,7 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu msgNum = 0; } - ctgDebug("QID:0x%" PRIx64 " ctg got batch %d rsp %s", pJob->queryId, cbParam->batchId, + ctgDebug("QID:0x%" PRIx64 ", ctg got batch %d rsp %s", pJob->queryId, cbParam->batchId, TMSG_INFO(cbParam->reqType + 1)); SHashObj* pBatchs = taosHashInit(taskNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), false, HASH_NO_LOCK); @@ -115,7 +115,7 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu pMsgCtx->pBatchs = pBatchs; - ctgDebug("QID:0x%" PRIx64 " ctg task %d idx %d start to handle rsp %s, pBatchs: %p", pJob->queryId, pTask->taskId, + ctgDebug("QID:0x%" PRIx64 ", ctg task %d idx %d start to handle rsp %s, pBatchs: %p", pJob->queryId, pTask->taskId, pRsp->msgIdx, TMSG_INFO(taskMsg.msgType + 1), pBatchs); (void)(*gCtgAsyncFps[pTask->type].handleRspFp)( @@ -148,7 +148,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got qnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(out)); + qDebug("get qnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(out)); break; } case TDMT_MND_DNODE_LIST: { @@ -163,7 +163,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got dnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(*(SArray**)out)); + qDebug("get dnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(*(SArray**)out)); break; } case TDMT_MND_USE_DB: { @@ -178,7 +178,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got db vgInfo from mnode, dbFName:%s", target); + qDebug("get db vgInfo from mnode, dbFName:%s", target); break; } case TDMT_MND_GET_DB_CFG: { @@ -193,7 +193,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got db cfg from mnode, dbFName:%s", target); + qDebug("get db cfg from mnode, dbFName:%s", target); break; } case TDMT_MND_GET_INDEX: { @@ -208,7 +208,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got index from mnode, indexName:%s", target); + qDebug("get index from mnode, indexName:%s", target); break; } case TDMT_MND_GET_TABLE_INDEX: { @@ -223,7 +223,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table index from mnode, tbFName:%s", target); + qDebug("get table index from mnode, tbFName:%s", target); break; } case TDMT_MND_RETRIEVE_FUNC: { @@ -238,7 +238,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got udf from mnode, funcName:%s", target); + qDebug("get udf from mnode, funcName:%s", target); break; } case TDMT_MND_GET_USER_AUTH: { @@ -253,7 +253,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got user auth from mnode, user:%s", target); + qDebug("get user auth from mnode, user:%s", target); break; } case TDMT_MND_TABLE_META: { @@ -274,7 +274,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from mnode, tbFName:%s", target); + qDebug("get table meta from mnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_META: { @@ -295,7 +295,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from vnode, tbFName:%s", target); + qDebug("get table meta from vnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_NAME: { @@ -316,7 +316,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table meta from vnode, tbFName:%s", target); + qDebug("get table meta from vnode, tbFName:%s", target); break; } case TDMT_VND_TABLE_CFG: { @@ -331,7 +331,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table cfg from vnode, tbFName:%s", target); + qDebug("get table cfg from vnode, tbFName:%s", target); break; } case TDMT_MND_TABLE_CFG: { @@ -346,7 +346,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got stb cfg from mnode, tbFName:%s", target); + qDebug("get stb cfg from mnode, tbFName:%s", target); break; } case TDMT_MND_SERVER_VERSION: { @@ -361,7 +361,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got svr ver from mnode"); + qDebug("get svr ver from mnode"); break; } case TDMT_MND_VIEW_META: { @@ -380,7 +380,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got view-meta from mnode, viewFName:%s", target); + qDebug("get view-meta from mnode, viewFName:%s", target); break; } case TDMT_MND_GET_TSMA: @@ -398,7 +398,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("Got table tsma from mnode, tbFName:%s", target); + qDebug("get table tsma from mnode, tbFName:%s", target); break; } case TDMT_VND_GET_STREAM_PROGRESS: { @@ -414,7 +414,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, } default: if (TSDB_CODE_SUCCESS != rspCode) { - qError("Got error rsp, error:%s", tstrerror(rspCode)); + qError("get error rsp, error:%s", tstrerror(rspCode)); CTG_ERR_RET(rspCode); } @@ -455,7 +455,7 @@ int32_t ctgHandleMsgCallback(void* param, SDataBuf* pMsg, int32_t rspCode) { CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("QID:0x%" PRIx64 " ctg task %d start to handle rsp %s", pJob->queryId, pTask->taskId, + qDebug("QID:0x%" PRIx64 ", ctg task %d start to handle rsp %s", pJob->queryId, pTask->taskId, TMSG_INFO(cbParam->reqType + 1)); #if CTG_BATCH_FETCH @@ -562,7 +562,7 @@ int32_t ctgAsyncSendMsg(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob* pJob, CTG_ERR_JRET(code); } - ctgDebug("ctg req msg sent,QID:0x%" PRIx64 ", msg type:%d, %s", pJob->queryId, msgType, TMSG_INFO(msgType)); + ctgDebug("ctg req msg sent, QID:0x%" PRIx64 ", msg type:%d, %s", pJob->queryId, msgType, TMSG_INFO(msgType)); return TSDB_CODE_SUCCESS; _return: @@ -810,7 +810,7 @@ int32_t ctgLaunchBatchs(SCatalog* pCtg, SCtgJob* pJob, SHashObj* pBatchs) { SCtgBatch* pBatch = (SCtgBatch*)p; int32_t msgSize = 0; - ctgDebug("QID:0x%" PRIx64 " ctg start to launch batch %d", pJob->queryId, pBatch->batchId); + ctgDebug("QID:0x%" PRIx64 ", ctg start to launch batch %d", pJob->queryId, pBatch->batchId); CTG_ERR_JRET(ctgBuildBatchReqMsg(pBatch, *vgId, &msg, &msgSize)); code = ctgAsyncSendMsg(pCtg, &pBatch->conn, pJob, pBatch->pTaskIds, pBatch->batchId, pBatch->pMsgIdxs, diff --git a/source/libs/catalog/src/ctgRent.c b/source/libs/catalog/src/ctgRent.c index 7dff496eb0..bb077f2c84 100755 --- a/source/libs/catalog/src/ctgRent.c +++ b/source/libs/catalog/src/ctgRent.c @@ -194,7 +194,7 @@ int32_t ctgMetaRentGetImpl(SCtgRentMgmt *mgmt, void **res, uint32_t *num, int32_ *num = (uint32_t)metaNum; - qDebug("Got %d meta from rent, type:%d", (int32_t)metaNum, mgmt->type); + qDebug("get %d meta from rent, type:%d", (int32_t)metaNum, mgmt->type); _return: diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 0ade1be0d6..9fba087da3 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -1196,7 +1196,7 @@ int32_t ctgGenerateVgList(SCatalog* pCtg, SHashObj* vgHash, SArray** pList, cons *pList = vgList; - ctgDebug("Got vgList from cache, vgNum:%d", vgNum); + ctgDebug("get vgList from cache, vgNum:%d", vgNum); return TSDB_CODE_SUCCESS; @@ -1293,7 +1293,7 @@ int32_t ctgGetVgInfoFromHashValue(SCatalog* pCtg, SEpSet* pMgmtEps, SDBVgInfo* d *pVgroup = *vgInfo; - ctgDebug("Got tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1327,7 +1327,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR TAOS_MEMCPY(vgInfo, &mgmtInfo, sizeof(mgmtInfo)); - ctgDebug("Got tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, + ctgDebug("get tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); if (update) { @@ -1376,7 +1376,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR TAOS_MEMCPY(vgInfo, pSrcVg, sizeof(*pSrcVg)); - ctgDebug("Got tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, + ctgDebug("get tb hash vgroup, vgId:%d, epNum %d, current %s port %d", vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); if (update) { @@ -1437,7 +1437,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR *pNewVg = *vgInfo; - ctgDebug("Got tb %s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1496,7 +1496,7 @@ int32_t ctgGetVgIdsFromHashValue(SCatalog* pCtg, SDBVgInfo* dbInfo, char* dbFNam vgId[i] = vgInfo->vgId; - ctgDebug("Got tb %s vgId:%d", tbFullName, vgInfo->vgId); + ctgDebug("get tb:%s vgId:%d", tbFullName, vgInfo->vgId); } CTG_RET(code); diff --git a/source/libs/executor/src/aggregateoperator.c b/source/libs/executor/src/aggregateoperator.c index 1b8e8298b4..55166d8c27 100644 --- a/source/libs/executor/src/aggregateoperator.c +++ b/source/libs/executor/src/aggregateoperator.c @@ -360,7 +360,7 @@ int32_t doAggregateImpl(SOperatorInfo* pOperator, SqlFunctionCtx* pCtx) { if (pCtx[k].fpSet.cleanup != NULL) { pCtx[k].fpSet.cleanup(&pCtx[k]); } - qError("%s aggregate function error happens, code: %s", GET_TASKID(pOperator->pTaskInfo), tstrerror(code)); + qError("%s aggregate function error happens, code:%s", GET_TASKID(pOperator->pTaskInfo), tstrerror(code)); return code; } } @@ -803,7 +803,7 @@ int32_t applyAggFunctionOnPartialTuples(SExecTaskInfo* taskInfo, SqlFunctionCtx* if (pCtx[k].fpSet.cleanup != NULL) { pCtx[k].fpSet.cleanup(&pCtx[k]); } - qError("%s apply functions error, code: %s", GET_TASKID(taskInfo), tstrerror(code)); + qError("%s apply functions error, code:%s", GET_TASKID(taskInfo), tstrerror(code)); taskInfo->code = code; return code; } diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 7bff5550df..ac6b089de1 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -2911,7 +2911,7 @@ int32_t createScanTableListInfo(SScanPhysiNode* pScanNode, SNodeList* pGroupTags int32_t code = getTableList(pHandle->vnode, pScanNode, pTagCond, pTagIndexCond, pTableListInfo, digest, idStr, &pTaskInfo->storageAPI); if (code != TSDB_CODE_SUCCESS) { - qError("failed to getTableList, code: %s", tstrerror(code)); + qError("failed to getTableList, code:%s", tstrerror(code)); return code; } diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index efe0792a76..ce23a9063f 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -645,7 +645,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId, int32_t code = createExecTaskInfo(pSubplan, pTask, readHandle, taskId, vgId, sql, model); if (code != TSDB_CODE_SUCCESS || NULL == *pTask) { - qError("failed to createExecTaskInfo, code: %s", tstrerror(code)); + qError("failed to createExecTaskInfo, code:%s", tstrerror(code)); goto _error; } diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index 08b4ce240e..3d0283f857 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -292,7 +292,7 @@ static void doHashGroupbyAgg(SOperatorInfo* pOperator, SSDataBlock* pBlock) { SqlFunctionCtx* pCtx = pOperator->exprSupp.pCtx; int32_t numOfGroupCols = taosArrayGetSize(pInfo->pGroupCols); // if (type == TSDB_DATA_TYPE_FLOAT || type == TSDB_DATA_TYPE_DOUBLE) { - // qError("QInfo:0x%"PRIx64" group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); + // qError("QInfo:0x%"PRIx64 " group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); // return; // } diff --git a/source/libs/executor/src/operator.c b/source/libs/executor/src/operator.c index 5d25a81f6f..057deed038 100644 --- a/source/libs/executor/src/operator.c +++ b/source/libs/executor/src/operator.c @@ -349,7 +349,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand if (code) { pTaskInfo->code = code; tableListDestroy(pTableListInfo); - qError("failed to createScanTableListInfo, code: %s", tstrerror(code)); + qError("failed to createScanTableListInfo, code:%s", tstrerror(code)); return code; } @@ -387,7 +387,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand if (code) { pTaskInfo->code = code; tableListDestroy(pTableListInfo); - qError("failed to createScanTableListInfo, code: %s", tstrerror(code)); + qError("failed to createScanTableListInfo, code:%s", tstrerror(code)); return code; } } @@ -417,7 +417,7 @@ int32_t createOperator(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo, SReadHand pTagIndexCond, pTaskInfo); if (code != TSDB_CODE_SUCCESS) { pTaskInfo->code = code; - qError("failed to getTableList, code: %s", tstrerror(code)); + qError("failed to getTableList, code:%s", tstrerror(code)); tableListDestroy(pTableListInfo); return code; } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 50dfa4737f..0ca9740e7a 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -5193,7 +5193,7 @@ static int32_t doTagScanFromMetaEntryNext(SOperatorInfo* pOperator, SSDataBlock* setOperatorCompleted(pOperator); } - // qDebug("QInfo:0x%"PRIx64" create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); + // qDebug("QInfo:0x%"PRIx64 " create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); if (pOperator->status == OP_EXEC_DONE) { setTaskStatus(pTaskInfo, TASK_COMPLETED); } diff --git a/source/libs/function/src/tudf.c b/source/libs/function/src/tudf.c index 3ee35b921d..5c5a98cb2e 100644 --- a/source/libs/function/src/tudf.c +++ b/source/libs/function/src/tudf.c @@ -1733,7 +1733,7 @@ void onUdfcPipeWrite(uv_write_t *write, int32_t status) { void onUdfcPipeConnect(uv_connect_t *connect, int32_t status) { SClientUvTaskNode *uvTask = connect->data; if (status != 0) { - fnError("client connect error, task seq: %" PRId64 ", code: %s", uvTask->seqNum, uv_strerror(status)); + fnError("client connect error, task seq: %" PRId64 ", code:%s", uvTask->seqNum, uv_strerror(status)); } uvTask->errCode = status; @@ -1812,7 +1812,7 @@ int32_t udfcQueueUvTask(SClientUvTaskNode *uvTask) { uv_mutex_unlock(&udfc->taskQueueMutex); int32_t code = uv_async_send(&udfc->loopTaskAync); if (code != 0) { - fnError("udfc queue uv task to event loop failed. code: %s", uv_strerror(code)); + fnError("udfc queue uv task to event loop failed. code:%s", uv_strerror(code)); return TSDB_CODE_UDF_UV_EXEC_FAILURE; } @@ -1884,7 +1884,7 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) { int32_t err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipeWrite); if (err != 0) { taosMemoryFree(write); - fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code: %s", uvTask, uv_strerror(err)); + fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code:%s", uvTask, uv_strerror(err)); } code = err; } diff --git a/source/libs/function/src/udfd.c b/source/libs/function/src/udfd.c index ecb24fc77a..80dfdc5ce3 100644 --- a/source/libs/function/src/udfd.c +++ b/source/libs/function/src/udfd.c @@ -1106,7 +1106,7 @@ void udfdProcessRpcRsp(void *parent, SRpcMsg *pMsg, SEpSet *pEpSet) { } if (pMsg->code != TSDB_CODE_SUCCESS) { - fnError("udfd rpc error. code: %s", tstrerror(pMsg->code)); + fnError("udfd rpc error. code:%s", tstrerror(pMsg->code)); msgInfo->code = pMsg->code; goto _return; } @@ -1312,7 +1312,7 @@ void udfdOnWrite(uv_write_t *req, int status) { TAOS_UDF_CHECK_PTR_RVOID(req); SUvUdfWork *work = (SUvUdfWork *)req->data; if (status < 0) { - fnError("udfd send response error, length: %zu code: %s", work->output.len, uv_err_name(status)); + fnError("udfd send response error, length: %zu code:%s", work->output.len, uv_err_name(status)); } // remove work from the connection work list if (work->conn != NULL) { @@ -1477,7 +1477,7 @@ void udfdPipeRead(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf) { void udfdOnNewConnection(uv_stream_t *server, int status) { TAOS_UDF_CHECK_PTR_RVOID(server); if (status < 0) { - fnError("udfd new connection error. code: %s", uv_strerror(status)); + fnError("udfd new connection error. code:%s", uv_strerror(status)); return; } int32_t code = 0; diff --git a/source/libs/nodes/inc/nodesUtil.h b/source/libs/nodes/inc/nodesUtil.h index e092c18834..320a20c533 100644 --- a/source/libs/nodes/inc/nodesUtil.h +++ b/source/libs/nodes/inc/nodesUtil.h @@ -20,12 +20,12 @@ extern "C" { #endif -#define nodesFatal(...) qFatal("NODES: " __VA_ARGS__) -#define nodesError(...) qError("NODES: " __VA_ARGS__) -#define nodesWarn(...) qWarn("NODES: " __VA_ARGS__) -#define nodesInfo(...) qInfo("NODES: " __VA_ARGS__) -#define nodesDebug(...) qDebug("NODES: " __VA_ARGS__) -#define nodesTrace(...) qTrace("NODES: " __VA_ARGS__) +#define nodesFatal(...) qFatal("NODES:" __VA_ARGS__) +#define nodesError(...) qError("NODES:" __VA_ARGS__) +#define nodesWarn(...) qWarn ("NODES:" __VA_ARGS__) +#define nodesInfo(...) qInfo ("NODES:" __VA_ARGS__) +#define nodesDebug(...) qDebug("NODES:" __VA_ARGS__) +#define nodesTrace(...) qTrace("NODES:" __VA_ARGS__) #define NODES_ERR_RET(c) \ do { \ diff --git a/source/libs/parser/inc/parUtil.h b/source/libs/parser/inc/parUtil.h index aec5fb4cd6..ede31ec2a5 100644 --- a/source/libs/parser/inc/parUtil.h +++ b/source/libs/parser/inc/parUtil.h @@ -26,12 +26,12 @@ extern "C" { #include "parToken.h" #include "query.h" -#define parserFatal(param, ...) qFatal("PARSER: " param, ##__VA_ARGS__) -#define parserError(param, ...) qError("PARSER: " param, ##__VA_ARGS__) -#define parserWarn(param, ...) qWarn("PARSER: " param, ##__VA_ARGS__) -#define parserInfo(param, ...) qInfo("PARSER: " param, ##__VA_ARGS__) -#define parserDebug(param, ...) qDebug("PARSER: " param, ##__VA_ARGS__) -#define parserTrace(param, ...) qTrace("PARSER: " param, ##__VA_ARGS__) +#define parserFatal(param, ...) qFatal("PARSER " param, ##__VA_ARGS__) +#define parserError(param, ...) qError("PARSER " param, ##__VA_ARGS__) +#define parserWarn(param, ...) qWarn ("PARSER " param, ##__VA_ARGS__) +#define parserInfo(param, ...) qInfo ("PARSER " param, ##__VA_ARGS__) +#define parserDebug(param, ...) qDebug("PARSER " param, ##__VA_ARGS__) +#define parserTrace(param, ...) qTrace("PARSER " param, ##__VA_ARGS__) #define ROWTS_PSEUDO_COLUMN_NAME "_rowts" #define C0_PSEUDO_COLUMN_NAME "_c0" diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index 5ff6e4f555..ada93fdf5d 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -2351,7 +2351,7 @@ static int32_t parseCsvFile(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pStmt } taosMemoryFree(pLine); - parserDebug("0x%" PRIx64 " %d rows have been parsed", pCxt->pComCxt->requestId, *pNumOfRows); + parserDebug("QID:0x%" PRIx64 ", %d rows have been parsed", pCxt->pComCxt->requestId, *pNumOfRows); if (TSDB_CODE_SUCCESS == code && 0 == (*pNumOfRows) && 0 == pStmt->totalRowsNum && (!TSDB_QUERY_HAS_TYPE(pStmt->insertType, TSDB_QUERY_TYPE_STMT_INSERT)) && !pStmt->fileProcessing) { @@ -2381,10 +2381,10 @@ static int32_t parseDataFromFileImpl(SInsertParseContext* pCxt, SVnodeModifyOpSt if (!pStmt->fileProcessing) { code = taosCloseFile(&pStmt->fp); if (TSDB_CODE_SUCCESS != code) { - parserWarn("0x%" PRIx64 " failed to close file.", pCxt->pComCxt->requestId); + parserWarn("QID:0x%" PRIx64 ", failed to close file.", pCxt->pComCxt->requestId); } } else { - parserDebug("0x%" PRIx64 " insert from csv. File is too large, do it in batches.", pCxt->pComCxt->requestId); + parserDebug("QID:0x%" PRIx64 ", insert from csv. File is too large, do it in batches.", pCxt->pComCxt->requestId); } if (pStmt->insertType != TSDB_QUERY_TYPE_FILE_INSERT) { return buildSyntaxErrMsg(&pCxt->msg, "keyword VALUES or FILE is exclusive", NULL); @@ -2676,7 +2676,7 @@ static int32_t checkTableClauseFirstToken(SInsertParseContext* pCxt, SVnodeModif if (pCxt->isStmtBind) { if (TK_NK_ID == pTbName->type || (tbNameAfterDbName != NULL && *(tbNameAfterDbName + 1) != '?')) { // In SQL statements, the table name has already been specified. - parserWarn("0x%" PRIx64 " table name is specified in sql, ignore the table name in bind param", + parserWarn("QID:0x%" PRIx64 ", table name is specified in sql, ignore the table name in bind param", pCxt->pComCxt->requestId); } } @@ -3194,14 +3194,14 @@ static int32_t buildInsertCatalogReq(SInsertParseContext* pCxt, SVnodeModifyOpSt static int32_t setNextStageInfo(SInsertParseContext* pCxt, SQuery* pQuery, SCatalogReq* pCatalogReq) { SVnodeModifyOpStmt* pStmt = (SVnodeModifyOpStmt*)pQuery->pRoot; if (pCxt->missCache) { - parserDebug("0x%" PRIx64 " %d rows of %d tables have been inserted before cache miss", pCxt->pComCxt->requestId, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert before cache miss", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_PARSE; return buildInsertCatalogReq(pCxt, pStmt, pCatalogReq); } - parserDebug("0x%" PRIx64 " %d rows of %d tables have been inserted", pCxt->pComCxt->requestId, pStmt->totalRowsNum, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_SCHEDULE; diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 9f9077d1b6..f2783480c1 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -370,7 +370,7 @@ int32_t qBindStmtStbColsValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bind code = tRowBuildFromBind(pBindInfos, boundInfo->numOfBound, colInOrder, *pTSchema, pCols, &pDataBlock->ordered, &pDataBlock->duplicateTs); - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: @@ -423,7 +423,7 @@ int32_t qBindStmtColsValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bind, c } } - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: @@ -472,7 +472,7 @@ int32_t qBindStmtSingleColValue(void* pBlock, SArray* pCols, TAOS_MULTI_BIND* bi IS_VAR_DATA_TYPE(pColSchema->type) ? pColSchema->bytes - VARSTR_HEADER_SIZE : -1, initCtxAsText, checkWKB); - qDebug("stmt col %d bind %d rows data", colIdx, rowNum); + parserDebug("stmt col %d bind %d rows data", colIdx, rowNum); _return: @@ -750,7 +750,7 @@ int32_t qBindStmtStbColsValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* bin code = tRowBuildFromBind2(pBindInfos, boundInfo->numOfBound, colInOrder, *pTSchema, pCols, &pDataBlock->ordered, &pDataBlock->duplicateTs); - qDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); + parserDebug("stmt all %d columns bind %d rows data", boundInfo->numOfBound, rowNum); _return: if (ncharBinds) { @@ -867,7 +867,7 @@ int32_t qBindStmtColsValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* bind, } } - qDebug("stmt2 all %d columns bind %d rows data as col format", boundInfo->numOfBound, rowNum); + parserDebug("stmt2 all %d columns bind %d rows data as col format", boundInfo->numOfBound, rowNum); _return: @@ -916,7 +916,7 @@ int32_t qBindStmtSingleColValue2(void* pBlock, SArray* pCols, TAOS_STMT2_BIND* b IS_VAR_DATA_TYPE(pColSchema->type) ? pColSchema->bytes - VARSTR_HEADER_SIZE : -1, initCtxAsText, checkWKB); - qDebug("stmt col %d bind %d rows data", colIdx, rowNum); + parserDebug("stmt col %d bind %d rows data", colIdx, rowNum); _return: @@ -1096,7 +1096,7 @@ int32_t qResetStmtColumns(SArray* pCols, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pCols, i); if (pCol == NULL) { - qError("qResetStmtColumns column is NULL"); + parserError("qResetStmtColumns column is NULL"); return terrno; } if (deepClear) { @@ -1116,7 +1116,7 @@ int32_t qResetStmtDataBlock(STableDataCxt* block, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pBlock->pData->aCol, i); if (pCol == NULL) { - qError("qResetStmtDataBlock column is NULL"); + parserError("qResetStmtDataBlock column is NULL"); return terrno; } if (deepClear) { diff --git a/source/libs/parser/src/parInsertUtil.c b/source/libs/parser/src/parInsertUtil.c index 1931f0803d..9c7ce74072 100644 --- a/source/libs/parser/src/parInsertUtil.c +++ b/source/libs/parser/src/parInsertUtil.c @@ -298,7 +298,7 @@ static int32_t createTableDataCxt(STableMeta* pTableMeta, SVCreateTbReq** pCreat } if (TSDB_CODE_SUCCESS == code) { *pOutput = pTableCxt; - qDebug("tableDataCxt created, code:%d, uid:%" PRId64 ", vgId:%d", code, pTableMeta->uid, pTableMeta->vgId); + parserDebug("uid:%" PRId64 ", create table data context, code:%d, vgId:%d", pTableMeta->uid, code, pTableMeta->vgId); } else { insDestroyTableDataCxt(pTableCxt); } @@ -478,7 +478,7 @@ static int32_t fillVgroupDataCxt(STableDataCxt* pTableCxt, SVgroupDataCxt* pVgCx taosMemoryFreeClear(pTableCxt->pData); } - qDebug("add tableDataCxt uid:%" PRId64 " to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); + parserDebug("uid:%" PRId64 ", add table data context to vgId:%d", pTableCxt->pMeta->uid, pVgCxt->vgId); return code; } @@ -572,7 +572,7 @@ int32_t insGetStmtTableVgUid(SHashObj* pAllVgHash, SStbInterlaceInfo* pBuildInfo code = catalogGetTableMeta((SCatalog*)pBuildInfo->pCatalog, &conn, &sname, &pTableMeta); if (TSDB_CODE_PAR_TABLE_NOT_EXIST == code) { - parserDebug("tb %s.%s not exist", sname.dbname, sname.tname); + parserDebug("tb:%s.%s not exist", sname.dbname, sname.tname); return code; } @@ -760,7 +760,7 @@ int32_t insMergeTableDataCxt(SHashObj* pTableHash, SArray** pVgDataBlocks, bool // skip the table has no data to insert // eg: import a csv without valid data // if (0 == taosArrayGetSize(pTableCxt->pData->aRowP)) { - // qWarn("no row in tableDataCxt uid:%" PRId64 " ", pTableCxt->pMeta->uid); + // parserWarn("no row in tableDataCxt uid:%" PRId64 " ", pTableCxt->pMeta->uid); // p = taosHashIterate(pTableHash, p); // continue; // } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 2fdba9bad9..d47391f358 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -533,7 +533,7 @@ static int32_t getViewMetaImpl(SParseContext* pParCxt, SParseMetaCache* pMetaCac } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetViewMeta error, code:%s, dbName:%s, viewName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetViewMeta error, code:%s, dbName:%s, viewName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -549,7 +549,7 @@ static int32_t getTargetNameImpl(SParseContext* pParCxt, SParseMetaCache* pMetaC code = TSDB_CODE_PAR_INTERNAL_ERROR; } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -565,7 +565,7 @@ static int32_t getTargetName(STranslateContext* pCxt, const SName* pName, char* code = getTargetNameImpl(pParCxt, pCxt->pMetaCache, pName, pTbName); } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -657,7 +657,7 @@ int32_t getTargetMetaImpl(SParseContext* pParCxt, SParseMetaCache* pMetaCache, c } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pParCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -673,7 +673,7 @@ static int32_t getTargetMeta(STranslateContext* pCxt, const SName* pName, STable code = getTargetMetaImpl(pParCxt, pCxt->pMetaCache, pName, pMeta, couldBeView); } if (TSDB_CODE_SUCCESS != code && TSDB_CODE_PAR_TABLE_NOT_EXIST != code) { - parserError("0x%" PRIx64 " catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -703,7 +703,7 @@ static int32_t getTableCfg(STranslateContext* pCxt, const SName* pName, STableCf } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogRefreshGetTableCfg error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogRefreshGetTableCfg error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -726,7 +726,7 @@ static int32_t refreshGetTableMeta(STranslateContext* pCxt, const char* pDbName, code = catalogRefreshGetTableMeta(pParCxt->pCatalog, &conn, &name, pMeta, false); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogRefreshGetTableMeta error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogRefreshGetTableMeta error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pDbName, pTableName); } return code; @@ -749,7 +749,7 @@ static int32_t getDBVgInfoImpl(STranslateContext* pCxt, const SName* pName, SArr } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBVgList error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetDBVgList error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), fullDbName); } return code; @@ -786,7 +786,7 @@ static int32_t getTableHashVgroupImpl(STranslateContext* pCxt, const SName* pNam } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", + parserError("QID:0x%" PRIx64 ", catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -811,7 +811,7 @@ static int32_t getDBVgVersion(STranslateContext* pCxt, const char* pDbFName, int } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBVgVersion error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetDBVgVersion error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pDbFName); } return code; @@ -842,7 +842,7 @@ static int32_t getDBCfg(STranslateContext* pCxt, const char* pDbName, SDbCfgInfo } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetDBCfg error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), + parserError("QID:0x%" PRIx64 ", catalogGetDBCfg error, code:%s, dbFName:%s", pCxt->pParseCxt->requestId, tstrerror(code), dbFname); } return code; @@ -871,7 +871,7 @@ static int32_t getUdfInfo(STranslateContext* pCxt, SFunctionNode* pFunc) { tFreeSFuncInfo(&funcInfo); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " catalogGetUdfInfo error, code:%s, funcName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetUdfInfo error, code:%s, funcName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pFunc->functionName); } return code; @@ -896,7 +896,7 @@ static int32_t getTableIndex(STranslateContext* pCxt, const SName* pName, SArray } } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " getTableIndex error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", getTableIndex error, code:%s, dbName:%s, tbName:%s", pCxt->pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } return code; @@ -915,7 +915,7 @@ static int32_t getDnodeList(STranslateContext* pCxt, SArray** pDnodes) { code = catalogGetDnodeList(pParCxt->pCatalog, &conn, pDnodes); } if (TSDB_CODE_SUCCESS != code) { - parserError("0x%" PRIx64 " getDnodeList error, code:%s", pCxt->pParseCxt->requestId, tstrerror(code)); + parserError("QID:0x%" PRIx64 ", getDnodeList error, code:%s", pCxt->pParseCxt->requestId, tstrerror(code)); } return code; } @@ -933,7 +933,7 @@ static int32_t getTableTsmas(STranslateContext* pCxt, const SName* pName, SArray code = catalogGetTableTsmas(pParCxt->pCatalog, &conn, pName, ppTsmas); } if (code) - parserError("0x%" PRIx64 " get table tsma for : %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, + parserError("QID:0x%" PRIx64 ", get table tsma for : %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, pName->tname, tstrerror(code)); return code; } @@ -951,7 +951,7 @@ static int32_t getTsma(STranslateContext* pCxt, const SName* pName, STableTSMAIn code = catalogGetTsma(pParCxt->pCatalog, &conn, pName, pTsma); } if (code) - parserError("0x%" PRIx64 " get tsma for: %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, + parserError("QID:0x%" PRIx64 ", get tsma for: %s.%s error, code:%s", pCxt->pParseCxt->requestId, pName->dbname, pName->tname, tstrerror(code)); return code; } @@ -7015,7 +7015,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* bool stableQuery = false; SEqCondTbNameTableInfo* pInfo = NULL; - qDebug("start to update stable vg for tbname optimize, aTableNum:%d", aTableNum); + parserDebug("start to update stable vg for tbname optimize, aTableNum:%d", aTableNum); for (int i = 0; i < aTableNum; ++i) { pInfo = taosArrayGet(aTables, i); int32_t numOfVgs = pInfo->pRealTable->pVgroupList->numOfVgroups; @@ -7084,7 +7084,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* } } - qDebug("before ctbname optimize, code:%d, aTableNum:%d, nTbls:%d, stableQuery:%d", code, aTableNum, nTbls, + parserDebug("before ctbname optimize, code:%d, aTableNum:%d, nTbls:%d, stableQuery:%d", code, aTableNum, nTbls, stableQuery); if (TSDB_CODE_SUCCESS == code && 1 == aTableNum && 1 == nTbls && stableQuery && NULL == pInfo->pRealTable->pTsmas) { @@ -13001,7 +13001,7 @@ static int32_t readFromFile(char* pName, int32_t* len, char** buf) { int64_t s = taosReadFile(tfile, *buf, *len); if (s != *len) { int32_t code = taosCloseFile(&tfile); - qError("failed to close file: %s in %s:%d, err: %s", pName, __func__, __LINE__, tstrerror(code)); + parserError("failed to close file: %s in %s:%d, err: %s", pName, __func__, __LINE__, tstrerror(code)); taosMemoryFreeClear(*buf); return TSDB_CODE_APP_ERROR; } @@ -15504,7 +15504,7 @@ static int32_t fillVgroupInfo(SParseContext* pParseCxt, const SName* pName, SVgr if (code == TSDB_CODE_SUCCESS) { *pVgInfo = vg; } else { - parserError("0x%" PRIx64 " catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pParseCxt->requestId, + parserError("QID:0x%" PRIx64 ", catalogGetTableHashVgroup error, code:%s, dbName:%s, tbName:%s", pParseCxt->requestId, tstrerror(code), pName->dbname, pName->tname); } @@ -15835,7 +15835,7 @@ int32_t serializeVgroupsCreateTableBatch(SHashObj* pVgroupHashmap, SArray** pOut code = serializeVgroupCreateTableBatch(pTbBatch, pBufArray); if (TSDB_CODE_SUCCESS != code) { - qError("failed to serialize create table batch msg, since:%s", tstrerror(code)); + parserError("failed to serialize create table batch msg, since:%s", tstrerror(code)); taosHashCancelIterate(pVgroupHashmap, pTbBatch); break; } @@ -15914,7 +15914,7 @@ static int32_t rewriteCreateTableFromFile(STranslateContext* pCxt, SQuery* pQuer taosHashClear(pModifyStmt->pVgroupsHashObj); if (TSDB_CODE_SUCCESS != code) { if (TSDB_CODE_INVALID_MSG_LEN == code) { - qError("maxInsertBatchRows may need to be reduced, current:%d", tsMaxInsertBatchRows); + parserError("maxInsertBatchRows may need to be reduced, current:%d", tsMaxInsertBatchRows); } taosHashCleanup(pModifyStmt->pVgroupsHashObj); return code; diff --git a/source/libs/planner/src/planner.c b/source/libs/planner/src/planner.c index ee460e2610..6706d22147 100644 --- a/source/libs/planner/src/planner.c +++ b/source/libs/planner/src/planner.c @@ -37,7 +37,7 @@ static int32_t dumpQueryPlan(SQueryPlan* pPlan) { char* pStr = NULL; code = nodesNodeToString((SNode*)pPlan, false, &pStr, NULL); if (TSDB_CODE_SUCCESS == code) { - planDebugL("QID:0x%" PRIx64 " Query Plan, JsonPlan: %s", pPlan->queryId, pStr); + planDebugL("QID:0x%" PRIx64 ", Query Plan, JsonPlan: %s", pPlan->queryId, pStr); taosMemoryFree(pStr); } return code; @@ -123,7 +123,7 @@ int32_t qContinuePlanPostQuery(void* pPostPlan) { } int32_t qSetSubplanExecutionNode(SSubplan* subplan, int32_t groupId, SDownstreamSourceNode* pSource) { - planDebug("QID:0x%" PRIx64 " set subplan execution node, groupId:%d", subplan->id.queryId, groupId); + planDebug("QID:0x%" PRIx64 ", set subplan execution node, groupId:%d", subplan->id.queryId, groupId); return setSubplanExecutionNode(subplan->pNode, groupId, pSource); } @@ -143,7 +143,7 @@ static void clearSubplanExecutionNode(SPhysiNode* pNode) { } void qClearSubplanExecutionNode(SSubplan* pSubplan) { - planDebug("QID:0x%" PRIx64 " clear subplan execution node, groupId:%d", pSubplan->id.queryId, pSubplan->id.groupId); + planDebug("QID:0x%" PRIx64 ", clear subplan execution node, groupId:%d", pSubplan->id.queryId, pSubplan->id.groupId); clearSubplanExecutionNode(pSubplan->pNode); } diff --git a/source/libs/qcom/src/queryUtil.c b/source/libs/qcom/src/queryUtil.c index 35f258c554..74bb75077c 100644 --- a/source/libs/qcom/src/queryUtil.c +++ b/source/libs/qcom/src/queryUtil.c @@ -343,7 +343,7 @@ void destroyQueryExecRes(SExecResult* pRes) { break; } default: - qError("invalid exec result for request type %d", pRes->msgType); + qError("invalid exec result for request type:%d", pRes->msgType); } } // clang-format on diff --git a/source/libs/qcom/src/querymsg.c b/source/libs/qcom/src/querymsg.c index 0ee61726e3..268e4b8259 100644 --- a/source/libs/qcom/src/querymsg.c +++ b/source/libs/qcom/src/querymsg.c @@ -45,7 +45,7 @@ int32_t queryBuildUseDbOutput(SUseDbOutput *pOut, SUseDbRsp *usedbRsp) { pOut->dbVgroup->hashSuffix = usedbRsp->hashSuffix; pOut->dbVgroup->stateTs = usedbRsp->stateTs; - qDebug("Got %d vgroup for db %s, vgVersion:%d, stateTs:%" PRId64, usedbRsp->vgNum, usedbRsp->db, usedbRsp->vgVersion, + qDebug("get %d vgroup for db %s, vgVersion:%d, stateTs:%" PRId64, usedbRsp->vgNum, usedbRsp->db, usedbRsp->vgVersion, usedbRsp->stateTs); if (usedbRsp->vgNum <= 0) { diff --git a/source/libs/qworker/inc/qwInt.h b/source/libs/qworker/inc/qwInt.h index 6474a1ab30..1d46dc6c61 100644 --- a/source/libs/qworker/inc/qwInt.h +++ b/source/libs/qworker/inc/qwInt.h @@ -414,29 +414,29 @@ extern SQueryMgmt gQueryMgmt; #define QW_SCH_DLOG(param, ...) qDebug("QW:%p clientId:%" PRIx64 " " param, mgmt, clientId, __VA_ARGS__) #define QW_TASK_ELOG(param, ...) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_WLOG(param, ...) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_DLOG(param, ...) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_DLOGL(param, ...) \ - qDebugL("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) + qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId, __VA_ARGS__) #define QW_TASK_ELOG_E(param) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_TASK_WLOG_E(param) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_TASK_DLOG_E(param) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, qId, sId, cId, tId, eId) + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, qId, sId, cId, tId, eId) #define QW_SCH_TASK_ELOG(param, ...) \ - qError("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, \ + qError("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, \ qId, cId, tId, eId, __VA_ARGS__) #define QW_SCH_TASK_WLOG(param, ...) \ - qWarn("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, qId, \ + qWarn("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, qId, \ cId, tId, eId, __VA_ARGS__) #define QW_SCH_TASK_DLOG(param, ...) \ - qDebug("QW:%p SID:%" PRId64 ",QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, mgmt, sId, \ + qDebug("QW:%p, SID:%" PRId64 ", QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d " param, mgmt, sId, \ qId, cId, tId, eId, __VA_ARGS__) #define QW_LOCK_DEBUG(...) \ diff --git a/source/libs/qworker/src/qwDbg.c b/source/libs/qworker/src/qwDbg.c index f4015ea28d..a3dd91d512 100644 --- a/source/libs/qworker/src/qwDbg.c +++ b/source/libs/qworker/src/qwDbg.c @@ -187,12 +187,12 @@ void qwDbgDumpJobsInfo(void) { int32_t jobIdx = 0; SQWJobInfo* pJob = (SQWJobInfo*)taosHashIterate(gQueryMgmt.pJobInfo, NULL); while (NULL != pJob) { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " the %dth remain job", pJob->memInfo->jobId, pJob->memInfo->clientId, jobIdx++); + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " the %dth remain job", pJob->memInfo->jobId, pJob->memInfo->clientId, jobIdx++); int32_t sessionIdx = 0; SQWSessionInfo* pSession = (SQWSessionInfo*)taosHashIterate(pJob->pSessions, NULL); while (NULL != pSession) { - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d the %dth remain session", + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d the %dth remain session", pSession->qId, pSession->sId, pSession->cId, pSession->tId, pSession->eId, sessionIdx++); pSession = (SQWSessionInfo*)taosHashIterate(pJob->pSessions, pSession); @@ -237,7 +237,7 @@ int32_t qwDbgBuildAndSendRedirectRsp(int32_t rspType, SRpcHandleInfo *pConn, int tmsgSendRsp(&rpcRsp); - qDebug("response %s msg, code: %s", TMSG_INFO(rspType), tstrerror(code)); + qDebug("response %s msg, code:%s", TMSG_INFO(rspType), tstrerror(code)); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index 1df8dcda95..14839b74b3 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -339,8 +339,8 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen, break; } - // Got data from sink - QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64 "", len); + // get data from sink + QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64, len); *dataLen += len + PAYLOAD_PREFIX_LEN; *pRawDataLen += rawLen + PAYLOAD_PREFIX_LEN; @@ -1699,18 +1699,18 @@ void qWorkerRetireJob(uint64_t jobId, uint64_t clientId, int32_t errCode) { SQWJobInfo *pJob = (SQWJobInfo *)taosHashGet(gQueryMgmt.pJobInfo, id, sizeof(id)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " CID:0x%" PRIx64 " fail to get job from job hash", jobId, clientId); + qError("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " fail to get job from job hash", jobId, clientId); return; } if (0 == atomic_val_compare_exchange_32(&pJob->errCode, 0, errCode) && 0 == atomic_val_compare_exchange_8(&pJob->retired, 0, 1)) { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " mark retired, errCode: 0x%x, allocSize:%" PRId64, jobId, clientId, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " mark retired, errCode: 0x%x, allocSize:%" PRId64, jobId, clientId, errCode, atomic_load_64(&pJob->memInfo->allocMemSize)); (void)qwRetireJob(pJob); } else { - qDebug("QID:0x%" PRIx64 " already retired, retired: %d, errCode: 0x%x, allocSize:%" PRId64, jobId, + qDebug("QID:0x%" PRIx64 ", already retired, retired: %d, errCode: 0x%x, allocSize:%" PRId64, jobId, atomic_load_8(&pJob->retired), atomic_load_32(&pJob->errCode), atomic_load_64(&pJob->memInfo->allocMemSize)); } } @@ -1741,10 +1741,10 @@ void qWorkerRetireJobs(int64_t retireSize, int32_t errCode) { jobNum++; - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " job mark retired in batch, retired:%d, usedSize:%" PRId64 ", retireSize:%" PRId64, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " job mark retired in batch, retired:%d, usedSize:%" PRId64 ", retireSize:%" PRId64, pJob->memInfo->jobId, pJob->memInfo->clientId, retired, aSize, retireSize); } else { - qDebug("QID:0x%" PRIx64 " CID:0x%" PRIx64 " job may already failed, errCode:%s", pJob->memInfo->jobId, pJob->memInfo->clientId, tstrerror(pJob->errCode)); + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 " job may already failed, errCode:%s", pJob->memInfo->jobId, pJob->memInfo->clientId, tstrerror(pJob->errCode)); } pJob = (SQWJobInfo *)taosHashIterate(gQueryMgmt.pJobInfo, pJob); diff --git a/source/libs/scheduler/inc/schInt.h b/source/libs/scheduler/inc/schInt.h index cdbeb2a2e0..4e44c52d70 100644 --- a/source/libs/scheduler/inc/schInt.h +++ b/source/libs/scheduler/inc/schInt.h @@ -462,23 +462,23 @@ extern SSchedulerMgmt schMgmt; (_task)->profile.endTs = us; \ } while (0) -#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ",SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) -#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 " " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_ELOG(param, ...) qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) +#define SCH_JOB_DLOG(param, ...) qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", " param, pJob->queryId, pJob->seriousId, __VA_ARGS__) #define SCH_TASK_ELOG(param, ...) \ - qError("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qError("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOG(param, ...) \ - qDebug("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebug("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_TLOG(param, ...) \ - qTrace("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qTrace("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_DLOGL(param, ...) \ - qDebugL("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qDebugL("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_TASK_WLOG(param, ...) \ - qWarn("QID:0x%" PRIx64 ",SID:%" PRId64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ + qWarn("QID:0x%" PRIx64 ", SID:%" PRId64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d, " param, pJob->queryId, pJob->seriousId, SCH_CLIENT_ID(pTask), \ SCH_TASK_ID(pTask), SCH_TASK_EID(pTask), __VA_ARGS__) #define SCH_SET_ERRNO(_err) \ diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index 25052d2c15..7dd43cb0d5 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -346,7 +346,7 @@ int32_t schValidateAndBuildJob(SQueryPlan *pDag, SSchJob *pJob) { pJob->levelNum = levelNum; SCH_RESET_JOB_LEVEL_IDX(pJob); - atomic_add_fetch_64(&pJob->seriousId, 1); + (void)atomic_add_fetch_64(&pJob->seriousId, 1); SCH_JOB_DLOG("job seriousId set to 0x%" PRIx64, pJob->seriousId); SSchLevel level = {0}; @@ -465,7 +465,7 @@ void schDumpJobExecRes(SSchJob *pJob, SExecResult *pRes) { pJob->execRes.res = NULL; SCH_UNLOCK(SCH_WRITE, &pJob->resLock); - SCH_JOB_DLOG("execRes dumped, code: %s", tstrerror(pRes->code)); + SCH_JOB_DLOG("execRes dumped, code:%s", tstrerror(pRes->code)); } int32_t schDumpJobFetchRes(SSchJob *pJob, void **pData) { @@ -519,9 +519,9 @@ int32_t schNotifyUserExecRes(SSchJob *pJob) { schDumpJobExecRes(pJob, pRes); - SCH_JOB_DLOG("sch start to invoke exec cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch start to invoke exec cb, code:%s", tstrerror(pJob->errCode)); (*pJob->userRes.execFp)(pRes, pJob->userRes.cbParam, atomic_load_32(&pJob->errCode)); - SCH_JOB_DLOG("sch end from exec cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch end from exec cb, code:%s", tstrerror(pJob->errCode)); return TSDB_CODE_SUCCESS; } @@ -534,9 +534,9 @@ int32_t schNotifyUserFetchRes(SSchJob *pJob) { atomic_store_32(&pJob->errCode, code); } - SCH_JOB_DLOG("sch start to invoke fetch cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch start to invoke fetch cb, code:%s", tstrerror(pJob->errCode)); (*pJob->userRes.fetchFp)(pRes, pJob->userRes.cbParam, atomic_load_32(&pJob->errCode)); - SCH_JOB_DLOG("sch end from fetch cb, code: %s", tstrerror(pJob->errCode)); + SCH_JOB_DLOG("sch end from fetch cb, code:%s", tstrerror(pJob->errCode)); return TSDB_CODE_SUCCESS; } @@ -758,7 +758,7 @@ void schFreeJobImpl(void *job) { uint64_t queryId = pJob->queryId; int64_t refId = pJob->refId; - qDebug("QID:0x%" PRIx64 " begin to free sch job, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qDebug("QID:0x%" PRIx64 ", begin to free sch job, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); schDropJobAllTasks(pJob); @@ -818,7 +818,7 @@ void schFreeJobImpl(void *job) { } } - qDebug("QID:0x%" PRIx64 " sch job freed, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qDebug("QID:0x%" PRIx64 ", sch job freed, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); } int32_t schJobFetchRows(SSchJob *pJob) { @@ -853,7 +853,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { int64_t refId = -1; SSchJob *pJob = taosMemoryCalloc(1, sizeof(SSchJob)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " calloc %d failed", pReq->pDag->queryId, (int32_t)sizeof(SSchJob)); + qError("QID:0x%" PRIx64 ", calloc %d failed", pReq->pDag->queryId, (int32_t)sizeof(SSchJob)); SCH_ERR_JRET(terrno); } @@ -863,7 +863,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { if (pReq->sql) { pJob->sql = taosStrdup(pReq->sql); if (NULL == pJob->sql) { - qError("QID:0x%" PRIx64 " strdup sql %s failed", pReq->pDag->queryId, pReq->sql); + qError("QID:0x%" PRIx64 ", strdup sql %s failed", pReq->pDag->queryId, pReq->sql); SCH_ERR_JRET(terrno); } } @@ -871,7 +871,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { if (pReq->allocatorRefId > 0) { pJob->allocatorRefId = nodesMakeAllocatorWeakRef(pReq->allocatorRefId); if (pJob->allocatorRefId <= 0) { - qError("QID:0x%" PRIx64 " nodesMakeAllocatorWeakRef failed", pReq->pDag->queryId); + qError("QID:0x%" PRIx64 ", nodesMakeAllocatorWeakRef failed", pReq->pDag->queryId); SCH_ERR_JRET(terrno); } } @@ -883,11 +883,11 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { pJob->pWorkerCb = pReq->pWorkerCb; if (pReq->pNodeList == NULL || taosArrayGetSize(pReq->pNodeList) <= 0) { - qDebug("QID:0x%" PRIx64 " input exec nodeList is empty", pReq->pDag->queryId); + qDebug("QID:0x%" PRIx64 ", input exec nodeList is empty", pReq->pDag->queryId); } else { pJob->nodeList = taosArrayDup(pReq->pNodeList, NULL); if (NULL == pJob->nodeList) { - qError("QID:0x%" PRIx64 " taosArrayDup failed, origNum:%d", pReq->pDag->queryId, + qError("QID:0x%" PRIx64 ", taosArrayDup failed, origNum:%d", pReq->pDag->queryId, (int32_t)taosArrayGetSize(pReq->pNodeList)); SCH_ERR_JRET(terrno); } @@ -950,7 +950,7 @@ _return: int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 " sch job refId 0x%" PRIx64 " started", pReq->pDag->queryId, pJob->refId); + qDebug("QID:0x%" PRIx64 ", sch job refId 0x%" PRIx64 " started", pReq->pDag->queryId, pJob->refId); SCH_ERR_RET(schLaunchJob(pJob)); @@ -958,7 +958,7 @@ int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { SCH_JOB_DLOG("sync wait for rsp now, job status:%s", SCH_GET_JOB_STATUS_STR(pJob)); code = tsem_wait(&pJob->rspSem); if (code) { - qError("QID:0x%" PRIx64 " tsem_wait sync rspSem failed, error:%s", pReq->pDag->queryId, tstrerror(code)); + qError("QID:0x%" PRIx64 ", tsem_wait sync rspSem failed, error:%s", pReq->pDag->queryId, tstrerror(code)); SCH_ERR_RET(code); } } @@ -1023,7 +1023,7 @@ int32_t schResetJobForRetry(SSchJob *pJob, SSchTask *pTask, int32_t rspCode, boo SCH_ERR_RET(schChkResetJobRetry(pJob, rspCode)); - atomic_add_fetch_64(&pJob->seriousId, 1); + (void)atomic_add_fetch_64(&pJob->seriousId, 1); int32_t code = 0; int32_t numOfLevels = taosArrayGetSize(pJob->levels); @@ -1246,7 +1246,7 @@ int32_t schProcessOnCbBegin(SSchJob **job, SSchTask **task, uint64_t qId, int64_ (void)schAcquireJob(rId, &pJob); if (NULL == pJob) { - qWarn("QID:0x%" PRIx64 ",TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, qId, tId, rId); + qWarn("QID:0x%" PRIx64 ", TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, qId, tId, rId); SCH_ERR_RET(TSDB_CODE_QRY_JOB_NOT_EXIST); } diff --git a/source/libs/scheduler/src/schRemote.c b/source/libs/scheduler/src/schRemote.c index ec9913d6ac..f6b7c5fefa 100644 --- a/source/libs/scheduler/src/schRemote.c +++ b/source/libs/scheduler/src/schRemote.c @@ -489,7 +489,8 @@ int32_t schHandleCallback(void *param, SDataBuf *pMsg, int32_t rspCode) { SSchTask *pTask = NULL; SSchJob *pJob = NULL; - qDebug("begin to handle rsp msg, type:%s, handle:%p, code:%s", TMSG_INFO(pMsg->msgType), pMsg->handle, + int64_t qid = pParam->queryId; + qDebug("QID:0x%" PRIx64 ", begin to handle rsp msg, type:%s, handle:%p, code:%s", qid,TMSG_INFO(pMsg->msgType), pMsg->handle, tstrerror(rspCode)); SCH_ERR_JRET(schProcessOnCbBegin(&pJob, &pTask, pParam->queryId, pParam->refId, pParam->taskId)); @@ -503,7 +504,7 @@ _return: taosMemoryFreeClear(pMsg->pData); taosMemoryFreeClear(pMsg->pEpSet); - qDebug("end to handle rsp msg, type:%s, handle:%p, code:%s", TMSG_INFO(pMsg->msgType), pMsg->handle, + qDebug("QID:0x%" PRIx64 ", end to handle rsp msg, type:%s, handle:%p, code:%s", qid, TMSG_INFO(pMsg->msgType), pMsg->handle, tstrerror(rspCode)); SCH_RET(code); @@ -511,7 +512,7 @@ _return: int32_t schHandleDropCallback(void *param, SDataBuf *pMsg, int32_t code) { SSchTaskCallbackParam *pParam = (SSchTaskCallbackParam *)param; - qDebug("QID:0x%" PRIx64 ",SID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 " drop task rsp received, code:0x%x", + qDebug("QID:0x%" PRIx64 ", SID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " drop task rsp received, code:0x%x", pParam->queryId, pParam->seriousId, pParam->clientId, pParam->taskId, code); // called if drop task rsp received code (void)rpcReleaseHandle(pMsg->handle, TAOS_CONN_CLIENT, 0); // ignore error @@ -528,7 +529,7 @@ int32_t schHandleDropCallback(void *param, SDataBuf *pMsg, int32_t code) { int32_t schHandleNotifyCallback(void *param, SDataBuf *pMsg, int32_t code) { SSchTaskCallbackParam *pParam = (SSchTaskCallbackParam *)param; - qDebug("QID:0x%" PRIx64 ",SID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 " task notify rsp received, code:0x%x", + qDebug("QID:0x%" PRIx64 ", SID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " task notify rsp received, code:0x%x", pParam->queryId, pParam->seriousId, pParam->clientId, pParam->taskId, code); if (pMsg) { taosMemoryFreeClear(pMsg->pData); diff --git a/source/libs/scheduler/src/schStatus.c b/source/libs/scheduler/src/schStatus.c index 9792af22f6..1bd91093b5 100644 --- a/source/libs/scheduler/src/schStatus.c +++ b/source/libs/scheduler/src/schStatus.c @@ -70,7 +70,7 @@ int32_t schHandleOpBeginEvent(int64_t jobId, SSchJob** job, SCH_OP_TYPE type, SS SSchJob* pJob = NULL; (void)schAcquireJob(jobId, &pJob); if (NULL == pJob) { - qDebug("Acquire sch job failed, may be dropped, jobId:0x%" PRIx64, jobId); + qDebug("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", jobId); SCH_ERR_RET(TSDB_CODE_SCH_JOB_NOT_EXISTS); } diff --git a/source/libs/scheduler/src/schTask.c b/source/libs/scheduler/src/schTask.c index 0e76e21aff..a4edda8d60 100644 --- a/source/libs/scheduler/src/schTask.c +++ b/source/libs/scheduler/src/schTask.c @@ -1014,7 +1014,7 @@ int32_t schProcessOnTaskStatusRsp(SQueryNodeEpId *pEpId, SArray *pStatusList) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ",EID:%d task status in server: %s", pStatus->queryId, + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", EID:%d task status in server: %s", pStatus->queryId, pStatus->clientId, pStatus->taskId, pStatus->execId, jobTaskStatusStr(pStatus->status)); if (schProcessOnCbBegin(&pJob, &pTask, pStatus->queryId, pStatus->refId, pStatus->taskId)) { @@ -1061,13 +1061,13 @@ int32_t schHandleExplainRes(SArray *pExplainRes) { continue; } - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ", begin to handle LOCAL explain rsp msg", + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", begin to handle LOCAL explain rsp msg", localRsp->qId, localRsp->cId, localRsp->tId); pJob = NULL; (void)schAcquireJob(localRsp->rId, &pJob); if (NULL == pJob) { - qWarn("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, + qWarn("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 " job no exist, may be dropped, refId:0x%" PRIx64, localRsp->qId, localRsp->cId, localRsp->tId, localRsp->rId); SCH_ERR_JRET(TSDB_CODE_QRY_JOB_NOT_EXIST); } @@ -1087,7 +1087,7 @@ int32_t schHandleExplainRes(SArray *pExplainRes) { (void)schReleaseJob(pJob->refId); - qDebug("QID:0x%" PRIx64 ",CID:0x%" PRIx64 ",TID:0x%" PRIx64 ", end to handle LOCAL explain rsp msg, code:%x", + qDebug("QID:0x%" PRIx64 ", CID:0x%" PRIx64 ", TID:0x%" PRIx64 ", end to handle LOCAL explain rsp msg, code:%x", localRsp->qId, localRsp->cId, localRsp->tId, code); SCH_ERR_JRET(code); diff --git a/source/libs/scheduler/src/schUtil.c b/source/libs/scheduler/src/schUtil.c index 1eb7dd5281..8b4225f98f 100644 --- a/source/libs/scheduler/src/schUtil.c +++ b/source/libs/scheduler/src/schUtil.c @@ -23,7 +23,7 @@ #include "trpc.h" FORCE_INLINE int32_t schAcquireJob(int64_t refId, SSchJob **ppJob) { - qDebug("sch acquire jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch acquire", refId); *ppJob = (SSchJob *)taosAcquireRef(schMgmt.jobRef, refId); if (NULL == *ppJob) { return terrno; @@ -37,7 +37,7 @@ FORCE_INLINE int32_t schReleaseJob(int64_t refId) { return TSDB_CODE_SUCCESS; } - qDebug("sch release jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch release", refId); return taosReleaseRef(schMgmt.jobRef, refId); } @@ -46,7 +46,7 @@ FORCE_INLINE int32_t schReleaseJobEx(int64_t refId, int32_t *released) { return TSDB_CODE_SUCCESS; } - qDebug("sch release ex jobId:0x%" PRIx64, refId); + qTrace("jobId:0x%" PRIx64 ", sch release ex", refId); return taosReleaseRefEx(schMgmt.jobRef, refId, released); } @@ -122,7 +122,7 @@ int32_t schRemoveHbConnection(SSchJob *pJob, SSchTask *pTask, SQueryNodeEpId *ep SSchHbTrans *hb = taosHashGet(schMgmt.hbConnections, epId, sizeof(SQueryNodeEpId)); if (NULL == hb) { SCH_UNLOCK(SCH_WRITE, &schMgmt.hbLock); - SCH_TASK_ELOG("nodeId %d fqdn %s port %d not in hb connections", epId->nodeId, epId->ep.fqdn, epId->ep.port); + SCH_TASK_ELOG("nodeId:%d fqdn:%s port:%d not in hb connections", epId->nodeId, epId->ep.fqdn, epId->ep.port); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index 21659d9cd5..541a0b99f7 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -62,7 +62,7 @@ int32_t schedulerInit() { } int32_t schedulerExecJob(SSchedulerReq *pReq, int64_t *pJobId) { - qDebug("scheduler %s exec job start", pReq->syncReq ? "SYNC" : "ASYNC"); + qDebug("QID:0x%" PRIx64 ", scheduler %s exec job will start", pReq->pConn->requestId, pReq->syncReq ? "SYNC" : "ASYNC"); int32_t code = 0; SSchJob *pJob = NULL; @@ -111,7 +111,7 @@ int32_t schedulerGetTasksStatus(int64_t jobId, SArray *pSub) { for (int32_t m = 0; m < pLevel->taskNum; ++m) { SSchTask *pTask = taosArrayGet(pLevel->subTasks, m); if (NULL == pTask) { - qError("failed to get task %d, total: %d", m, pLevel->taskNum); + qError("failed to get task %d, total:%d", m, pLevel->taskNum); SCH_ERR_JRET(TSDB_CODE_SCH_INTERNAL_ERROR); } @@ -120,7 +120,7 @@ int32_t schedulerGetTasksStatus(int64_t jobId, SArray *pSub) { TAOS_STRCPY(subDesc.status, jobTaskStatusStr(pTask->status)); if (NULL == taosArrayPush(pSub, &subDesc)) { - qError("taosArrayPush task %d failed, error: %x, ", m, terrno); + qError("taosArrayPush task %d failed, error:0x%x", m, terrno); SCH_ERR_JRET(terrno); } } @@ -167,11 +167,11 @@ void schedulerFreeJob(int64_t *jobId, int32_t errCode) { SSchJob *pJob = NULL; (void)schAcquireJob(*jobId, &pJob); if (NULL == pJob) { - qDebug("Acquire sch job failed, may be dropped, jobId:0x%" PRIx64, *jobId); + qDebug("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", *jobId); return; } - SCH_JOB_DLOG("start to free job 0x%" PRIx64 ", code:%s", *jobId, tstrerror(errCode)); + SCH_JOB_DLOG("jobId:0x%" PRIx64 ", start to free, code:%s", *jobId, tstrerror(errCode)); (void)schHandleJobDrop(pJob, errCode); // ignore any error int32_t released = false; @@ -224,7 +224,7 @@ int32_t schedulerValidatePlan(SQueryPlan* pPlan) { int32_t code = TSDB_CODE_SUCCESS; SSchJob *pJob = taosMemoryCalloc(1, sizeof(SSchJob)); if (NULL == pJob) { - qError("QID:0x%" PRIx64 " calloc %d failed", pPlan->queryId, (int32_t)sizeof(SSchJob)); + qError("QID:0x%" PRIx64 ", calloc %d failed", pPlan->queryId, (int32_t)sizeof(SSchJob)); SCH_ERR_RET(terrno); } diff --git a/source/libs/stream/src/streamCheckStatus.c b/source/libs/stream/src/streamCheckStatus.c index f880526541..ebb13654b7 100644 --- a/source/libs/stream/src/streamCheckStatus.c +++ b/source/libs/stream/src/streamCheckStatus.c @@ -471,7 +471,7 @@ int32_t streamTaskUpdateCheckInfo(STaskCheckInfo* pInfo, int32_t taskId, int32_t } streamMutexUnlock(&pInfo->checkInfoLock); - stError("s-task:%s unexpected check rsp msg, invalid downstream task:0x%x,QID:%" PRIx64 " discarded", id, taskId, + stError("s-task:%s unexpected check rsp msg, invalid downstream task:0x%x, QID:%" PRIx64 " discarded", id, taskId, reqId); return TSDB_CODE_FAILED; } diff --git a/source/libs/stream/src/streamDispatch.c b/source/libs/stream/src/streamDispatch.c index 41773ee42d..0aa9d6fbb4 100644 --- a/source/libs/stream/src/streamDispatch.c +++ b/source/libs/stream/src/streamDispatch.c @@ -134,7 +134,7 @@ int32_t streamTaskBroadcastRetrieveReq(SStreamTask* pTask, SStreamRetrieveReq* r stError("s-task:%s (child %d) failed to send retrieve req to task:0x%x (vgId:%d) QID:0x%" PRIx64 " code:%s", pTask->id.idStr, pTask->info.selfChildId, pEpInfo->taskId, pEpInfo->nodeId, req->reqId, tstrerror(code)); } else { - stDebug("s-task:%s (child %d) send retrieve req to task:0x%x (vgId:%d),QID:0x%" PRIx64, pTask->id.idStr, + stDebug("s-task:%s (child %d) send retrieve req to task:0x%x (vgId:%d), QID:0x%" PRIx64, pTask->id.idStr, pTask->info.selfChildId, pEpInfo->taskId, pEpInfo->nodeId, req->reqId); } } diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index ee34648a47..22a14c29ed 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -122,7 +122,7 @@ static int32_t doAppendPullOverBlock(SStreamTask* pTask, int32_t* pNumOfBlocks, pTask->info.selfChildId, pRetrieveBlock->reqId); } else { code = terrno; - stError("s-task:%s failed to append pull over block for retrieve data, QID:0x%" PRIx64" code:%s", pTask->id.idStr, + stError("s-task:%s failed to append pull over block for retrieve data, QID:0x%" PRIx64 " code:%s", pTask->id.idStr, pRetrieveBlock->reqId, tstrerror(code)); } diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index f9bb48e1e0..cbdd2cd5c8 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -2922,12 +2922,12 @@ void syncNodeLogConfigInfo(SSyncNode* ths, SSyncCfg* cfg, char* str) { ths->vgId, str, ths->replicaNum, ths->peersNum, ths->raftCfg.lastConfigIndex, ths->raftCfg.cfg.changeVersion, ths->restoreFinish); - sInfo("vgId:%d, %s, myNodeInfo, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, + sInfo("vgId:%d, %s, myNodeInfo, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, ths->myNodeInfo.clusterId, ths->myNodeInfo.nodeId, ths->myNodeInfo.nodeFqdn, ths->myNodeInfo.nodePort, ths->myNodeInfo.nodeRole); for (int32_t i = 0; i < ths->peersNum; ++i) { - sInfo("vgId:%d, %s, peersNodeInfo%d, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, + sInfo("vgId:%d, %s, peersNodeInfo%d, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, ths->peersNodeInfo[i].clusterId, ths->peersNodeInfo[i].nodeId, ths->peersNodeInfo[i].nodeFqdn, ths->peersNodeInfo[i].nodePort, ths->peersNodeInfo[i].nodeRole); } @@ -2951,7 +2951,7 @@ void syncNodeLogConfigInfo(SSyncNode* ths, SSyncCfg* cfg, char* str) { } for (int32_t i = 0; i < ths->raftCfg.cfg.totalReplicaNum; ++i) { - sInfo("vgId:%d, %s, nodeInfo%d, clusterId:%" PRId64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, + sInfo("vgId:%d, %s, nodeInfo%d, clusterId:0x%" PRIx64 ", nodeId:%d, Fqdn:%s, port:%d, role:%d", ths->vgId, str, i, ths->raftCfg.cfg.nodeInfo[i].clusterId, ths->raftCfg.cfg.nodeInfo[i].nodeId, ths->raftCfg.cfg.nodeInfo[i].nodeFqdn, ths->raftCfg.cfg.nodeInfo[i].nodePort, ths->raftCfg.cfg.nodeInfo[i].nodeRole); diff --git a/source/libs/transport/inc/transLog.h b/source/libs/transport/inc/transLog.h index 8b8cc3ae72..81306931cc 100644 --- a/source/libs/transport/inc/transLog.h +++ b/source/libs/transport/inc/transLog.h @@ -32,12 +32,12 @@ extern "C" { #define tTrace(...) { if (rpcDebugFlag & DEBUG_TRACE) { taosPrintLog("RPC TRACE ", DEBUG_TRACE, rpcDebugFlag, __VA_ARGS__); }} #define tDump(x, y) { if (rpcDebugFlag & DEBUG_DUMP) { taosDumpData((unsigned char *)x, y); } } -#define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ",QID:%s", __VA_ARGS__, buf);}} while(0) -#define tGFatal(param, ...) do {if (rpcDebugFlag & DEBUG_FATAL){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tFatal(param ",QID:%s", __VA_ARGS__, buf); }} while (0) -#define tGError(param, ...) do { if (rpcDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tError(param ",QID:%s", __VA_ARGS__, buf);} } while(0) -#define tGWarn(param, ...) do { if (rpcDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tWarn(param ",QID:%s", __VA_ARGS__, buf); }} while(0) -#define tGInfo(param, ...) do { if (rpcDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tInfo(param ",QID:%s", __VA_ARGS__, buf); }} while(0) -#define tGDebug(param,...) do {if (rpcDebugFlag & DEBUG_DEBUG){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tDebug(param ",QID:%s", __VA_ARGS__, buf); }} while(0) +#define tGTrace(param, ...) do { if (rpcDebugFlag & DEBUG_TRACE){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tTrace(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGFatal(param, ...) do {if (rpcDebugFlag & DEBUG_FATAL) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tFatal(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGError(param, ...) do { if (rpcDebugFlag & DEBUG_ERROR){ char buf[40] = {0}; TRACE_TO_STR(trace, buf); tError(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGWarn(param, ...) do { if (rpcDebugFlag & DEBUG_WARN) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tWarn(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGInfo(param, ...) do { if (rpcDebugFlag & DEBUG_INFO) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tInfo(param ", QID:%s", __VA_ARGS__, buf);}} while(0) +#define tGDebug(param,...) do {if (rpcDebugFlag & DEBUG_DEBUG) { char buf[40] = {0}; TRACE_TO_STR(trace, buf); tDebug(param ", QID:%s", __VA_ARGS__, buf);}} while(0) // clang-format on diff --git a/source/libs/transport/src/thttp.c b/source/libs/transport/src/thttp.c index deb5f07436..4d153c5443 100644 --- a/source/libs/transport/src/thttp.c +++ b/source/libs/transport/src/thttp.c @@ -235,7 +235,7 @@ static FORCE_INLINE int32_t taosBuildDstAddr(const char* server, uint16_t port, uint32_t ip = 0; int32_t code = taosGetIpv4FromFqdn(server, &ip); if (code) { - tError("http-report failed to resolving domain names %s, reason: %s", server, tstrerror(code)); + tError("http-report failed to resolving domain names %s, reason:%s", server, tstrerror(code)); return TSDB_CODE_RPC_FQDN_ERROR; } char buf[TD_IP_LEN] = {0}; @@ -332,7 +332,7 @@ static void httpMayDiscardMsg(SHttpModule* http, SAsyncItem* item) { QUEUE_REMOVE(h); msg = QUEUE_DATA(h, SHttpMsg, q); if (!msg->quit) { - tError("http-report failed to report chanId:%" PRId64 ",seq:%" PRId64 ", reason: %s", msg->chanId, msg->seq, + tError("http-report failed to report chanId:%" PRId64 ",seq:%" PRId64 ", reason:%s", msg->chanId, msg->seq, tstrerror(TSDB_CODE_HTTP_MODULE_QUIT)); httpDestroyMsg(msg); } else { @@ -471,7 +471,7 @@ static void clientSentCb(uv_write_t* req, int32_t status) { STUB_RAND_NETWORK_ERR(status); SHttpClient* cli = req->data; if (status != 0) { - tError("http-report failed to send data, reason: %s, dst:%s:%d, chanId:%" PRId64 ", seq:%" PRId64 "", + tError("http-report failed to send data, reason:%s, dst:%s:%d, chanId:%" PRId64 ", seq:%" PRId64 "", uv_strerror(status), cli->addr, cli->port, cli->chanId, cli->seq); if (!uv_is_closing((uv_handle_t*)&cli->tcp)) { uv_close((uv_handle_t*)&cli->tcp, clientCloseCb); @@ -725,7 +725,7 @@ static void httpHandleReq(SHttpMsg* msg) { END: if (ignore == false) { - tError("http-report failed to report to addr: %s:%d, chanId:%" PRId64 ",seq:%" PRId64 " reason:%s", msg->server, + tError("http-report failed to report to addr:%s:%d, chanId:%" PRId64 ",seq:%" PRId64 " reason:%s", msg->server, msg->port, chanId, msg->seq, tstrerror(code)); } httpDestroyMsg(msg); @@ -937,12 +937,12 @@ int64_t taosInitHttpChan() { } void taosDestroyHttpChan(int64_t chanId) { - tDebug("http-report send quit, chanId: %" PRId64 "", chanId); + tDebug("http-report send quit, chanId:%" PRId64, chanId); int ret = 0; SHttpModule* load = taosAcquireRef(httpRefMgt, chanId); if (load == NULL) { - tError("http-report failed to destroy chanId %" PRId64 ", reason:%s", chanId, tstrerror(terrno)); + tError("http-report failed to destroy chanId:%" PRId64 ", reason:%s", chanId, tstrerror(terrno)); ret = terrno; return; } diff --git a/source/libs/transport/src/trans.c b/source/libs/transport/src/trans.c index b3b69d81c0..6507476713 100644 --- a/source/libs/transport/src/trans.c +++ b/source/libs/transport/src/trans.c @@ -160,7 +160,7 @@ void* rpcMallocCont(int64_t contLen) { tError("failed to malloc msg, size:%" PRId64, size); return NULL; } else { - tTrace("malloc mem:%p size:%" PRId64, start, size); + tTrace("cont:%p, rpc malloc size:%" PRId64, start, size); } return start + TRANS_MSG_OVERHEAD; diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 3b84fc4574..000e12cc66 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -388,7 +388,7 @@ int32_t cliGetConnTimer(SCliThrd* pThrd, SCliConn* pConn) { tDebug("no available timer, create a timer %p", timer); int ret = uv_timer_init(pThrd->loop, timer); if (ret != 0) { - tError("conn %p failed to init timer %p since %s", pConn, timer, uv_err_name(ret)); + tError("conn:%p, failed to init timer %p since %s", pConn, timer, uv_err_name(ret)); return TSDB_CODE_THIRDPARTY_ERROR; } } @@ -400,11 +400,11 @@ void cliResetConnTimer(SCliConn* conn) { SCliThrd* pThrd = conn->hostThrd; if (conn->timer) { if (uv_is_active((uv_handle_t*)conn->timer)) { - tDebug("%s conn %p stop timer", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, stop timer", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(uv_timer_stop(conn->timer)); } if (taosArrayPush(pThrd->timerList, &conn->timer) == NULL) { - tError("%s conn %p failed to push timer %p to list since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, + tError("%s conn:%p, failed to push timer %p to list since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, tstrerror(terrno)); } conn->timer->data = NULL; @@ -435,7 +435,7 @@ void cliConnMayUpdateTimer(SCliConn* conn, int64_t timeout) { } int ret = uv_timer_start(conn->timer, cliConnTimeout__checkReq, timeout, 0); if (ret != 0) { - tError("%s conn %p failed to start timer %p since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, + tError("%s conn:%p, failed to start timer %p since %s", CONN_GET_INST_LABEL(conn), conn, conn->timer, uv_err_name(ret)); } } @@ -493,7 +493,7 @@ int8_t cliMayRecycleConn(SCliConn* conn) { SCliThrd* pThrd = conn->hostThrd; STrans* pInst = pThrd->pInst; - tTrace("%s conn %p in-process req summary:reqsToSend:%d, reqsSentOut:%d, statusTableSize:%d", + tTrace("%s conn:%p, in-process req summary:reqsToSend:%d, reqsSentOut:%d, statusTableSize:%d", CONN_GET_INST_LABEL(conn), conn, transQueueSize(&conn->reqsToSend), transQueueSize(&conn->reqsSentOut), taosHashGetSize(conn->pQTable)); @@ -503,14 +503,14 @@ int8_t cliMayRecycleConn(SCliConn* conn) { conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code == TSDB_CODE_RPC_ASYNC_IN_PROCESS) { - tDebug("%s conn %p failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, + tDebug("%s conn:%p, failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); return 1; } else { if (code != 0) { - tDebug("%s conn %p failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, + tDebug("%s conn:%p, failed to remove conn from heap cache since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); return 0; } @@ -519,10 +519,10 @@ int8_t cliMayRecycleConn(SCliConn* conn) { return 1; } else if ((transQueueSize(&conn->reqsToSend) == 0) && (transQueueSize(&conn->reqsSentOut) == 0) && (taosHashGetSize(conn->pQTable) != 0)) { - tDebug("%s conn %p do balance directly", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, do balance directly", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); } else { - tTrace("%s conn %p may do balance", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, may do balance", CONN_GET_INST_LABEL(conn), conn); TAOS_UNUSED(transHeapMayBalance(conn->heap, conn)); } return 0; @@ -573,12 +573,12 @@ int8_t cliMayNotifyUserOnRecvReleaseExcept(SCliConn* conn, STransMsgHead* pHead, STraceId* trace = &pHead->traceId; code = cliBuildExceptResp(pThrd, pReq, &resp); if (code != 0) { - tGWarn("%s conn %p failed to build except resp for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tGWarn("%s conn:%p, failed to build except resp for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } code = cliNotifyCb(conn, NULL, &resp); if (code != 0) { - tGWarn("%s conn %p failed to notify user for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tGWarn("%s conn:%p, failed to notify user for req:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } @@ -593,7 +593,7 @@ int32_t cliHandleState_mayHandleReleaseResp(SCliConn* conn, STransMsgHead* pHead int64_t qId = taosHton64(pHead->qid); STraceId* trace = &pHead->traceId; int64_t seqNum = taosHton64(pHead->seqNum); - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), conn->dst, conn->src, pHead->msgLen, seqNum, qId); @@ -602,12 +602,12 @@ int32_t cliHandleState_mayHandleReleaseResp(SCliConn* conn, STransMsgHead* pHead code = taosHashRemove(conn->pQTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("%s conn %p failed to release req:%" PRId64 " from conn", CONN_GET_INST_LABEL(conn), conn, qId); + tDebug("%s conn:%p, failed to release req:%" PRId64 " from conn", CONN_GET_INST_LABEL(conn), conn, qId); } code = taosHashRemove(pThrd->pIdConnTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("%s conn %p failed to release req:%" PRId64 " from thrd ", CONN_GET_INST_LABEL(conn), conn, qId); + tDebug("%s conn:%p, failed to release req:%" PRId64 " from thrd ", CONN_GET_INST_LABEL(conn), conn, qId); } tDebug("%s %p reqToSend:%d, sentOut:%d", CONN_GET_INST_LABEL(conn), conn, transQueueSize(&conn->reqsToSend), @@ -653,7 +653,7 @@ int32_t cliHandleState_mayCreateAhandle(SCliConn* conn, STransMsgHead* pHead, ST pCtx->st = taosGetTimestampUs(); STraceId* trace = &pHead->traceId; pResp->info.ahandle = transCtxDumpVal(pCtx, pHead->msgType); - tGDebug("%s conn %p %s received from %s, local info:%s, sid:%" PRId64 ", create ahandle %p by %s", + tGDebug("%s conn:%p, %s received from %s, local info:%s, sid:%" PRId64 ", create ahandle %p by %s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), conn->dst, conn->src, qId, pResp->info.ahandle, TMSG_INFO(pHead->msgType)); return 0; @@ -677,17 +677,17 @@ void cliHandleResp(SCliConn* conn) { int32_t msgLen = transDumpFromBuffer(&conn->readBuf, (char**)&pHead, 0); if (msgLen < 0) { taosMemoryFree(pHead); - tWarn("%s conn %p recv invalid packet", CONN_GET_INST_LABEL(conn), conn); + tWarn("%s conn:%p, recv invalid packet", CONN_GET_INST_LABEL(conn), conn); // TODO: notify cb code = pThrd->notifyExceptCb(pThrd, NULL, NULL); if (code != 0) { - tError("%s conn %p failed to notify user since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to notify user since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } return; } if ((code = transDecompressMsg((char**)&pHead, &msgLen)) < 0) { - tDebug("%s conn %p recv invalid packet, failed to decompress", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, recv invalid packet, failed to decompress", CONN_GET_INST_LABEL(conn), conn); // TODO: notify cb return; } @@ -712,7 +712,7 @@ void cliHandleResp(SCliConn* conn) { return; } if (code != 0) { - tWarn("%s conn %p recv unexpected packet, msgType:%s, seqNum:%" PRId64 ", sid:%" PRId64 + tWarn("%s conn:%p, recv unexpected packet, msgType:%s, seqNum:%" PRId64 ", sid:%" PRId64 ", the sever may sends repeated response since %s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(pHead->msgType), seq, qId, tstrerror(code)); // TODO: notify cb @@ -725,7 +725,7 @@ void cliHandleResp(SCliConn* conn) { } else { code = cliHandleState_mayUpdateStateTime(conn, pReq); if (code != 0) { - tDebug("%s conn %p failed to update state time sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, + tDebug("%s conn:%p, failed to update state time sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, qId, tstrerror(code)); } } @@ -733,7 +733,7 @@ void cliHandleResp(SCliConn* conn) { code = cliBuildRespFromCont(pReq, &resp, pHead); STraceId* trace = &resp.info.traceId; - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, seq:%" PRId64 ", sid:%" PRId64 ", code:%s", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, seq:%" PRId64 ", sid:%" PRId64 ", code:%s", CONN_GET_INST_LABEL(conn), conn, TMSG_INFO(resp.msgType), conn->dst, conn->src, pHead->msgLen, seq, qId, tstrerror(pHead->code)); code = cliNotifyCb(conn, pReq, &resp); @@ -760,7 +760,7 @@ void cliConnTimeout(uv_timer_t* handle) { } cliMayUpdateFqdnCache(pThrd->fqdn2ipCache, conn->dstAddr); - tTrace("%s conn %p failed to connect %s since conn timeout", CONN_GET_INST_LABEL(conn), conn, conn->dstAddr); + tTrace("%s conn:%p, failed to connect %s since conn timeout", CONN_GET_INST_LABEL(conn), conn, conn->dstAddr); TAOS_UNUSED(transUnrefCliHandle(conn)); } @@ -899,7 +899,7 @@ static int32_t cliGetConnFromPool(SCliThrd* pThrd, const char* key, SCliConn** p transDQCancel(((SCliThrd*)conn->hostThrd)->timeoutQueue, task); } - tDebug("conn %p get from pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); + tDebug("conn:%p, get from pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); *ppConn = conn; return 0; @@ -941,7 +941,7 @@ static void addConnToPool(void* pool, SCliConn* conn) { QUEUE_INIT(&conn->q); QUEUE_PUSH(&conn->list->conns, &conn->q); conn->list->size += 1; - tDebug("conn %p added to pool, pool size: %d, dst: %s", conn, conn->list->size, conn->dstAddr); + tDebug("conn:%p, added to pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); conn->heapMissHit = 0; @@ -961,7 +961,7 @@ static void cliAllocRecvBufferCb(uv_handle_t* handle, size_t suggested_size, uv_ SConnBuffer* pBuf = &conn->readBuf; int32_t code = transAllocBuffer(pBuf, buf); if (code < 0) { - tError("conn %p failed to alloc buffer, since %s", conn, tstrerror(code)); + tError("conn:%p, failed to alloc buffer, since %s", conn, tstrerror(code)); } } static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { @@ -975,14 +975,14 @@ static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { SCliConn* conn = handle->data; code = transSetReadOption((uv_handle_t*)handle); if (code != 0) { - tWarn("%s conn %p failed to set recv opt since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tWarn("%s conn:%p, failed to set recv opt since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } SConnBuffer* pBuf = &conn->readBuf; if (nread > 0) { pBuf->len += nread; while (transReadComplete(pBuf)) { - tTrace("%s conn %p read complete", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, read complete", CONN_GET_INST_LABEL(conn), conn); if (pBuf->invalid) { conn->broken = true; TAOS_UNUSED(transUnrefCliHandle(conn)); @@ -999,11 +999,11 @@ static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { // ref http://docs.libuv.org/en/v1.x/stream.html?highlight=uv_read_start#c.uv_read_cb // nread might be 0, which does not indicate an error or EOF. This is equivalent to EAGAIN or EWOULDBLOCK under // read(2). - tTrace("%s conn %p read empty", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, read empty", CONN_GET_INST_LABEL(conn), conn); return; } if (nread < 0) { - tDebug("%s conn %p read error:%s, ref:%d", CONN_GET_INST_LABEL(conn), conn, uv_err_name(nread), + tDebug("%s conn:%p, read error:%s, ref:%d", CONN_GET_INST_LABEL(conn), conn, uv_err_name(nread), transGetRefCount(conn)); conn->broken = true; TAOS_UNUSED(transUnrefCliHandle(conn)); @@ -1136,10 +1136,10 @@ static void cliDestroyAllQidFromThrd(SCliConn* conn) { code = taosHashRemove(pThrd->pIdConnTable, qid, sizeof(*qid)); if (code != 0) { - tDebug("%s conn %p failed to remove state %" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, *qid, + tDebug("%s conn:%p, failed to remove state %" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, *qid, tstrerror(code)); } else { - tDebug("%s conn %p destroy sid::%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, *qid); + tDebug("%s conn:%p, destroy sid::%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, *qid); } STransCtx* ctx = pIter; @@ -1163,17 +1163,17 @@ static void cliDestroy(uv_handle_t* handle) { SCliThrd* pThrd = conn->hostThrd; cliResetConnTimer(conn); - tDebug("%s conn %p try to destroy", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, try to destroy", CONN_GET_INST_LABEL(conn), conn); code = destroyAllReqs(conn); if (code != 0) { - tDebug("%s conn %p failed to all reqs since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to all reqs since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code != 0) { - tDebug("%s conn %p failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } taosMemoryFree(conn->dstAddr); @@ -1190,7 +1190,7 @@ static void cliDestroy(uv_handle_t* handle) { destroyWQ(&conn->wq); transDestroyBuffer(&conn->readBuf); - tTrace("%s conn %p destroy successfully", CONN_GET_INST_LABEL(conn), conn); + tTrace("%s conn:%p, destroy successfully", CONN_GET_INST_LABEL(conn), conn); taosMemoryFree(conn); } @@ -1217,12 +1217,12 @@ static void notifyAndDestroyReq(SCliConn* pConn, SCliReq* pReq, int32_t code) { } STraceId* trace = &resp.info.traceId; - tDebug("%s conn %p notify user and destroy msg %s since %s", CONN_GET_INST_LABEL(pConn), pConn, + tDebug("%s conn:%p, notify user and destroy msg %s since %s", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msg.msgType), tstrerror(resp.code)); // handle noresp and inter manage msg if (pCtx == NULL || REQUEST_NO_RESP(&pReq->msg)) { - tDebug("%s conn %p destroy %s msg directly since %s", CONN_GET_INST_LABEL(pConn), pConn, + tDebug("%s conn:%p, destroy %s msg directly since %s", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msg.msgType), tstrerror(resp.code)); destroyReq(pReq); return; @@ -1271,7 +1271,7 @@ static void cliHandleException(SCliConn* conn) { cliResetConnTimer(conn); code = destroyAllReqs(conn); if (code != 0) { - tError("%s conn %p failed to destroy all reqs on conn since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to destroy all reqs on conn since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } cliDestroyAllQidFromThrd(conn); @@ -1288,13 +1288,13 @@ static void cliHandleException(SCliConn* conn) { conn->forceDelFromHeap = 1; code = delConnFromHeapCache(pThrd->connHeapCache, conn); if (code != 0) { - tError("%s conn %p failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tError("%s conn:%p, failed to del conn from heapcach since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); } if (conn->registered) { int8_t ref = transGetRefCount(conn); if (ref == 0 && !uv_is_closing((uv_handle_t*)conn->stream)) { - // tTrace("%s conn %p fd %d,%d,%d,%p uv_closed", CONN_GET_INST_LABEL(conn), conn, conn->stream->u.fd, + // tTrace("%s conn:%p, fd %d,%d,%d,%p uv_closed", CONN_GET_INST_LABEL(conn), conn, conn->stream->u.fd, // conn->stream->io_watcher.fd, conn->stream->accepted_fd, conn->stream->queued_fds); uv_close((uv_handle_t*)conn->stream, cliDestroy); } @@ -1346,7 +1346,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { cliConnRmReqs(conn); if (status != 0) { - tDebug("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, uv_err_name(status)); + tDebug("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, uv_err_name(status)); TAOS_UNUSED(transUnrefCliHandle(conn)); return; } @@ -1355,7 +1355,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { if (conn->readerStart == 0) { code = uv_read_start((uv_stream_t*)conn->stream, cliAllocRecvBufferCb, cliRecvCb); if (code != 0) { - tDebug("%s conn %p failed to start read since%s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to start read since%s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); return; } @@ -1365,7 +1365,7 @@ static void cliBatchSendCb(uv_write_t* req, int status) { if (!cliMayRecycleConn(conn)) { code = cliBatchSend(conn, 1); if (code != 0) { - tDebug("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); + tDebug("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(conn), conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); } } @@ -1435,7 +1435,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { } QUEUE_PUSH(&pThrd->batchSendSet, &pConn->batchSendq); pConn->inThreadSendq = 1; - tDebug("%s conn %p batch send later", pInst->label, pConn); + tDebug("%s conn:%p, batch send later", pInst->label, pConn); return 0; } @@ -1443,7 +1443,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { int32_t totalLen = 0; if (size == 0) { - tDebug("%s conn %p not msg to send", pInst->label, pConn); + tDebug("%s conn:%p, not msg to send", pInst->label, pConn); return 0; } uv_buf_t* wb = NULL; @@ -1520,7 +1520,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { pCliMsg->sent = 1; STraceId* trace = &pCliMsg->msg.info.traceId; - tGDebug("%s conn %p %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), + tGDebug("%s conn:%p, %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msgType), pConn->dst, pConn->src, pConn->seq, pReq->info.qId); transQueuePush(&pConn->reqsSentOut, &pCliMsg->q); @@ -1536,7 +1536,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { uv_write_t* req = allocWReqFromWQ(&pConn->wq, pConn); if (req == NULL) { - tError("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(terrno)); + tError("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(terrno)); while (!QUEUE_IS_EMPTY(&reqToSend)) { queue* h = QUEUE_HEAD(&reqToSend); SCliReq* pCliMsg = QUEUE_DATA(h, SCliReq, sendQ); @@ -1550,11 +1550,11 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { SWReqsWrapper* pWreq = req->data; QUEUE_MOVE(&reqToSend, &pWreq->node); - tDebug("%s conn %p start to send msg, batch size:%d, len:%d", CONN_GET_INST_LABEL(pConn), pConn, j, totalLen); + tDebug("%s conn:%p, start to send msg, batch size:%d, len:%d", CONN_GET_INST_LABEL(pConn), pConn, j, totalLen); int32_t ret = uv_write(req, (uv_stream_t*)pConn->stream, wb, j, cliBatchSendCb); if (ret != 0) { - tError("%s conn %p failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, uv_err_name(ret)); + tError("%s conn:%p, failed to send msg since %s", CONN_GET_INST_LABEL(pConn), pConn, uv_err_name(ret)); while (!QUEUE_IS_EMPTY(&pWreq->node)) { queue* h = QUEUE_HEAD(&pWreq->node); SCliReq* pCliMsg = QUEUE_DATA(h, SCliReq, sendQ); @@ -1617,23 +1617,23 @@ static int32_t cliDoConn(SCliThrd* pThrd, SCliConn* conn) { addr.sin_addr.s_addr = ipaddr; addr.sin_port = (uint16_t)htons(conn->port); - tTrace("%s conn %p try to connect to %s", pInst->label, conn, conn->dstAddr); + tTrace("%s conn:%p, try to connect to %s", pInst->label, conn, conn->dstAddr); int32_t fd = taosCreateSocketWithTimeout(TRANS_CONN_TIMEOUT * 10); if (fd < 0) { TAOS_CHECK_GOTO(terrno, &lino, _exception1); } - tTrace("%s conn %p fd %d openend", pInst->label, conn, fd); + tTrace("%s conn:%p, fd %d openend", pInst->label, conn, fd); int ret = uv_tcp_open((uv_tcp_t*)conn->stream, fd); if (ret != 0) { - tError("%s conn %p failed to set stream since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to set stream since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception1); } ret = transSetConnOption((uv_tcp_t*)conn->stream, 20); if (ret != 0) { - tError("%s conn %p failed to set socket opt since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to set socket opt since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception1); return code; } @@ -1656,19 +1656,19 @@ static int32_t cliDoConn(SCliThrd* pThrd, SCliConn* conn) { transRefCliHandle(conn); ret = uv_timer_start(conn->timer, cliConnTimeout, TRANS_CONN_TIMEOUT, 0); if (ret != 0) { - tError("%s conn %p failed to start timer since %s", transLabel(pInst), conn, uv_err_name(ret)); + tError("%s conn:%p, failed to start timer since %s", transLabel(pInst), conn, uv_err_name(ret)); TAOS_CHECK_GOTO(TSDB_CODE_THIRDPARTY_ERROR, &lino, _exception2); } return TSDB_CODE_RPC_ASYNC_IN_PROCESS; _exception1: - tError("%s conn %p failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); + tError("%s conn:%p, failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); cliDestroyConn(conn, true); return code; _exception2: TAOS_UNUSED(transUnrefCliHandle(conn)); - tError("%s conn %p failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); + tError("%s conn:%p, failed to do connect since %s", transLabel(pInst), conn, tstrerror(code)); return code; } @@ -1738,7 +1738,7 @@ void cliConnCb(uv_connect_t* req, int status) { STUB_RAND_NETWORK_ERR(status); if (status != 0) { - tError("%s conn %p failed to connect to %s since %s", CONN_GET_INST_LABEL(pConn), pConn, pConn->dstAddr, + tError("%s conn:%p, failed to connect to %s since %s", CONN_GET_INST_LABEL(pConn), pConn, pConn->dstAddr, uv_strerror(status)); cliMayUpdateFqdnCache(pThrd->fqdn2ipCache, pConn->dstAddr); TAOS_UNUSED(transUnrefCliHandle(pConn)); @@ -1747,14 +1747,14 @@ void cliConnCb(uv_connect_t* req, int status) { pConn->connnected = 1; code = cliConnSetSockInfo(pConn); if (code != 0) { - tDebug("%s conn %p failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); + tDebug("%s conn:%p, failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } - tTrace("%s conn %p connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn); + tTrace("%s conn:%p, connect to server successfully", CONN_GET_INST_LABEL(pConn), pConn); code = cliBatchSend(pConn, 1); if (code != 0) { - tDebug("%s conn %p failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); + tDebug("%s conn:%p, failed to get sock info since %s", CONN_GET_INST_LABEL(pConn), pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } } @@ -1894,7 +1894,7 @@ static FORCE_INLINE int32_t cliUpdateFqdnCache(SHashObj* cache, char* fqdn) { char old[TSDB_FQDN_LEN] = {0}, new[TSDB_FQDN_LEN] = {0}; taosInetNtoa(old, *v); taosInetNtoa(new, addr); - tWarn("update ip of fqdn:%s, old: %s, new: %s", fqdn, old, new); + tWarn("update ip of fqdn:%s, old:%s, new:%s", fqdn, old, new); code = taosHashPut(cache, fqdn, len, &addr, sizeof(addr)); } } else { @@ -1952,7 +1952,7 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { SReqCtx* pCtx = pReq->ctx; SCliThrd* pThrd = pConn->hostThrd; if (pCtx == NULL) { - tDebug("%s conn %p not need to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, not need to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); return 0; } @@ -1960,11 +1960,11 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { if (pUserCtx == NULL) { pCtx->userCtx.st = taosGetTimestampUs(); code = taosHashPut(pConn->pQTable, &qid, sizeof(qid), &pCtx->userCtx, sizeof(pCtx->userCtx)); - tDebug("%s conn %p succ to add statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to add statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } else { transCtxMerge(pUserCtx, &pCtx->userCtx); pUserCtx->st = taosGetTimestampUs(); - tDebug("%s conn %p succ to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } return 0; } @@ -1987,12 +1987,12 @@ int32_t cliMayGetStateByQid(SCliThrd* pThrd, SCliReq* pReq, SCliConn** pConn) { transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_STATE_DROPED; } - tDebug("%s conn %p failed to get statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, failed to get statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_ASYNC_IN_PROCESS; } else { *pConn = pState->conn; - tDebug("%s conn %p succ to get conn of statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to get conn of statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); } transReleaseExHandle(transGetRefMgt(), qid); return 0; @@ -2010,10 +2010,10 @@ int32_t cliHandleState_mayUpdateState(SCliConn* pConn, SCliReq* pReq) { SReqState state = {.conn = pConn, .arg = NULL}; code = taosHashPut(pThrd->pIdConnTable, &qid, sizeof(qid), &state, sizeof(state)); if (code != 0) { - tDebug("%s conn %p failed to statue, sid:%" PRId64 " since %s", transLabel(pThrd->pInst), pConn, qid, + tDebug("%s conn:%p, failed to statue, sid:%" PRId64 " since %s", transLabel(pThrd->pInst), pConn, qid, tstrerror(code)); } else { - tDebug("%s conn %p succ to add statue, sid:%" PRId64 " (1)", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to add statue, sid:%" PRId64 " (1)", transLabel(pThrd->pInst), pConn, qid); } TAOS_UNUSED(cliHandleState_mayUpdateStateCtx(pConn, pReq)); @@ -2050,7 +2050,7 @@ void cliHandleBatchReq(SCliThrd* pThrd, SCliReq* pReq) { } else if (code == 0) { code = addConnToHeapCache(pThrd->connHeapCache, pConn); if (code != 0) { - tWarn("%s conn %p failed to added to heap cache since %s", pInst->label, pConn, tstrerror(code)); + tWarn("%s conn:%p, failed to added to heap cache since %s", pInst->label, pConn, tstrerror(code)); } } else { if (code == TSDB_CODE_OUT_OF_MEMORY && pConn == NULL) { @@ -2063,11 +2063,11 @@ void cliHandleBatchReq(SCliThrd* pThrd, SCliReq* pReq) { } code = cliSendReq(pConn, pReq); if (code != 0) { - tWarn("%s conn %p failed to send req since %s", pInst->label, pConn, tstrerror(code)); + tWarn("%s conn:%p, failed to send req since %s", pInst->label, pConn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(pConn)); } - tTrace("%s conn %p ready", pInst->label, pConn); + tTrace("%s conn:%p, ready", pInst->label, pConn); return; _exception: @@ -2110,7 +2110,7 @@ static void cliDoReq(queue* wq, SCliThrd* pThrd) { QUEUE_INIT(&conn->batchSendq); code = cliBatchSend(conn, 1); if (code != 0) { - tWarn("%s conn %p failed to send req since %s", pThrd->pInst->label, conn, tstrerror(code)); + tWarn("%s conn:%p, failed to send req since %s", pThrd->pInst->label, conn, tstrerror(code)); TAOS_UNUSED(transUnrefCliHandle(conn)); } } @@ -2160,7 +2160,7 @@ static FORCE_INLINE void destroyReq(void* arg) { removeReqFromSendQ(pReq); STraceId* trace = &pReq->msg.info.traceId; - tGDebug("free memory:%p, free ctx: %p", pReq, pReq->ctx); + tGTrace("free mem:%p, free ctx:%p", pReq, pReq->ctx); if (pReq->ctx) { destroyReqCtx(pReq->ctx); @@ -2517,7 +2517,7 @@ static FORCE_INLINE void doDelayTask(void* param) { static FORCE_INLINE void doCloseIdleConn(void* param) { STaskArg* arg = param; SCliConn* conn = arg->param1; - tDebug("%s conn %p idle, close it", CONN_GET_INST_LABEL(conn), conn); + tDebug("%s conn:%p, idle, close it", CONN_GET_INST_LABEL(conn), conn); conn->task = NULL; taosMemoryFree(arg); @@ -2541,7 +2541,7 @@ static FORCE_INLINE void cliPerfLog_schedMsg(SCliReq* pReq, char* label) { return; } - tGDebug("%s retry on next node,use:%s, step: %d,timeout:%" PRId64 "", label, tbuf, pCtx->retryStep, + tGDebug("%s retry on next node,use:%s, step:%d,timeout:%" PRId64, label, tbuf, pCtx->retryStep, pCtx->retryNextInterval); return; } @@ -2559,7 +2559,7 @@ static FORCE_INLINE void cliPerfLog_epset(SCliConn* pConn, SCliReq* pReq) { tWarn("failed to debug epset since %s", tstrerror(code)); return; } - tTrace("%s conn %p extract epset from msg", CONN_GET_INST_LABEL(pConn), pConn); + tTrace("%s conn:%p, extract epset from msg", CONN_GET_INST_LABEL(pConn), pConn); return; } @@ -2846,10 +2846,10 @@ int32_t cliNotifyImplCb(SCliConn* pConn, SCliReq* pReq, STransMsg* pResp) { return 0; } if (pCtx->pSem || pCtx->syncMsgRef != 0) { - tGTrace("%s conn %p(sync) handle resp", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p(sync) handle resp", CONN_GET_INST_LABEL(pConn), pConn); if (pCtx->pSem) { if (pCtx->pRsp == NULL) { - tGTrace("%s conn %p(sync) failed to resp, ignore", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p(sync) failed to resp, ignore", CONN_GET_INST_LABEL(pConn), pConn); } else { memcpy((char*)pCtx->pRsp, (char*)pResp, sizeof(*pResp)); } @@ -2875,7 +2875,7 @@ int32_t cliNotifyImplCb(SCliConn* pConn, SCliReq* pReq, STransMsg* pResp) { } } } else { - tGTrace("%s conn %p handle resp", CONN_GET_INST_LABEL(pConn), pConn); + tGTrace("%s conn:%p, handle resp", CONN_GET_INST_LABEL(pConn), pConn); if (pResp->info.hasEpSet == 1) { SEpSet epset = {0}; if (transCreateUserEpsetFromReqEpset(pCtx->epSet, &epset) != 0) { @@ -2938,7 +2938,7 @@ void transRefCliHandle(void* handle) { SCliConn* conn = (SCliConn*)handle; conn->ref++; - tTrace("%s conn %p ref %d", CONN_GET_INST_LABEL(conn), conn, conn->ref); + tTrace("%s conn:%p, ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); } int32_t transUnrefCliHandle(void* handle) { if (handle == NULL) { @@ -2949,7 +2949,7 @@ int32_t transUnrefCliHandle(void* handle) { conn->ref--; ref = conn->ref; - tTrace("%s conn %p ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); + tTrace("%s conn:%p, ref:%d", CONN_GET_INST_LABEL(conn), conn, conn->ref); if (conn->ref == 0) { cliDestroyConn(conn, true); } @@ -3023,7 +3023,7 @@ int32_t transReleaseCliHandle(void* handle, int32_t status) { cmsg->ctx = pCtx; STraceId* trace = &tmsg.info.traceId; - tGDebug("send release request at thread:%08" PRId64 ", malloc memory:%p", pThrd->pid, cmsg); + tGDebug("send release request at thread:%08" PRId64 ", malloc mem:%p", pThrd->pid, cmsg); if ((code = transAsyncSend(pThrd->asyncPool, &cmsg->q)) != 0) { destroyReq(cmsg); @@ -3615,7 +3615,7 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) if (((*st - pCtx->st) / 1000000) >= pInst->readTimeout) { code = taosHashRemove(pThrd->pIdConnTable, qid, sizeof(*qid)); if (code != 0) { - tError("%s conn %p failed to remove state sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to remove state sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); } @@ -3624,11 +3624,11 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) if (taosArrayPush(pQIdBuf, qid) == NULL) { code = terrno; - tError("%s conn %p failed to add sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to add sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); break; } - tWarn("%s conn %p remove timeout msg sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, *qid); + tWarn("%s conn:%p, remove timeout msg sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, *qid); } pIter = taosHashIterate(pConn->pQTable, pIter); } @@ -3642,7 +3642,7 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) transCtxCleanup(p); code = taosHashRemove(pConn->pQTable, qid, sizeof(*qid)); if (code != 0) { - tError("%s conn %p failed to drop ctx of sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, + tError("%s conn:%p, failed to drop ctx of sid:%" PRId64 " since %s", CONN_GET_INST_LABEL(pConn), pConn, *qid, tstrerror(code)); } } @@ -3674,7 +3674,7 @@ static int8_t cliConnRemoveTimeoutMsg(SCliConn* pConn) { if (QUEUE_IS_EMPTY(&set)) { return 0; } - tWarn("%s conn %p do remove timeout msg", pInst->label, pConn); + tWarn("%s conn:%p, do remove timeout msg", pInst->label, pConn); destroyReqInQueue(pConn, &set, TSDB_CODE_RPC_TIMEOUT); return 1; } @@ -3682,7 +3682,7 @@ static FORCE_INLINE int8_t shouldSWitchToOtherConn(SCliConn* pConn, char* key) { SCliThrd* pThrd = pConn->hostThrd; STrans* pInst = pThrd->pInst; - tDebug("get conn %p from heap cache for key:%s, status:%d, refCnt:%d", pConn, key, pConn->inHeap, pConn->reqRefCnt); + tDebug("get conn:%p from heap cache for key:%s, status:%d, refCnt:%d", pConn, key, pConn->inHeap, pConn->reqRefCnt); int32_t reqsNum = transQueueSize(&pConn->reqsToSend); int32_t reqsSentOut = transQueueSize(&pConn->reqsSentOut); int32_t stateNum = taosHashGetSize(pConn->pQTable); @@ -3694,14 +3694,14 @@ static FORCE_INLINE int8_t shouldSWitchToOtherConn(SCliConn* pConn, char* key) { if (pConn->list == NULL && pConn->dstAddr != NULL) { pConn->list = taosHashGet((SHashObj*)pThrd->pool, pConn->dstAddr, strlen(pConn->dstAddr)); if (pConn->list != NULL) { - tTrace("conn %p get list %p from pool for key:%s", pConn, pConn->list, key); + tTrace("conn:%p, get list %p from pool for key:%s", pConn, pConn->list, key); } } if (pConn->list && pConn->list->totalSize >= pInst->connLimitNum / 4) { - tWarn("%s conn %p try to remove timeout msg since too many conn created", transLabel(pInst), pConn); + tWarn("%s conn:%p, try to remove timeout msg since too many conn created", transLabel(pInst), pConn); if (cliConnRemoveTimeoutMsg(pConn)) { - tWarn("%s conn %p succ to remove timeout msg", transLabel(pInst), pConn); + tWarn("%s conn:%p, succ to remove timeout msg", transLabel(pInst), pConn); } return 1; } @@ -3724,7 +3724,7 @@ static FORCE_INLINE void logConnMissHit(SCliConn* pConn) { SCliThrd* pThrd = pConn->hostThrd; STrans* pInst = pThrd->pInst; pConn->heapMissHit++; - tDebug("conn %p has %d reqs, %d sentout and %d status in process, total limit:%d, switch to other conn", pConn, + tDebug("conn:%p, has %d reqs, %d sentout and %d status in process, total limit:%d, switch to other conn", pConn, transQueueSize(&pConn->reqsToSend), transQueueSize(&pConn->reqsSentOut), taosHashGetSize(pConn->pQTable), pInst->shareConnLimit); // if (transQueueSize(&pConn->reqsSentOut) >= pInst->shareConnLimit) { @@ -3745,12 +3745,12 @@ static SCliConn* getConnFromHeapCache(SHashObj* pConnHeapCache, char* key) { tTrace("failed to get conn from heap cache for key:%s", key); return NULL; } else { - tTrace("conn %p get conn from heap cache for key:%s", pConn, key); + tTrace("conn:%p, get conn from heap cache for key:%s", pConn, key); if (shouldSWitchToOtherConn(pConn, key)) { SCliConn* pNewConn = NULL; code = balanceConnHeapCache(pConnHeapCache, pConn, &pNewConn); if (code == 1) { - tTrace("conn %p start to handle reqs", pNewConn); + tTrace("conn:%p, start to handle reqs", pNewConn); return pNewConn; } return NULL; @@ -3765,7 +3765,7 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { if (pConn->heap != NULL) { p = pConn->heap; - tTrace("conn %p add to heap cache for key:%s,status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, + tTrace("conn:%p, add to heap cache for key:%s, status:%d, refCnt:%d, add direct", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); } else { code = getOrCreateHeap(pConnHeapCacahe, pConn->dstAddr, &p); @@ -3781,14 +3781,14 @@ static int32_t addConnToHeapCache(SHashObj* pConnHeapCacahe, SCliConn* pConn) { } code = transHeapInsert(p, pConn); - tTrace("conn %p add to heap cache for key:%s,status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, + tTrace("conn:%p, add to heap cache for key:%s, status:%d, refCnt:%d", pConn, pConn->dstAddr, pConn->inHeap, pConn->reqRefCnt); return code; } static int32_t delConnFromHeapCache(SHashObj* pConnHeapCache, SCliConn* pConn) { if (pConn->heap != NULL) { - tTrace("conn %p try to delete from heap cache direct", pConn); + tTrace("conn:%p, try to delete from heap cache direct", pConn); return transHeapDelete(pConn->heap, pConn); } @@ -3799,7 +3799,7 @@ static int32_t delConnFromHeapCache(SHashObj* pConnHeapCache, SCliConn* pConn) { } int32_t code = transHeapDelete(p, pConn); if (code != 0) { - tTrace("conn %p failed delete from heap cache since %s", pConn, tstrerror(code)); + tTrace("conn:%p, failed delete from heap cache since %s", pConn, tstrerror(code)); } return code; } @@ -3864,7 +3864,7 @@ int32_t transHeapInsert(SHeap* heap, SCliConn* p) { // impl later p->reqRefCnt++; if (p->inHeap == 1) { - tTrace("failed to insert conn %p since already in heap", p); + tTrace("failed to insert conn:%p since already in heap", p); return TSDB_CODE_DUP_KEY; } @@ -3881,12 +3881,12 @@ int32_t transHeapDelete(SHeap* heap, SCliConn* p) { } if (p->inHeap == 0) { - tTrace("failed to del conn %p since not in heap", p); + tTrace("failed to del conn:%p since not in heap", p); return 0; } else { int64_t now = taosGetTimestampMs(); if (p->forceDelFromHeap == 0 && now - p->lastAddHeapTime < 10000) { - tTrace("conn %p not added/delete to heap frequently", p); + tTrace("conn:%p, not added/delete to heap frequently", p); return TSDB_CODE_RPC_ASYNC_IN_PROCESS; } } @@ -3895,11 +3895,11 @@ int32_t transHeapDelete(SHeap* heap, SCliConn* p) { p->reqRefCnt--; if (p->reqRefCnt == 0) { heapRemove(heap->heap, &p->node); - tTrace("conn %p delete from heap", p); + tTrace("conn:%p, delete from heap", p); } else if (p->reqRefCnt < 0) { - tTrace("conn %p has %d reqs, not delete from heap,assert", p, p->reqRefCnt); + tTrace("conn:%p, has %d reqs, not delete from heap,assert", p, p->reqRefCnt); } else { - tTrace("conn %p has %d reqs, not delete from heap", p, p->reqRefCnt); + tTrace("conn:%p, has %d reqs, not delete from heap", p, p->reqRefCnt); } return 0; } diff --git a/source/libs/transport/src/transComm.c b/source/libs/transport/src/transComm.c index c0edcd54e4..57bf59dfe8 100644 --- a/source/libs/transport/src/transComm.c +++ b/source/libs/transport/src/transComm.c @@ -126,7 +126,7 @@ void transFreeMsg(void* msg) { if (msg == NULL) { return; } - tTrace("rpc free cont:%p", (char*)msg - TRANS_MSG_OVERHEAD); + tTrace("cont:%p, rpc free", (char*)msg - TRANS_MSG_OVERHEAD); taosMemoryFree((char*)msg - sizeof(STransMsgHead)); } void transSockInfo2Str(struct sockaddr* sockname, char* dst) { @@ -836,7 +836,7 @@ int32_t subnetInit(SubnetUtils* pUtils, SIpV4Range* pRange) { return 0; } int32_t subnetDebugInfoToBuf(SubnetUtils* pUtils, char* buf) { - sprintf(buf, "raw: %s, address: %d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, + sprintf(buf, "raw:%s, address:%d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, pUtils->netmask, pUtils->network, pUtils->broadcast); return 0; } diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index 582bb15b00..35d74123f0 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -215,7 +215,7 @@ void uvAllocRecvBufferCb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* b SConnBuffer* pBuf = &conn->readBuf; int32_t code = transAllocBuffer(pBuf, buf); if (code < 0) { - tError("conn %p failed to alloc buffer, since %s", conn, tstrerror(code)); + tError("conn:%p, failed to alloc buffer, since %s", conn, tstrerror(code)); } } @@ -274,7 +274,7 @@ int32_t uvWhiteListToStr(SWhiteUserList* plist, char* user, char** ppBuf) { return terrno; } - int32_t len = sprintf(pBuf, "user: %s, ver: %" PRId64 ", ip: {%s}", user, plist->ver, tmp); + int32_t len = sprintf(pBuf, "user:%s, ver:%" PRId64 ", ip:{%s}", user, plist->ver, tmp); taosMemoryFree(tmp); *ppBuf = pBuf; @@ -393,24 +393,24 @@ static void uvPerfLog_receive(SSvrConn* pConn, STransMsgHead* pHead, STransMsg* if (pConn->status == ConnNormal && pHead->noResp == 0) { if (cost >= EXCEPTION_LIMIT_US) { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, cost:%dus, recv exception, seqNum:%" PRId64 + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, cost:%dus, recv exception, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, (int)cost, pTransMsg->info.seqNum, pTransMsg->info.qId); } else { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, cost:%dus, seqNum:%" PRId64 ", sid:%" PRId64 "", + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, cost:%dus, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, (int)cost, pTransMsg->info.seqNum, pTransMsg->info.qId); } } else { if (cost >= EXCEPTION_LIMIT_US) { tGDebug( - "%s conn %p %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, recv exception, " + "%s conn:%p, %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, recv exception, " "seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, pHead->noResp, pTransMsg->code, (int)(cost), pTransMsg->info.seqNum, pTransMsg->info.qId); } else { - tGDebug("%s conn %p %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, seqNum:%" PRId64 + tGDebug("%s conn:%p, %s received from %s, local info:%s, len:%d, noResp:%d, code:%d, cost:%dus, seqNum:%" PRId64 ", " "sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pTransMsg->msgType), pConn->dst, pConn->src, pTransMsg->contLen, @@ -440,23 +440,23 @@ static int32_t uvMayHandleReleaseReq(SSvrConn* pConn, STransMsgHead* pHead) { if (pHead->msgType == TDMT_SCH_TASK_RELEASE) { int64_t qId = taosHton64(pHead->qid); if (qId <= 0) { - tError("conn %p recv release, but invalid sid:%" PRId64 "", pConn, qId); + tError("conn:%p, recv release, but invalid sid:%" PRId64 "", pConn, qId); code = TSDB_CODE_RPC_NO_STATE; } else { void* p = taosHashGet(pConn->pQTable, &qId, sizeof(qId)); if (p == NULL) { code = TSDB_CODE_RPC_NO_STATE; - tTrace("conn %p recv release, and releady release by server sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, recv release, and releady release by server sid:%" PRId64 "", pConn, qId); } else { SSvrRegArg* arg = p; (pInst->cfp)(pInst->parent, &(arg->msg), NULL); - tTrace("conn %p recv release, notify server app, sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, recv release, notify server app, sid:%" PRId64 "", pConn, qId); code = taosHashRemove(pConn->pQTable, &qId, sizeof(qId)); if (code != 0) { - tDebug("conn %p failed to remove sid:%" PRId64 "", pConn, qId); + tDebug("conn:%p, failed to remove sid:%" PRId64 "", pConn, qId); } - tTrace("conn %p clear state,sid:%" PRId64 "", pConn, qId); + tTrace("conn:%p, clear state,sid:%" PRId64 "", pConn, qId); } } @@ -468,7 +468,7 @@ static int32_t uvMayHandleReleaseReq(SSvrConn* pConn, STransMsgHead* pHead) { SSvrRespMsg* srvMsg = taosMemoryCalloc(1, sizeof(SSvrRespMsg)); if (srvMsg == NULL) { - tError("conn %p recv release, failed to send release-resp since %s", pConn, tstrerror(terrno)); + tError("conn:%p, recv release, failed to send release-resp since %s", pConn, tstrerror(terrno)); taosMemoryFree(pHead); return terrno; } @@ -496,7 +496,7 @@ bool uvConnMayGetUserInfo(SSvrConn* pConn, STransMsgHead** ppHead, int32_t* msgL if (pHead->withUserInfo) { STransMsgHead* tHead = taosMemoryCalloc(1, len - sizeof(pInst->user)); if (tHead == NULL) { - tError("conn %p failed to get user info since %s", pConn, tstrerror(terrno)); + tError("conn:%p, failed to get user info since %s", pConn, tstrerror(terrno)); return false; } memcpy((char*)tHead, (char*)pHead, TRANS_MSG_OVERHEAD); @@ -524,28 +524,28 @@ static bool uvHandleReq(SSvrConn* pConn) { int8_t resetBuf = 0; int msgLen = transDumpFromBuffer(&pConn->readBuf, (char**)&pHead, 0); if (msgLen <= 0) { - tError("%s conn %p read invalid packet", transLabel(pInst), pConn); + tError("%s conn:%p, read invalid packet", transLabel(pInst), pConn); return false; } if (transDecompressMsg((char**)&pHead, &msgLen) < 0) { - tError("%s conn %p recv invalid packet, failed to decompress", transLabel(pInst), pConn); + tError("%s conn:%p, recv invalid packet, failed to decompress", transLabel(pInst), pConn); taosMemoryFree(pHead); return false; } if (uvConnMayGetUserInfo(pConn, &pHead, &msgLen) == true) { - tDebug("%s conn %p get user info", transLabel(pInst), pConn); + tDebug("%s conn:%p, get user info", transLabel(pInst), pConn); } else { if (pConn->userInited == 0) { taosMemoryFree(pHead); - tDebug("%s conn %p failed get user info since %s", transLabel(pInst), pConn, tstrerror(terrno)); + tDebug("%s conn:%p, failed get user info since %s", transLabel(pInst), pConn, tstrerror(terrno)); return false; } - tDebug("%s conn %p no need get user info", transLabel(pInst), pConn); + tDebug("%s conn:%p, no need get user info", transLabel(pInst), pConn); } if (resetBuf == 0) { - tTrace("%s conn %p not reset read buf", transLabel(pInst), pConn); + tTrace("%s conn:%p, not reset read buf", transLabel(pInst), pConn); } pHead->code = htonl(pHead->code); @@ -573,7 +573,7 @@ static bool uvHandleReq(SSvrConn* pConn) { if (pHead->seqNum == 0) { STraceId* trace = &pHead->traceId; - tGError("%s conn %p received invalid seqNum, msgType:%s", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType)); + tGError("%s conn:%p, received invalid seqNum, msgType:%s", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType)); return false; } @@ -623,7 +623,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { code = transSetReadOption((uv_handle_t*)cli); if (code != 0) { - tWarn("%s conn %p failed to set recv opt since %s", transLabel(pInst), conn, tstrerror(code)); + tWarn("%s conn:%p, failed to set recv opt since %s", transLabel(pInst), conn, tstrerror(code)); } SConnBuffer* pBuf = &conn->readBuf; @@ -632,7 +632,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { if (pBuf->len <= TRANS_PACKET_LIMIT) { while (transReadComplete(pBuf)) { if (true == pBuf->invalid || false == uvHandleReq(conn)) { - tError("%s conn %p read invalid packet, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, + tError("%s conn:%p, read invalid packet, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, conn->src); conn->broken = true; transUnrefSrvHandle(conn); @@ -641,7 +641,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { } return; } else { - tError("%s conn %p read invalid packet, exceed limit, received from %s, local info:%s", transLabel(pInst), conn, + tError("%s conn:%p, read invalid packet, exceed limit, received from %s, local info:%s", transLabel(pInst), conn, conn->dst, conn->src); transUnrefSrvHandle(conn); return; @@ -651,7 +651,7 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) { return; } - tDebug("%s conn %p read error:%s", transLabel(pInst), conn, uv_err_name(nread)); + tDebug("%s conn:%p, read error:%s", transLabel(pInst), conn, uv_err_name(nread)); if (nread < 0) { conn->broken = true; transUnrefSrvHandle(conn); @@ -668,7 +668,7 @@ void uvAllocConnBufferCb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* b void uvOnTimeoutCb(uv_timer_t* handle) { // opt SSvrConn* pConn = handle->data; - tError("conn %p time out", pConn); + tError("conn:%p, time out", pConn); } void uvOnSendCb(uv_write_t* req, int status) { @@ -683,7 +683,7 @@ void uvOnSendCb(uv_write_t* req, int status) { freeWReqToWQ(&conn->wq, wrapper); - tDebug("%s conn %p send data out ", transLabel(conn->pInst), conn); + tDebug("%s conn:%p, send data out ", transLabel(conn->pInst), conn); if (status == 0) { while (!QUEUE_IS_EMPTY(&src)) { queue* head = QUEUE_HEAD(&src); @@ -691,7 +691,7 @@ void uvOnSendCb(uv_write_t* req, int status) { SSvrRespMsg* smsg = QUEUE_DATA(head, SSvrRespMsg, q); STraceId* trace = &smsg->msg.info.traceId; - tGDebug("%s conn %p msg already send out, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(conn->pInst), conn, + tGDebug("%s conn:%p, msg already send out, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(conn->pInst), conn, smsg->msg.info.seqNum, smsg->msg.info.qId); destroySmsg(smsg); } @@ -702,7 +702,7 @@ void uvOnSendCb(uv_write_t* req, int status) { SSvrRespMsg* smsg = QUEUE_DATA(head, SSvrRespMsg, q); STraceId* trace = &smsg->msg.info.traceId; - tGDebug("%s conn %p failed to send, seqNum:%" PRId64 ", sid:%" PRId64 " since %s", transLabel(conn->pInst), conn, + tGDebug("%s conn:%p, failed to send, seqNum:%" PRId64 ", sid:%" PRId64 " since %s", transLabel(conn->pInst), conn, smsg->msg.info.seqNum, smsg->msg.info.qId, uv_err_name(status)); destroySmsg(smsg); } @@ -770,7 +770,7 @@ static int32_t uvPrepareSendData(SSvrRespMsg* smsg, uv_buf_t* wb) { } STraceId* trace = &pMsg->info.traceId; - tGDebug("%s conn %p %s is sent to %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), + tGDebug("%s conn:%p, %s is sent to %s, local info:%s, len:%d, seqNum:%" PRId64 ", sid:%" PRId64 "", transLabel(pInst), pConn, TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, len, pMsg->info.seqNum, pMsg->info.qId); wb->base = (char*)pHead; @@ -780,7 +780,7 @@ static int32_t uvPrepareSendData(SSvrRespMsg* smsg, uv_buf_t* wb) { static int32_t uvBuildToSendData(SSvrConn* pConn, uv_buf_t** ppBuf, int32_t* bufNum, queue* toSendQ) { int32_t code = 0; int32_t size = transQueueSize(&pConn->resps); - tDebug("%s conn %p has %d msg to send", transLabel(pConn->pInst), pConn, size); + tDebug("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); if (size == 0) { return 0; } @@ -828,13 +828,13 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { } int32_t size = transQueueSize(&pConn->resps); if (size == 0) { - tDebug("%s conn %p has %d msg to send", transLabel(pConn->pInst), pConn, size); + tDebug("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); return; } uv_write_t* req = allocWReqFromWQ(&pConn->wq, pConn); if (req == NULL) { - uError("%s conn %p failed to alloc write req since %s", transLabel(pConn->pInst), pConn, tstrerror(terrno)); + uError("%s conn:%p, failed to alloc write req since %s", transLabel(pConn->pInst), pConn, tstrerror(terrno)); transUnrefSrvHandle(pConn); return; } @@ -844,11 +844,11 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { int32_t bufNum = 0; code = uvBuildToSendData(pConn, &pBuf, &bufNum, &pWreq->node); if (code != 0) { - tError("%s conn %p failed to send data", transLabel(pConn->pInst), pConn); + tError("%s conn:%p, failed to send data", transLabel(pConn->pInst), pConn); return; } if (bufNum == 0) { - tDebug("%s conn %p no data to send", transLabel(pConn->pInst), pConn); + tDebug("%s conn:%p, no data to send", transLabel(pConn->pInst), pConn); return; } @@ -856,7 +856,7 @@ static FORCE_INLINE void uvStartSendRespImpl(SSvrRespMsg* smsg) { int32_t ret = uv_write(req, (uv_stream_t*)pConn->pTcp, pBuf, bufNum, uvOnSendCb); if (ret != 0) { - tError("conn %p failed to write data since %s", pConn, uv_err_name(ret)); + tError("conn:%p, failed to write data since %s", pConn, uv_err_name(ret)); pConn->broken = true; while (!QUEUE_IS_EMPTY(&pWreq->node)) { queue* head = QUEUE_HEAD(&pWreq->node); @@ -876,13 +876,13 @@ int32_t uvMayHandleReleaseResp(SSvrRespMsg* pMsg) { if (pMsg->msg.msgType == TDMT_SCH_TASK_RELEASE && qid > 0) { SSvrRegArg* p = taosHashGet(pConn->pQTable, &qid, sizeof(qid)); if (p == NULL) { - tError("%s conn %p already release sid:%" PRId64 "", transLabel(pConn->pInst), pConn, qid); + tError("%s conn:%p, already release sid:%" PRId64 "", transLabel(pConn->pInst), pConn, qid); return TSDB_CODE_RPC_NO_STATE; } else { transFreeMsg(p->msg.pCont); code = taosHashRemove(pConn->pQTable, &qid, sizeof(qid)); if (code != 0) { - tError("%s conn %p failed to release sid:%" PRId64 " since %s", transLabel(pConn->pInst), pConn, qid, + tError("%s conn:%p, failed to release sid:%" PRId64 " since %s", transLabel(pConn->pInst), pConn, qid, tstrerror(code)); } } @@ -1001,18 +1001,18 @@ static void uvShutDownCb(uv_shutdown_t* req, int status) { static void uvWorkDoTask(uv_work_t* req) { // doing time-consumeing task // only auth conn currently, add more func later - tTrace("conn %p start to be processed in BG Thread", req->data); + tTrace("conn:%p, start to be processed in BG Thread", req->data); return; } static void uvWorkAfterTask(uv_work_t* req, int status) { if (status != 0) { - tTrace("conn %p failed to processed ", req->data); + tTrace("conn:%p, failed to processed ", req->data); } // Done time-consumeing task // add more func later // this func called in main loop - tTrace("conn %p already processed ", req->data); + tTrace("conn:%p, already processed ", req->data); taosMemoryFree(req); } @@ -1027,7 +1027,7 @@ void uvOnAcceptCb(uv_stream_t* stream, int status) { int err = uv_tcp_init(pObj->loop, cli); if (err != 0) { - tError("failed to create tcp: %s", uv_err_name(err)); + tError("failed to create tcp:%s", uv_err_name(err)); taosMemoryFree(cli); return; } @@ -1059,10 +1059,10 @@ void uvOnAcceptCb(uv_stream_t* stream, int status) { uv_write2(wr, (uv_stream_t*)&(pObj->pipe[pObj->workerIdx][0]), &buf, 1, (uv_stream_t*)cli, uvOnPipeWriteCb)); } else { if (!uv_is_closing((uv_handle_t*)cli)) { - tError("failed to accept tcp: %s", uv_err_name(err)); + tError("failed to accept tcp:%s", uv_err_name(err)); uv_close((uv_handle_t*)cli, uvFreeCb); } else { - tError("failed to accept tcp: %s", uv_err_name(err)); + tError("failed to accept tcp:%s", uv_err_name(err)); taosMemoryFree(cli); } } @@ -1112,18 +1112,18 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { if ((code = uv_accept(q, (uv_stream_t*)(pConn->pTcp))) == 0) { uv_os_fd_t fd; TAOS_UNUSED(uv_fileno((const uv_handle_t*)pConn->pTcp, &fd)); - tTrace("conn %p created, fd:%d", pConn, fd); + tTrace("conn:%p, created, fd:%d", pConn, fd); struct sockaddr_storage peername, sockname; // Get and valid the peer info int addrlen = sizeof(peername); if ((code = uv_tcp_getpeername(pConn->pTcp, (struct sockaddr*)&peername, &addrlen)) != 0) { - tError("conn %p failed to get peer info since %s", pConn, uv_strerror(code)); + tError("conn:%p, failed to get peer info since %s", pConn, uv_strerror(code)); transUnrefSrvHandle(pConn); return; } if (peername.ss_family != AF_INET) { - tError("conn %p failed to get peer info since not support other protocol except ipv4", pConn); + tError("conn:%p, failed to get peer info since not support other protocol except ipv4", pConn); transUnrefSrvHandle(pConn); return; } @@ -1132,12 +1132,12 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { // Get and valid the sock info addrlen = sizeof(sockname); if ((code = uv_tcp_getsockname(pConn->pTcp, (struct sockaddr*)&sockname, &addrlen)) != 0) { - tError("conn %p failed to get local info since %s", pConn, uv_strerror(code)); + tError("conn:%p, failed to get local info since %s", pConn, uv_strerror(code)); transUnrefSrvHandle(pConn); return; } if (sockname.ss_family != AF_INET) { - tError("conn %p failed to get sock info since not support other protocol except ipv4", pConn); + tError("conn:%p, failed to get sock info since not support other protocol except ipv4", pConn); transUnrefSrvHandle(pConn); return; } @@ -1156,7 +1156,7 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { } code = uv_read_start((uv_stream_t*)(pConn->pTcp), uvAllocRecvBufferCb, uvOnRecvCb); if (code != 0) { - tWarn("conn %p failed to start to read since %s", pConn, uv_err_name(code)); + tWarn("conn:%p, failed to start to read since %s", pConn, uv_err_name(code)); transUnrefSrvHandle(pConn); return; } @@ -1341,7 +1341,7 @@ static FORCE_INLINE SSvrConn* createConn(void* hThrd) { pConn->refId = exh->refId; QUEUE_INIT(&exh->q); - tTrace("%s handle %p, conn %p created, refId:%" PRId64, transLabel(pInst), exh, pConn, pConn->refId); + tTrace("%s handle %p, conn:%p created, refId:%" PRId64, transLabel(pInst), exh, pConn, pConn->refId); pConn->pQTable = taosHashInit(1024, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK); if (pConn->pQTable == NULL) { @@ -1405,7 +1405,7 @@ static FORCE_INLINE void destroyConn(SSvrConn* conn, bool clear) { if (clear) { if (!uv_is_closing((uv_handle_t*)conn->pTcp)) { - tTrace("conn %p to be destroyed", conn); + tTrace("conn:%p, to be destroyed", conn); uv_close((uv_handle_t*)conn->pTcp, uvDestroyConn); } } @@ -1421,7 +1421,7 @@ void uvConnDestroyAllState(SSvrConn* p) { SSvrRegArg* arg = pIter; int64_t* qid = taosHashGetKey(pIter, NULL); (pInst->cfp)(pInst->parent, &(arg->msg), NULL); - tTrace("conn %p broken, notify server app, sid:%" PRId64 "", p, *qid); + tTrace("conn:%p, broken, notify server app, sid:%" PRId64 "", p, *qid); pIter = taosHashIterate(pQTable, pIter); } @@ -1441,7 +1441,7 @@ static void uvDestroyConn(uv_handle_t* handle) { transRemoveExHandle(uvGetConnRefOfThrd(thrd), conn->refId); STrans* pInst = thrd->pInst; - tDebug("%s conn %p destroy", transLabel(pInst), conn); + tDebug("%s conn:%p, destroy", transLabel(pInst), conn); transQueueDestroy(&conn->resps); @@ -1464,7 +1464,7 @@ static void uvDestroyConn(uv_handle_t* handle) { } static void uvPipeListenCb(uv_stream_t* handle, int status) { if (status != 0) { - tError("server failed to init pipe, errmsg: %s", uv_err_name(status)); + tError("server failed to init pipe, errmsg:%s", uv_err_name(status)); return; } @@ -1473,12 +1473,12 @@ static void uvPipeListenCb(uv_stream_t* handle, int status) { int ret = uv_pipe_init(srv->loop, pipe, 1); if (ret != 0) { - tError("trans-svr failed to init pipe, errmsg: %s", uv_err_name(ret)); + tError("trans-svr failed to init pipe, errmsg:%s", uv_err_name(ret)); } ret = uv_accept((uv_stream_t*)&srv->pipeListen, (uv_stream_t*)pipe); if (ret != 0) { - tError("trans-svr failed to accept pipe, errmsg: %s", uv_err_name(ret)); + tError("trans-svr failed to accept pipe, errmsg:%s", uv_err_name(ret)); return; } @@ -1507,7 +1507,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, SServerObj* srv = taosMemoryCalloc(1, sizeof(SServerObj)); if (srv == NULL) { code = terrno; - tError("failed to init server since: %s", tstrerror(code)); + tError("failed to init server since:%s", tstrerror(code)); return NULL; } @@ -1526,7 +1526,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, code = uv_loop_init(srv->loop); if (code != 0) { - tError("failed to init server since: %s", uv_err_name(code)); + tError("failed to init server since:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } @@ -1541,7 +1541,7 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, #if defined(WINDOWS) || defined(DARWIN) int ret = uv_pipe_init(srv->loop, &srv->pipeListen, 0); if (ret != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to init pipe, errmsg:%s", uv_err_name(ret)); goto End; } #if defined(WINDOWS) @@ -1553,13 +1553,13 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, ret = uv_pipe_bind(&srv->pipeListen, pipeName); if (ret != 0) { - tError("failed to bind pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to bind pipe, errmsg:%s", uv_err_name(ret)); goto End; } ret = uv_listen((uv_stream_t*)&srv->pipeListen, SOMAXCONN, uvPipeListenCb); if (ret != 0) { - tError("failed to listen pipe, errmsg: %s", uv_err_name(ret)); + tError("failed to listen pipe, errmsg:%s", uv_err_name(ret)); goto End; } @@ -1637,21 +1637,21 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, uv_os_sock_t fds[2]; if ((code = uv_socketpair(SOCK_STREAM, 0, fds, UV_NONBLOCK_PIPE, UV_NONBLOCK_PIPE)) != 0) { - tError("failed to create pipe, errmsg: %s", uv_err_name(code)); + tError("failed to create pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } code = uv_pipe_init(srv->loop, &(srv->pipe[i][0]), 1); if (code != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(code)); + tError("failed to init pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } code = uv_pipe_open(&(srv->pipe[i][0]), fds[1]); if (code != 0) { - tError("failed to init pipe, errmsg: %s", uv_err_name(code)); + tError("failed to init pipe, errmsg:%s", uv_err_name(code)); code = TSDB_CODE_THIRDPARTY_ERROR; goto End; } @@ -1718,7 +1718,7 @@ void uvHandleRelease(SSvrRespMsg* msg, SWorkThrd* thrd) { return; } void uvHandleResp(SSvrRespMsg* msg, SWorkThrd* thrd) { // send msg to client - tDebug("%s conn %p start to send resp (2/2)", transLabel(thrd->pInst), msg->pConn); + tDebug("%s conn:%p, start to send resp (2/2)", transLabel(thrd->pInst), msg->pConn); uvStartSendResp(msg); } @@ -1726,7 +1726,7 @@ int32_t uvHandleStateReq(SSvrRespMsg* msg) { int32_t code = 0; SSvrConn* conn = msg->pConn; int64_t qid = msg->msg.info.qId; - tDebug("%s conn %p start to register brokenlink callback, sid:%" PRId64 "", transLabel(conn->pInst), conn, qid); + tDebug("%s conn:%p, start to register brokenlink callback, sid:%" PRId64 "", transLabel(conn->pInst), conn, qid); SSvrRegArg arg = {.notifyCount = 0, .init = 1, .msg = msg->msg}; SSvrRegArg* p = taosHashGet(conn->pQTable, &qid, sizeof(qid)); @@ -1735,12 +1735,12 @@ int32_t uvHandleStateReq(SSvrRespMsg* msg) { } code = taosHashPut(conn->pQTable, &qid, sizeof(qid), &arg, sizeof(arg)); - if (code == 0) tDebug("conn %p register brokenlink callback succ", conn); + if (code == 0) tDebug("conn:%p, register brokenlink callback succ", conn); return code; } void uvHandleRegister(SSvrRespMsg* msg, SWorkThrd* thrd) { SSvrConn* conn = msg->pConn; - tDebug("%s conn %p register brokenlink callback", transLabel(thrd->pInst), conn); + tDebug("%s conn:%p, register brokenlink callback", transLabel(thrd->pInst), conn); int32_t code = uvHandleStateReq(msg); taosMemoryFree(msg); } @@ -1859,7 +1859,7 @@ void transRefSrvHandle(void* handle) { } SSvrConn* pConn = handle; pConn->ref++; - tTrace("conn %p ref count:%d", pConn, pConn->ref); + tTrace("conn:%p, ref count:%d", pConn, pConn->ref); } void transUnrefSrvHandle(void* handle) { @@ -1868,7 +1868,7 @@ void transUnrefSrvHandle(void* handle) { } SSvrConn* pConn = handle; pConn->ref--; - tTrace("conn %p ref count:%d", pConn, pConn->ref); + tTrace("conn:%p, ref count:%d", pConn, pConn->ref); if (pConn->ref == 0) { destroyConn((SSvrConn*)handle, true); } @@ -1903,7 +1903,7 @@ int32_t transReleaseSrvHandle(void* handle, int32_t status) { m->msg = tmsg; m->type = Normal; - tDebug("%s conn %p start to send %s, sid:%" PRId64 "", transLabel(pThrd->pInst), exh->handle, TMSG_INFO(tmsg.msgType), + tDebug("%s conn:%p, start to send %s, sid:%" PRId64 "", transLabel(pThrd->pInst), exh->handle, TMSG_INFO(tmsg.msgType), qId); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); @@ -1958,7 +1958,7 @@ int32_t transSendResponse(const STransMsg* msg) { m->type = Normal; STraceId* trace = (STraceId*)&msg->info.traceId; - tGDebug("conn %p start to send resp (1/2)", exh->handle); + tGDebug("conn:%p, start to send resp (1/2)", exh->handle); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); transReleaseExHandle(msg->info.refIdMgt, refId); @@ -2006,7 +2006,7 @@ int32_t transRegisterMsg(const STransMsg* msg) { m->type = Register; STrans* pInst = pThrd->pInst; - tDebug("%s conn %p start to register brokenlink callback", transLabel(pInst), exh->handle); + tDebug("%s conn:%p, start to register brokenlink callback", transLabel(pInst), exh->handle); if ((code = transAsyncSend(pThrd->asyncPool, &m->q)) != 0) { destroySmsg(m); transReleaseExHandle(msg->info.refIdMgt, refId); diff --git a/source/util/src/tpagedbuf.c b/source/util/src/tpagedbuf.c index 003150bde1..e56896144f 100644 --- a/source/util/src/tpagedbuf.c +++ b/source/util/src/tpagedbuf.c @@ -408,7 +408,7 @@ int32_t createDiskbasedBuf(SDiskbasedBuf** pBuf, int32_t pagesize, int64_t inMem goto _error; } - // qDebug("QInfo:0x%"PRIx64" create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, + // qDebug("QInfo:0x%"PRIx64 " create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, // pPBuf->pageSize, pPBuf->inMemPages, pPBuf->path); *pBuf = pPBuf; diff --git a/source/util/src/tqueue.c b/source/util/src/tqueue.c index 0b4ed6dbc2..d2a2cab21e 100644 --- a/source/util/src/tqueue.c +++ b/source/util/src/tqueue.c @@ -214,14 +214,14 @@ int32_t taosWriteQitem(STaosQueue *queue, void *pItem) { (void)taosThreadMutexLock(&queue->mutex); if (queue->memLimit > 0 && (queue->memOfItems + pNode->size + pNode->dataSize) > queue->memLimit) { code = TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY; - uError("item:%p failed to put into queue:%p, queue mem limit: %" PRId64 ", reason: %s" PRId64, pItem, queue, + uError("item:%p, failed to put into queue:%p, queue mem limit:%" PRId64 ", reason:%s" PRId64, pItem, queue, queue->memLimit, tstrerror(code)); (void)taosThreadMutexUnlock(&queue->mutex); return code; } else if (queue->itemLimit > 0 && queue->numOfItems + 1 > queue->itemLimit) { code = TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY; - uError("item:%p failed to put into queue:%p, queue size limit: %" PRId64 ", reason: %s" PRId64, pItem, queue, + uError("item:%p, failed to put into queue:%p, queue size limit:%" PRId64 ", reason:%s" PRId64, pItem, queue, queue->itemLimit, tstrerror(code)); (void)taosThreadMutexUnlock(&queue->mutex); return code; @@ -240,7 +240,7 @@ int32_t taosWriteQitem(STaosQueue *queue, void *pItem) { (void)atomic_add_fetch_32(&queue->qset->numOfItems, 1); } - uTrace("item:%p is put into queue:%p, items:%d mem:%" PRId64, pItem, queue, queue->numOfItems, queue->memOfItems); + uTrace("item:%p, is put into queue:%p, items:%d mem:%" PRId64, pItem, queue, queue->numOfItems, queue->memOfItems); (void)taosThreadMutexUnlock(&queue->mutex); @@ -269,7 +269,7 @@ void taosReadQitem(STaosQueue *queue, void **ppItem) { if (queue->qset) { (void)atomic_sub_fetch_32(&queue->qset->numOfItems, 1); } - uTrace("item:%p is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems, + uTrace("item:%p, is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems, queue->memOfItems); } @@ -341,7 +341,7 @@ int32_t taosGetQitem(STaosQall *qall, void **ppItem) { qall->unAccessedNumOfItems -= 1; qall->unAccessMemOfItems -= pNode->dataSize; - uTrace("item:%p is fetched", *ppItem); + uTrace("item:%p, is fetched", *ppItem); } else { *ppItem = NULL; } @@ -491,7 +491,7 @@ int32_t taosReadQitemFromQset(STaosQset *qset, void **ppItem, SQueueInfo *qinfo) queue->memOfItems -= (pNode->size + pNode->dataSize); (void)atomic_sub_fetch_32(&qset->numOfItems, 1); code = 1; - uTrace("item:%p is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems - 1, + uTrace("item:%p, is read out from queue:%p, items:%d mem:%" PRId64, *ppItem, queue, queue->numOfItems - 1, queue->memOfItems); } diff --git a/source/util/src/tref.c b/source/util/src/tref.c index f3597b5586..dd5e820182 100644 --- a/source/util/src/tref.c +++ b/source/util/src/tref.c @@ -98,7 +98,7 @@ int32_t taosOpenRef(int32_t max, RefFp fp) { taosIncRsetCount(pSet); tsRefSetNum++; - uTrace("rsetId:%d is opened, max:%d, fp:%p refSetNum:%d", rsetId, max, fp, tsRefSetNum); + uTrace("rsetId:%d, is opened, max:%d, fp:%p refSetNum:%d", rsetId, max, fp, tsRefSetNum); } else { rsetId = TSDB_CODE_REF_FULL; taosMemoryFree(nodeList); @@ -116,7 +116,7 @@ void taosCloseRef(int32_t rsetId) { int32_t deleted = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d is invalid, out of range", rsetId); + uTrace("rsetId:%d, is invalid, out of range", rsetId); return; } @@ -127,9 +127,9 @@ void taosCloseRef(int32_t rsetId) { if (pSet->state == TSDB_REF_STATE_ACTIVE) { pSet->state = TSDB_REF_STATE_DELETED; deleted = 1; - uTrace("rsetId:%d is closed, count:%d", rsetId, pSet->count); + uTrace("rsetId:%d, is closed, count:%d", rsetId, pSet->count); } else { - uTrace("rsetId:%d is already closed, count:%d", rsetId, pSet->count); + uTrace("rsetId:%d, is already closed, count:%d", rsetId, pSet->count); } (void)taosThreadMutexUnlock(&tsRefMutex); @@ -144,7 +144,7 @@ int64_t taosAddRef(int32_t rsetId, void *p) { int64_t rid = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d p:%p failed to add, rsetId not valid", rsetId, p); + uTrace("rsetId:%d, p:%p failed to add, rsetId not valid", rsetId, p); return terrno = TSDB_CODE_REF_INVALID_ID; } @@ -152,14 +152,14 @@ int64_t taosAddRef(int32_t rsetId, void *p) { taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { taosDecRsetCount(pSet); - uTrace("rsetId:%d p:%p failed to add, not active", rsetId, p); + uTrace("rsetId:%d, p:%p failed to add, not active", rsetId, p); return terrno = TSDB_CODE_REF_ID_REMOVED; } pNode = taosMemoryCalloc(sizeof(SRefNode), 1); if (pNode == NULL) { taosDecRsetCount(pSet); - uError("rsetId:%d p:%p failed to add, out of memory", rsetId, p); + uError("rsetId:%d, p:%p failed to add, out of memory", rsetId, p); return terrno; } @@ -176,7 +176,7 @@ int64_t taosAddRef(int32_t rsetId, void *p) { if (pSet->nodeList[hash]) pSet->nodeList[hash]->prev = pNode; pSet->nodeList[hash] = pNode; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is added, count:%d, remain count:%d", rsetId, p, rid, pSet->count, + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is added, count:%d, remain count:%d", rsetId, p, rid, pSet->count, pNode->count); taosUnlockList(pSet->lockedBy + hash); @@ -195,13 +195,13 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { void *p = NULL; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - // uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, rsetId not valid", rsetId, rid); + // uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, rsetId not valid", rsetId, rid); terrno = TSDB_CODE_REF_INVALID_ID; return NULL; } if (rid <= 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, rid not valid", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; return NULL; } @@ -209,7 +209,7 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { pSet = tsRefSetList + rsetId; taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { - uTrace("rsetId:%d rid:%" PRId64 " failed to acquire, not active", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, not active", rsetId, rid); taosDecRsetCount(pSet); terrno = TSDB_CODE_REF_ID_REMOVED; return NULL; @@ -229,21 +229,21 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode) { if (pNode->removed == 0) { pNode->count++; p = pNode->p; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is acquired, remain count:%d", rsetId, pNode->p, rid, pNode->count); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is acquired, remain count:%d", rsetId, pNode->p, rid, pNode->count); } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d p:%p rid:%" PRId64 " is already removed, failed to acquire", rsetId, pNode->p, rid); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is already removed, failed to acquire", rsetId, pNode->p, rid); } } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d rid:%" PRId64 " is not there, failed to acquire", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to acquire", rsetId, rid); } taosUnlockList(pSet->lockedBy + hash); @@ -264,13 +264,13 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { SRefSet *pSet; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rsetId not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rsetId not valid", rsetId, rid); terrno = TSDB_CODE_REF_INVALID_ID; return NULL; } if (rid < 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rid not valid", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; return NULL; } @@ -279,7 +279,7 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { pSet = tsRefSetList + rsetId; taosIncRsetCount(pSet); if (pSet->state != TSDB_REF_STATE_ACTIVE) { - uTrace("rsetId:%d rid:%" PRId64 " failed to iterate, rset not active", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rset not active", rsetId, rid); terrno = TSDB_CODE_REF_ID_REMOVED; taosDecRsetCount(pSet); return NULL; @@ -301,11 +301,11 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode == NULL) { - uError("rsetId:%d rid:%" PRId64 " not there, quit", rsetId, rid); + uError("rsetId:%d, rid:0x%" PRIx64 " not there, quit", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; taosUnlockList(pSet->lockedBy + hash); taosDecRsetCount(pSet); @@ -345,9 +345,9 @@ void *taosIterateRef(int32_t rsetId, int64_t rid) { pNode->count++; // acquire it newP = pNode->p; taosUnlockList(pSet->lockedBy + hash); - uTrace("rsetId:%d p:%p rid:%" PRId64 " is returned", rsetId, newP, rid); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is returned", rsetId, newP, rid); } else { - uTrace("rsetId:%d the list is over", rsetId); + uTrace("rsetId:%d, the list is over", rsetId); } if (rid > 0) taosReleaseRef(rsetId, rid); // release the current one @@ -371,13 +371,13 @@ int32_t taosListRef() { if (pSet->state == TSDB_REF_STATE_EMPTY) continue; - uInfo("rsetId:%d state:%d count:%d", i, pSet->state, pSet->count); + uInfo("rsetId:%d, state:%d count:%d", i, pSet->state, pSet->count); for (int32_t j = 0; j < pSet->max; ++j) { pNode = pSet->nodeList[j]; while (pNode) { - uInfo("rsetId:%d p:%p rid:%" PRId64 "count:%d", i, pNode->p, pNode->rid, pNode->count); + uInfo("rsetId:%d, p:%p rid:0x%" PRIx64 "count:%d", i, pNode->p, pNode->rid, pNode->count); pNode = pNode->next; num++; } @@ -398,18 +398,18 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 int32_t code = 0; if (rsetId < 0 || rsetId >= TSDB_REF_OBJECTS) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, rsetId not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, rsetId not valid", rsetId, rid); return terrno = TSDB_CODE_REF_INVALID_ID; } if (rid <= 0) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, rid not valid", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, rid not valid", rsetId, rid); return terrno = TSDB_CODE_REF_NOT_EXIST; } pSet = tsRefSetList + rsetId; if (pSet->state == TSDB_REF_STATE_EMPTY) { - uTrace("rsetId:%d rid:%" PRId64 " failed to remove, cleaned", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, cleaned", rsetId, rid); return terrno = TSDB_CODE_REF_ID_REMOVED; } @@ -425,7 +425,7 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 } if (iter >= TSDB_REF_ITER_THRESHOLD) { - uWarn("rsetId:%d rid:%" PRId64 " iter:%d", rsetId, rid, iter); + uWarn("rsetId:%d, rid:0x%" PRIx64 " iter:%d", rsetId, rid, iter); } if (pNode) { @@ -444,10 +444,10 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 } released = 1; } else { - uTrace("rsetId:%d p:%p rid:%" PRId64 " is released, remain count %d", rsetId, pNode->p, rid, pNode->count); + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is released, remain count %d", rsetId, pNode->p, rid, pNode->count); } } else { - uTrace("rsetId:%d rid:%" PRId64 " is not there, failed to release/remove", rsetId, rid); + uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to release/remove", rsetId, rid); terrno = TSDB_CODE_REF_NOT_EXIST; code = terrno; } @@ -455,7 +455,7 @@ static int32_t taosDecRefCount(int32_t rsetId, int64_t rid, int32_t remove, int3 taosUnlockList(pSet->lockedBy + hash); if (released) { - uTrace("rsetId:%d p:%p rid:%" PRId64 " is removed, count:%d, free mem: %p", rsetId, pNode->p, rid, pSet->count, + uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is removed, count:%d, free mem: %p", rsetId, pNode->p, rid, pSet->count, pNode); (*pSet->fp)(pNode->p); taosMemoryFree(pNode); @@ -489,12 +489,12 @@ static void taosInitRefModule(void) { (void)taosThreadMutexInit(&tsRefMutex, NUL static void taosIncRsetCount(SRefSet *pSet) { (void)atomic_add_fetch_32(&pSet->count, 1); - // uTrace("rsetId:%d inc count:%d", pSet->rsetId, count); + // uTrace("rsetId:%d, inc count:%d", pSet->rsetId, count); } static void taosDecRsetCount(SRefSet *pSet) { int32_t count = atomic_sub_fetch_32(&pSet->count, 1); - // uTrace("rsetId:%d dec count:%d", pSet->rsetId, count); + // uTrace("rsetId:%d, dec count:%d", pSet->rsetId, count); if (count > 0) return; @@ -509,7 +509,7 @@ static void taosDecRsetCount(SRefSet *pSet) { taosMemoryFreeClear(pSet->lockedBy); tsRefSetNum--; - uTrace("rsetId:%d is cleaned, refSetNum:%d count:%d", pSet->rsetId, tsRefSetNum, pSet->count); + uTrace("rsetId:%d, is cleaned, refSetNum:%d count:%d", pSet->rsetId, tsRefSetNum, pSet->count); } (void)taosThreadMutexUnlock(&tsRefMutex); From 990b99163384b8030d3ced115d7c69dea1aafa3f Mon Sep 17 00:00:00 2001 From: Linhe Huo Date: Thu, 27 Feb 2025 23:49:37 +0800 Subject: [PATCH 26/34] docs: automatically add new databases for active-active replication Relates to [TS-5606](https://jira.taosdata.com:18080/browse/TS-5606) --- docs/en/08-operation/18-dual.md | 13 ++++++++++++- docs/zh/08-operation/18-ha/03-dual.md | 22 +++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/docs/en/08-operation/18-dual.md b/docs/en/08-operation/18-dual.md index 9b27796a8b..fa99266261 100644 --- a/docs/en/08-operation/18-dual.md +++ b/docs/en/08-operation/18-dual.md @@ -53,6 +53,8 @@ It is not necessary to configure your cluster specifically for active-active mod - The sink endpoint is the FQDN of TDengine on the secondary node. - You can use the native connection (port 6030) or WebSocket connection (port 6041). - You can specify one or more databases to replicate only the data contained in those databases. If you do not specify a database, all databases on the node are replicated except for `information_schema`, `performance_schema`, `log`, and `audit`. + - New databases in both sides will be detected periodically to start replication, with optional `--new-database-checking-interval ` argument. + - New databases checking will be disabled with `--no-new-databases`. When the command is successful, the replica ID is displayed. You can use this ID to add other databases to the replication task if necessary. @@ -97,7 +99,6 @@ You can manage your active-active deployment with the following commands: :::note - This command cannot create duplicate tasks. It only adds the specified databases to the specified task. - The replica ID is globally unique within a taosX instance and is independent of the source/sink combination. - ::: 2. Check the status of a task: @@ -124,6 +125,8 @@ You can manage your active-active deployment with the following commands: If you specify a database, replication for that database is stopped. If you do not specify a database, all replication tasks on the ID are stopped. If you do not specify an ID, all replication tasks on the instance are stopped. + Use `--no-new-databases` to not stop new-databases checking. + 4. Restart a replication task: ```shell @@ -132,6 +135,14 @@ You can manage your active-active deployment with the following commands: If you specify a database, replication for that database is restarted. If you do not specify a database, all replication tasks in the instance are restarted. If you do not specify an ID, all replication tasks on the instance are restarted. +5. Update new databases checking interval: + + ```shell + taosx replica update id --new-database-checking-interval + ``` + + This command will only update the checking interval for new databases. + 5. Check the progress of a replication task: ```shell diff --git a/docs/zh/08-operation/18-ha/03-dual.md b/docs/zh/08-operation/18-ha/03-dual.md index 20565bd562..69833a0db7 100644 --- a/docs/zh/08-operation/18-ha/03-dual.md +++ b/docs/zh/08-operation/18-ha/03-dual.md @@ -81,7 +81,12 @@ taosx replica start -f source_endpoint -t sink_endpoint [database...] taosx replica start -f td1:6030 -t td2:6030 ``` -该示例命令会自动创建除 information_schema、performance_schema、log、audit 库之外的同步任务。可以使用 `http://td2:6041` 指定该 endpoint 使用 websocket 接口(默认是原生接口)。也可以指定数据库同步:taosx replica start -f td1:6030 -t td2:6030 db1 仅创建指定的数据库同步任务。 +该示例命令会自动创建除 information_schema、performance_schema、log、audit 库之外的同步任务,并持续监听新增的数据库,当 td1 和 td2 中新增同名数据库时可自动启动新增数据库的数据复制任务。需要说明的是: + +- 可以使用 `http://td2:6041` 指定该 endpoint 使用 websocket 接口(默认是原生接口)。 +- 可以使用 `--new-database-checking-interval ` 指定新增数据库的检查间隔,默认为 30 分钟。 +- 可以使用 `--no-new-databases` 禁用监听行为。 +- 也可以指定数据库同步:taosx replica start -f td1:6030 -t td2:6030 db1 仅创建指定的数据库同步任务。此时相当于配置了 `--no-new-databases`,不会开启新增数据库自动同步。 2. 方法二 @@ -121,6 +126,7 @@ taosx replica stop id [db...] 该命令作用如下: 1. 停止指定 Replica ID 下所有或指定数据库的双副本同步任务。 2. 使用 `taosx replica stop id1 db1` 表示停止 id1 replica 下 db1的同步任务。 +3. `--no-new-databases` 选项启用时,不停止新增数据库监听任务,仅停止当前同步中的数据库。 ### 重启双活任务 @@ -145,8 +151,8 @@ taosx replica diff id [db....] | replica | database | source | sink | vgroup_id | current | latest | diff | +---------+----------+----------+----------+-----------+---------+---------+------+ | a | opc | td1:6030 | td2:6030 | 2 | 17600 | 17600 | 0 | -| ad | opc | td2:6030 | td2:6030 | 3 | 17600 | 17600 | 0 | -``` +| a | opc | td2:6030 | td2:6030 | 3 | 17600 | 17600 | 0 | +``` ### 删除双活任务 @@ -156,6 +162,16 @@ taosx replica remove id [--force] 删除当前所有双活同步任务。正常情况下要想删除同步任务,需要先 stop 该任务;但当 --force 启用时,会强制停止并清除任务。 +`--no-new-databases` 选项启用时,不会删除新增数据库同步任务,仅删除当前数据库的同步任务。当 taosx 重启后,如果删除的数据库任务对应的数据库仍然存在,则会继续创建同步任务;不重启 taosx 或者不更新双活监听任务时,也不会再新建这些数据库的同步任务。 + +### 更新双活新增数据库检查间隔 + +```shell +taosx replica update id --new-database-checking-interval +``` + +更新双活新增数据库的检查间隔,单位为秒。 + ### 推荐使用步骤 1. 假定在机器 A 上运行,需要首先使用 taosx replica start 来配置 taosX,其输入参数是待同步的源端和目标端服务器地址 ,在完成配置后会自动启动同步服务和任务。此处假定 taosx 服务使用标准端口,同步任务使用原生连接。 From 43ca6d5f9e7c3dacf5894874b2cc95ec4e9b23d0 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Thu, 27 Feb 2025 14:27:46 +0800 Subject: [PATCH 27/34] refactor: adjust some logs --- source/client/src/clientEnv.c | 26 +- source/client/src/clientHb.c | 28 +-- source/client/src/clientImpl.c | 6 +- source/client/src/clientJniConnector.c | 4 +- source/client/src/clientMain.c | 6 +- source/client/src/clientMonitor.c | 38 +-- source/client/src/clientMsgHandler.c | 6 +- source/client/src/clientSml.c | 64 ++--- source/client/src/clientStmt.c | 12 +- source/client/src/clientStmt2.c | 12 +- source/client/src/clientTmq.c | 28 +-- source/client/src/clientTmqConnector.c | 4 +- source/common/src/tglobal.c | 8 +- source/dnode/mgmt/mgmt_dnode/src/dmWorker.c | 2 +- source/dnode/mnode/impl/src/mndProfile.c | 2 +- source/libs/catalog/src/catalog.c | 49 ++-- source/libs/catalog/src/ctgAsync.c | 16 +- source/libs/catalog/src/ctgCache.c | 250 ++++++++++---------- source/libs/catalog/src/ctgRemote.c | 110 ++++----- source/libs/catalog/src/ctgRent.c | 49 ++-- source/libs/catalog/src/ctgUtil.c | 26 +- source/libs/executor/src/groupoperator.c | 2 +- source/libs/executor/src/scanoperator.c | 2 +- source/libs/function/src/udfd.c | 6 +- source/libs/nodes/inc/nodesUtil.h | 12 +- source/libs/nodes/src/nodesUtilFuncs.c | 16 +- source/libs/parser/src/parInsertSql.c | 4 +- source/libs/qcom/src/queryUtil.c | 2 +- source/libs/qcom/src/querymsg.c | 22 +- source/libs/scheduler/src/schJob.c | 12 +- source/libs/scheduler/src/schUtil.c | 2 +- source/libs/scheduler/src/scheduler.c | 4 +- source/libs/transport/src/thttp.c | 4 +- source/libs/transport/src/transCli.c | 26 +- source/libs/transport/src/transComm.c | 2 +- source/util/src/tconfig.c | 2 +- source/util/src/tpagedbuf.c | 2 +- source/util/src/tqueue.c | 8 +- tests/script/test.sh | 10 +- 39 files changed, 442 insertions(+), 442 deletions(-) diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 33d0909d81..266bd4a618 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -255,7 +255,7 @@ static void deregisterRequest(SRequestObj *pRequest) { int64_t duration = taosGetTimestampUs() - pRequest->metric.start; tscDebug("req:0x%" PRIx64 ", free from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 - " elapsed:%.2f ms, current:%d, app current:%d", + ", elapsed:%.2f ms, current:%d, app current:%d", pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst); if (TSDB_CODE_SUCCESS == nodesSimAcquireAllocator(pRequest->allocatorRefId)) { @@ -297,7 +297,7 @@ static void deregisterRequest(SRequestObj *pRequest) { checkSlowLogExceptDb(pRequest, pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogExceptDb)) { (void)atomic_add_fetch_64((int64_t *)&pActivity->numOfSlowQueries, 1); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsSlowLogScope & reqType) { - taosPrintSlowLog("PID:%d, Conn:%u, QID:0x%" PRIx64 ", Start:%" PRId64 "us, Duration:%" PRId64 "us, SQL:%s", + taosPrintSlowLog("PID:%d, connId:%u, QID:0x%" PRIx64 ", Start:%" PRId64 "us, Duration:%" PRId64 "us, SQL:%s", taosGetPId(), pTscObj->connId, pRequest->requestId, pRequest->metric.start, duration, pRequest->sqlstr); if (pTscObj->pAppInfo->serverCfg.monitorParas.tsEnableMonitor) { @@ -516,7 +516,7 @@ int32_t createTscObj(const char *user, const char *auth, const char *db, int32_t (void)atomic_add_fetch_64(&(*pObj)->pAppInfo->numOfConns, 1); - tscDebug("connObj created, 0x%" PRIx64 ",p:%p", (*pObj)->id, *pObj); + tscInfo("connObj:0x%" PRIx64 ", created, p:%p", (*pObj)->id, *pObj); return code; } @@ -682,13 +682,13 @@ void doDestroyRequest(void *p) { SRequestObj *pRequest = (SRequestObj *)p; uint64_t reqId = pRequest->requestId; - tscDebug("QID:0x%" PRIx64 ", begin destroy request p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", begin destroy request, res:%p", reqId, pRequest); int64_t nextReqRefId = pRequest->relation.nextRefId; int32_t code = taosHashRemove(pRequest->pTscObj->pRequests, &pRequest->self, sizeof(pRequest->self)); if (TSDB_CODE_SUCCESS != code) { - tscWarn("failed to remove request from hash, code:%s", tstrerror(code)); + tscDebug("failed to remove request from hash since %s", tstrerror(code)); } schedulerFreeJob(&pRequest->body.queryJob, 0); @@ -724,14 +724,12 @@ void doDestroyRequest(void *p) { taosMemoryFreeClear(pRequest->effectiveUser); taosMemoryFreeClear(pRequest->sqlstr); taosMemoryFree(pRequest); - tscDebug("QID:0x%" PRIx64 ", end destroy request p:%p", reqId, pRequest); + tscDebug("QID:0x%" PRIx64 ", end destroy request, res:%p", reqId, pRequest); destroyNextReq(nextReqRefId); } void destroyRequest(SRequestObj *pRequest) { - if (pRequest == NULL) { - return; - } + if (pRequest == NULL) return; taos_stop_query(pRequest); (void)removeFromMostPrevReq(pRequest); @@ -742,7 +740,7 @@ void taosStopQueryImpl(SRequestObj *pRequest) { // It is not a query, no need to stop. if (NULL == pRequest->pQuery || QUERY_EXEC_MODE_SCHEDULE != pRequest->pQuery->execMode) { - tscDebug("request 0x%" PRIx64 " no need to be killed since not query", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", no need to be killed since not query", pRequest->requestId); return; } @@ -855,7 +853,7 @@ static void *tscCrashReportThreadFp(void *param) { truncateFile = true; } } else { - tscDebug("no crash info"); + tscInfo("no crash info was found"); } taosMemoryFree(pMsg); @@ -983,13 +981,13 @@ void taos_init_imp(void) { return; } + tscInfo("starting to initialize TAOS driver"); + SCatalogCfg cfg = {.maxDBCacheNum = 100, .maxTblCacheNum = 100}; ENV_ERR_RET(catalogInit(&cfg), "failed to init catalog"); ENV_ERR_RET(schedulerInit(), "failed to init scheduler"); ENV_ERR_RET(initClientId(), "failed to init clientId"); - tscDebug("starting to initialize TAOS driver"); - ENV_ERR_RET(initTaskQueue(), "failed to init task queue"); ENV_ERR_RET(fmFuncMgtInit(), "failed to init funcMgt"); ENV_ERR_RET(nodesInitAllocatorSet(), "failed to init allocator set"); @@ -1002,7 +1000,7 @@ void taos_init_imp(void) { ENV_ERR_RET(tscCrashReportInit(), "failed to init crash report"); ENV_ERR_RET(qInitKeywordsTable(), "failed to init parser keywords table"); - tscDebug("client is initialized successfully"); + tscInfo("TAOS driver is initialized successfully"); } int taos_init() { diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index b6a1c7fe7a..724adaf136 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -388,11 +388,11 @@ static int32_t hbprocessTSMARsp(void *value, int32_t valueLen, struct SCatalog * STableTSMAInfo *pTsmaInfo = taosArrayGetP(hbRsp.pTsmas, i); if (!pTsmaInfo->pFuncs) { - tscDebug("hb to remove tsma: %s.%s", pTsmaInfo->dbFName, pTsmaInfo->name); + tscDebug("hb to remove tsma:%s.%s", pTsmaInfo->dbFName, pTsmaInfo->name); code = catalogRemoveTSMA(pCatalog, pTsmaInfo); tFreeAndClearTableTSMAInfo(pTsmaInfo); } else { - tscDebug("hb to update tsma: %s.%s", pTsmaInfo->dbFName, pTsmaInfo->name); + tscDebug("hb to update tsma:%s.%s", pTsmaInfo->dbFName, pTsmaInfo->name); code = catalogUpdateTSMA(pCatalog, &pTsmaInfo); tFreeAndClearTableTSMAInfo(pTsmaInfo); } @@ -452,7 +452,7 @@ static void hbProcessQueryRspKvs(int32_t kvNum, SArray *pKvs, struct SCatalog *p break; } if (TSDB_CODE_SUCCESS != hbProcessDynViewRsp(kv->value, kv->valueLen, pCatalog)) { - tscError("Process dyn view response failed, len: %d, value: %p", kv->valueLen, kv->value); + tscError("Process dyn view response failed, len:%d, value:%p", kv->valueLen, kv->value); break; } break; @@ -463,7 +463,7 @@ static void hbProcessQueryRspKvs(int32_t kvNum, SArray *pKvs, struct SCatalog *p break; } if (TSDB_CODE_SUCCESS != hbProcessViewInfoRsp(kv->value, kv->valueLen, pCatalog)) { - tscError("Process view info response failed, len: %d, value: %p", kv->valueLen, kv->value); + tscError("Process view info response failed, len:%d, value:%p", kv->valueLen, kv->value); break; } break; @@ -471,10 +471,10 @@ static void hbProcessQueryRspKvs(int32_t kvNum, SArray *pKvs, struct SCatalog *p #endif case HEARTBEAT_KEY_TSMA: { if (kv->valueLen <= 0 || !kv->value) { - tscError("Invalid tsma info, len: %d, value: %p", kv->valueLen, kv->value); + tscError("Invalid tsma info, len:%d, value:%p", kv->valueLen, kv->value); } if (TSDB_CODE_SUCCESS != hbprocessTSMARsp(kv->value, kv->valueLen, pCatalog)) { - tscError("Process tsma info response failed, len: %d, value: %p", kv->valueLen, kv->value); + tscError("Process tsma info response failed, len:%d, value:%p", kv->valueLen, kv->value); } break; } @@ -512,14 +512,14 @@ static int32_t hbQueryHbRspHandle(SAppHbMgr *pAppHbMgr, SClientHbRsp *pRsp) { pTscObj->pAppInfo->totalDnodes = pRsp->query->totalDnodes; pTscObj->pAppInfo->onlineDnodes = pRsp->query->onlineDnodes; pTscObj->connId = pRsp->query->connId; - tscTrace("conn %u hb rsp, dnodes %d/%d", pTscObj->connId, pTscObj->pAppInfo->onlineDnodes, + tscTrace("connId:%u, hb rsp, dnodes %d/%d", pTscObj->connId, pTscObj->pAppInfo->onlineDnodes, pTscObj->pAppInfo->totalDnodes); if (pRsp->query->killRid) { - tscDebug("request rid %" PRIx64 " need to be killed now", pRsp->query->killRid); + tscDebug("QID:%" PRIx64 ", need to be killed now", pRsp->query->killRid); SRequestObj *pRequest = acquireRequest(pRsp->query->killRid); if (NULL == pRequest) { - tscDebug("request 0x%" PRIx64 " not exist to kill", pRsp->query->killRid); + tscDebug("QID:0x%" PRIx64 ", not exist to kill", pRsp->query->killRid); } else { taos_stop_query((TAOS_RES *)pRequest); (void)releaseRequest(pRsp->query->killRid); @@ -576,7 +576,7 @@ static int32_t hbAsyncCallBack(void *param, SDataBuf *pMsg, int32_t code) { int32_t delta = abs(now - pRsp.svrTimestamp); if (delta > timestampDeltaLimit) { code = TSDB_CODE_TIME_UNSYNCED; - tscError("time diff: %ds is too big", delta); + tscError("time diff:%ds is too big", delta); } } @@ -703,7 +703,7 @@ int32_t hbBuildQueryDesc(SQueryHbReqBasic *hbBasic, STscObj *pObj) { int32_t hbGetQueryBasicInfo(SClientHbKey *connKey, SClientHbReq *req) { STscObj *pTscObj = (STscObj *)acquireTscObj(connKey->tscRid); if (NULL == pTscObj) { - tscWarn("tscObj rid %" PRIx64 " not exist", connKey->tscRid); + tscWarn("tscObj rid 0x%" PRIx64 " not exist", connKey->tscRid); return terrno; } @@ -751,7 +751,7 @@ int32_t hbGetQueryBasicInfo(SClientHbKey *connKey, SClientHbReq *req) { static int32_t hbGetUserAuthInfo(SClientHbKey *connKey, SHbParam *param, SClientHbReq *req) { STscObj *pTscObj = (STscObj *)acquireTscObj(connKey->tscRid); if (!pTscObj) { - tscWarn("tscObj rid %" PRIx64 " not exist", connKey->tscRid); + tscWarn("tscObj rid 0x%" PRIx64 " not exist", connKey->tscRid); return terrno; } @@ -1041,7 +1041,7 @@ int32_t hbGetExpiredTSMAInfo(SClientHbKey *connKey, struct SCatalog *pCatalog, S tsma->version = htonl(tsma->version); } - tscDebug("hb got %d expred tsmas, valueLen: %lu", tsmaNum, sizeof(STSMAVersion) * tsmaNum); + tscDebug("hb got %d expred tsmas, valueLen:%lu", tsmaNum, sizeof(STSMAVersion) * tsmaNum); if (!pReq->info) { pReq->info = taosHashInit(64, hbKeyHashFunc, 1, HASH_ENTRY_LOCK); @@ -1537,7 +1537,7 @@ int32_t hbMgrInit() { if (old == 1) return 0; clientHbMgr.appId = tGenIdPI64(); - tscDebug("app %" PRIx64 " initialized", clientHbMgr.appId); + tscInfo("app initialized, appId:0x%" PRIx64, clientHbMgr.appId); clientHbMgr.appSummary = taosHashInit(10, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK); if (NULL == clientHbMgr.appSummary) { diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 5cb8e83b28..f2fdecd18d 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -171,7 +171,7 @@ int32_t taos_connect_internal(const char* ip, const char* user, const char* pass } p->instKey = key; key = NULL; - tscDebug("new app inst mgr %p, user:%s, ip:%s, port:%d", p, user, epSet.epSet.eps[0].fqdn, epSet.epSet.eps[0].port); + tscInfo("new app inst mgr:%p, user:%s, ip:%s, port:%d", p, user, epSet.epSet.eps[0].fqdn, epSet.epSet.eps[0].port); pInst = &p; } else { @@ -1659,7 +1659,7 @@ int32_t taosConnectImpl(const char* user, const char* auth, const char* db, __ta *pTscObj = NULL; return terrno; } else { - tscDebug("connObj:0x%" PRIx64 " connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, + tscInfo("connObj:0x%" PRIx64 ", connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, (*pTscObj)->connId, (*pTscObj)->pAppInfo->pTransporter, pRequest->requestId); destroyRequest(pRequest); } @@ -1904,7 +1904,7 @@ _exit: } TAOS* taos_connect_auth(const char* ip, const char* user, const char* auth, const char* db, uint16_t port) { - tscDebug("try to connect to %s:%u by auth, user:%s db:%s", ip, port, user, db); + tscInfo("try to connect to %s:%u by auth, user:%s db:%s", ip, port, user, db); if (user == NULL) { user = TSDB_DEFAULT_USER; } diff --git a/source/client/src/clientJniConnector.c b/source/client/src/clientJniConnector.c index f87611ac00..e191004eb1 100644 --- a/source/client/src/clientJniConnector.c +++ b/source/client/src/clientJniConnector.c @@ -154,7 +154,7 @@ JNIEXPORT void JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_initImp(JNIEnv *e } jniGetGlobalMethod(env); - jniDebug("jni initialized successfully, config directory: %s", configDir); + jniDebug("jni initialized successfully, config directory:%s", configDir); } JNIEXPORT jobject createTSDBException(JNIEnv *env, int code, char *msg) { @@ -453,7 +453,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getAffectedRowsIm } jint ret = taos_affected_rows((TAOS_RES *)res); - jniDebug("jobj:%p, conn:%p, sql:%p, res: %p, affect rows:%d", jobj, tscon, (TAOS *)con, (TAOS_RES *)res, + jniDebug("jobj:%p, conn:%p, sql:%p, res:%p, affect rows:%d", jobj, tscon, (TAOS *)con, (TAOS_RES *)res, (int32_t)ret); return ret; diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 1b34cf78d4..136c740974 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -279,7 +279,7 @@ setConfRet taos_set_config(const char *config) { } TAOS *taos_connect(const char *ip, const char *user, const char *pass, const char *db, uint16_t port) { - tscDebug("try to connect to %s:%u, user:%s db:%s", ip, port, user, db); + tscInfo("try to connect to %s:%u, user:%s db:%s", ip, port, user, db); if (user == NULL) { user = TSDB_DEFAULT_USER; } @@ -2183,7 +2183,7 @@ int taos_stmt2_bind_param(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t col SSHashObj *hashTbnames = tSimpleHashInit(100, taosGetDefaultHashFunction(TSDB_DATA_TYPE_VARCHAR)); if (NULL == hashTbnames) { - tscError("stmt2 bind failed: %s", tstrerror(terrno)); + tscError("stmt2 bind failed, %s", tstrerror(terrno)); return terrno; } @@ -2193,7 +2193,7 @@ int taos_stmt2_bind_param(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t col if (pStmt->sql.stbInterlaceMode) { if (tSimpleHashGet(hashTbnames, bindv->tbnames[i], strlen(bindv->tbnames[i])) != NULL) { code = terrno = TSDB_CODE_PAR_TBNAME_DUPLICATED; - tscError("stmt2 bind failed: %s %s", tstrerror(terrno), bindv->tbnames[i]); + tscError("stmt2 bind failed, %s %s", tstrerror(terrno), bindv->tbnames[i]); goto out; } diff --git a/source/client/src/clientMonitor.c b/source/client/src/clientMonitor.c index dc6dbc996a..51ef93ba8f 100644 --- a/source/client/src/clientMonitor.c +++ b/source/client/src/clientMonitor.c @@ -293,7 +293,7 @@ void monitorCreateClient(int64_t clusterId) { tscError("failed to start timer"); goto fail; } - tscInfo("clusterId:0x%" PRIx64 ", create monitor finished, montitor:%p", clusterId, pMonitor); + tscInfo("clusterId:0x%" PRIx64 ", create monitor finished, monitor:%p", clusterId, pMonitor); } taosWUnLockLatch(&monitorLock); @@ -319,7 +319,7 @@ void monitorCreateClientCounter(int64_t clusterId, const char* name, const char* tscError("failed to add metric to collector"); int r = taos_counter_destroy(newCounter); if (r) { - tscError("failed to destroy counter, code: %d", r); + tscError("failed to destroy counter, code:%d", r); } goto end; } @@ -327,11 +327,11 @@ void monitorCreateClientCounter(int64_t clusterId, const char* name, const char* tscError("failed to put counter to monitor"); int r = taos_counter_destroy(newCounter); if (r) { - tscError("failed to destroy counter, code: %d", r); + tscError("failed to destroy counter, code:%d", r); } goto end; } - tscInfo("clusterId:0x%" PRIx64 ", monitor:%p, create counter:%s:%p", pMonitor->clusterId, pMonitor, name, + tscInfo("clusterId:0x%" PRIx64 ", monitor:%p, create counter:%s %p", pMonitor->clusterId, pMonitor, name, newCounter); end: @@ -422,7 +422,7 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP } if (taosLSeekFile(pFile, 0, SEEK_END) < 0) { - tscError("failed to seek file:%p code: %d", pFile, terrno); + tscError("failed to seek file:%p code:%d", pFile, terrno); return; } if (taosWriteFile(pFile, slowLogData->data, strlen(slowLogData->data) + 1) < 0) { @@ -434,7 +434,7 @@ static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char* tmpP static char* readFile(TdFilePtr pFile, int64_t* offset, int64_t size) { tscDebug("monitor readFile slow begin pFile:%p, offset:%" PRId64 ", size:%" PRId64, pFile, *offset, size); if (taosLSeekFile(pFile, *offset, SEEK_SET) < 0) { - tscError("failed to seek file:%p code: %d", pFile, terrno); + tscError("failed to seek file:%p code:%d", pFile, terrno); return NULL; } @@ -573,7 +573,7 @@ static void monitorSendSlowLogAtRunning(int64_t clusterId) { int64_t size = getFileSize(pClient->path); if (size <= pClient->offset) { if (taosFtruncateFile(pClient->pFile, 0) < 0) { - tscError("failed to truncate file:%p code: %d", pClient->pFile, terrno); + tscError("failed to truncate file:%p code:%d", pClient->pFile, terrno); } tscDebug("monitor truncate file to 0 file:%p", pClient->pFile); pClient->offset = 0; @@ -755,7 +755,7 @@ static void monitorSendAllSlowLogFromTempDir(int64_t clusterId) { static void* monitorThreadFunc(void* param) { setThreadName("client-monitor-slowlog"); - tscDebug("monitorThreadFunc start"); + tscInfo("monitor update thread started"); int64_t quitTime = 0; while (1) { if (atomic_load_32(&monitorFlag) == 1) { @@ -943,7 +943,7 @@ int32_t reportCB(void* param, SDataBuf* pMsg, int32_t code) { int32_t senAuditInfo(STscObj* pTscObj, void* pReq, int32_t len, uint64_t requestId) { SMsgSendInfo* sendInfo = taosMemoryCalloc(1, sizeof(SMsgSendInfo)); if (sendInfo == NULL) { - tscError("[del report]failed to allocate memory for sendInfo"); + tscError("[del report] failed to allocate memory for sendInfo"); return terrno; } @@ -959,7 +959,7 @@ int32_t senAuditInfo(STscObj* pTscObj, void* pReq, int32_t len, uint64_t request int32_t code = asyncSendMsgToServer(pTscObj->pAppInfo->pTransporter, &epSet, NULL, sendInfo); if (code != 0) { - tscError("[del report]failed to send msg to server, code:%d", code); + tscError("[del report] failed to send msg to server, code:%d", code); taosMemoryFree(sendInfo); return code; } @@ -971,22 +971,22 @@ static void reportDeleteSql(SRequestObj* pRequest) { STscObj* pTscObj = pRequest->pTscObj; if (pTscObj == NULL || pTscObj->pAppInfo == NULL) { - tscError("[del report]invalid tsc obj"); + tscError("[del report] invalid tsc obj"); return; } if(pTscObj->pAppInfo->serverCfg.enableAuditDelete == 0) { - tscDebug("[del report]audit delete is disabled"); + tscDebug("[del report] audit delete is disabled"); return; } if (pRequest->code != TSDB_CODE_SUCCESS) { - tscDebug("[del report]delete request result code:%d", pRequest->code); + tscDebug("[del report] delete request result code:%d", pRequest->code); return; } if (nodeType(pStmt->pFromTable) != QUERY_NODE_REAL_TABLE) { - tscError("[del report]invalid from table node type:%d", nodeType(pStmt->pFromTable)); + tscError("[del report] invalid from table node type:%d", nodeType(pStmt->pFromTable)); return; } @@ -1000,28 +1000,28 @@ static void reportDeleteSql(SRequestObj* pRequest) { int32_t tlen = tSerializeSAuditReq(NULL, 0, &req); void* pReq = taosMemoryCalloc(1, tlen); if (pReq == NULL) { - tscError("[del report]failed to allocate memory for req"); + tscError("[del report] failed to allocate memory for req"); return; } if (tSerializeSAuditReq(pReq, tlen, &req) < 0) { - tscError("[del report]failed to serialize req"); + tscError("[del report] failed to serialize req"); taosMemoryFree(pReq); return; } int32_t code = senAuditInfo(pRequest->pTscObj, pReq, tlen, pRequest->requestId); if (code != 0) { - tscError("[del report]failed to send audit info, code:%d", code); + tscError("[del report] failed to send audit info, code:%d", code); taosMemoryFree(pReq); return; } - tscDebug("[del report]delete data, sql:%s", req.pSql); + tscDebug("[del report] delete data, sql:%s", req.pSql); } void clientOperateReport(SRequestObj* pRequest) { if (pRequest == NULL || pRequest->pQuery == NULL || pRequest->pQuery->pRoot == NULL) { - tscError("[del report]invalid request"); + tscError("[del report] invalid request"); return; } diff --git a/source/client/src/clientMsgHandler.c b/source/client/src/clientMsgHandler.c index 92c1d13679..83366c5c36 100644 --- a/source/client/src/clientMsgHandler.c +++ b/source/client/src/clientMsgHandler.c @@ -81,7 +81,7 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) { } if ((code = taosCheckVersionCompatibleFromStr(td_version, connectRsp.sVer, 3)) != 0) { - tscError("version not compatible. client version: %s, server version: %s", td_version, connectRsp.sVer); + tscError("version not compatible. client version:%s, server version:%s", td_version, connectRsp.sVer); goto End; } @@ -262,11 +262,11 @@ int32_t processUseDbRsp(void* param, SDataBuf* pMsg, int32_t code) { int64_t clusterId = pRequest->pTscObj->pAppInfo->clusterId; int32_t code1 = catalogGetHandle(clusterId, &pCatalog); if (code1 != TSDB_CODE_SUCCESS) { - tscWarn("QID:0x%" PRIx64 "catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->requestId, clusterId, + tscWarn("QID:0x%" PRIx64 ", catalogGetHandle failed, clusterId:0x%" PRIx64 ", error:%s", pRequest->requestId, clusterId, tstrerror(code1)); } else { if (catalogRemoveDB(pCatalog, usedbRsp.db, usedbRsp.uid) != 0) { - tscError("QID:0x%" PRIx64 "catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, + tscError("QID:0x%" PRIx64 ", catalogRemoveDB failed, db:%s, uid:%" PRId64, pRequest->requestId, usedbRsp.db, usedbRsp.uid); } } diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index c5ba653ad2..74489ca00f 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -410,7 +410,7 @@ END: int32_t smlParseEndTelnetJsonFormat(SSmlHandle *info, SSmlLineInfo *elements, SSmlKv *kvTs, SSmlKv *kv) { int32_t code = 0; int32_t lino = 0; - uDebug("SML:0x%" PRIx64 " %s format true, ts:%" PRId64, info->id, __FUNCTION__ , kvTs->i); + uDebug("SML:0x%" PRIx64 ", %s format true, ts:%" PRId64, info->id, __FUNCTION__ , kvTs->i); SML_CHECK_CODE(smlBuildCol(info->currTableDataCtx, info->currSTableMeta->schema, kvTs, 0, info->taos->optionInfo.charsetCxt)); SML_CHECK_CODE(smlBuildCol(info->currTableDataCtx, info->currSTableMeta->schema, kv, 1, info->taos->optionInfo.charsetCxt)); SML_CHECK_CODE(smlBuildRow(info->currTableDataCtx)); @@ -423,7 +423,7 @@ END: int32_t smlParseEndTelnetJsonUnFormat(SSmlHandle *info, SSmlLineInfo *elements, SSmlKv *kvTs, SSmlKv *kv) { int32_t code = 0; int32_t lino = 0; - uDebug("SML:0x%" PRIx64 " %s format false, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); + uDebug("SML:0x%" PRIx64 ", %s format false, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); if (elements->colArray == NULL) { elements->colArray = taosArrayInit(16, sizeof(SSmlKv)); SML_CHECK_NULL(elements->colArray); @@ -437,7 +437,7 @@ END: int32_t smlParseEndLine(SSmlHandle *info, SSmlLineInfo *elements, SSmlKv *kvTs) { if (info->dataFormat) { - uDebug("SML:0x%" PRIx64 " %s format true, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); + uDebug("SML:0x%" PRIx64 ", %s format true, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); int32_t ret = smlBuildCol(info->currTableDataCtx, info->currSTableMeta->schema, kvTs, 0, info->taos->optionInfo.charsetCxt); if (ret == TSDB_CODE_SUCCESS) { ret = smlBuildRow(info->currTableDataCtx); @@ -446,11 +446,11 @@ int32_t smlParseEndLine(SSmlHandle *info, SSmlLineInfo *elements, SSmlKv *kvTs) clearColValArraySml(info->currTableDataCtx->pValues); taosArrayClearP(info->escapedStringList, NULL); if (unlikely(ret != TSDB_CODE_SUCCESS)) { - uError("SML:0x%" PRIx64 " %s smlBuildCol error:%d", info->id, __FUNCTION__, ret); + uError("SML:0x%" PRIx64 ", %s smlBuildCol error:%d", info->id, __FUNCTION__, ret); return ret; } } else { - uDebug("SML:0x%" PRIx64 " %s format false, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); + uDebug("SML:0x%" PRIx64 ", %s format false, ts:%" PRId64, info->id, __FUNCTION__, kvTs->i); taosArraySet(elements->colArray, 0, kvTs); } info->preLine = *elements; @@ -697,7 +697,7 @@ static int32_t smlGenerateSchemaAction(SSchema *colField, SHashObj *colHash, SSm uint16_t *index = colHash ? (uint16_t *)taosHashGet(colHash, kv->key, kv->keyLen) : NULL; if (index) { if (colField[*index].type != kv->type) { - snprintf(info->msgBuf.buf, info->msgBuf.len, "SML:0x%" PRIx64 " %s point type and db type mismatch. db type: %s, point type: %s, key: %s", + snprintf(info->msgBuf.buf, info->msgBuf.len, "SML:0x%" PRIx64 ", %s point type and db type mismatch, db type:%s, point type:%s, key:%s", info->id, __FUNCTION__, tDataTypes[colField[*index].type].name, tDataTypes[kv->type].name, kv->key); uError("%s", info->msgBuf.buf); return TSDB_CODE_SML_INVALID_DATA; @@ -954,7 +954,7 @@ static int32_t smlCreateTable(SSmlHandle *info, SRequestConnInfo *conn, SSmlSTab SArray *pColumns = NULL; SArray *pTags = NULL; SML_CHECK_CODE(smlCheckAuth(info, conn, NULL, AUTH_TYPE_WRITE)); - uDebug("SML:0x%" PRIx64 " %s create table:%s", info->id, __FUNCTION__, pName->tname); + uDebug("SML:0x%" PRIx64 ", %s create table:%s", info->id, __FUNCTION__, pName->tname); pColumns = taosArrayInit(taosArrayGetSize(sTableData->cols), sizeof(SField)); SML_CHECK_NULL(pColumns); pTags = taosArrayInit(taosArrayGetSize(sTableData->tags), sizeof(SField)); @@ -1005,7 +1005,7 @@ static int32_t smlModifyTag(SSmlHandle *info, SHashObj* hashTmpCheck, SHashObj* if (action != SCHEMA_ACTION_NULL) { SML_CHECK_CODE(smlCheckAuth(info, conn, pName->tname, AUTH_TYPE_WRITE)); - uDebug("SML:0x%" PRIx64 " %s change table tag, table:%s, action:%d", info->id, __FUNCTION__, pName->tname, + uDebug("SML:0x%" PRIx64 ", %s change table tag, table:%s, action:%d", info->id, __FUNCTION__, pName->tname, action); SML_CHECK_CODE(smlBuildFields(&pColumns, &pTags, *pTableMeta, sTableData)); SML_CHECK_CODE(smlBuildFieldsList(info, (*pTableMeta)->schema, hashTmp, sTableData->tags, pTags, @@ -1036,7 +1036,7 @@ static int32_t smlModifyCols(SSmlHandle *info, SHashObj* hashTmpCheck, SHashObj* if (action != SCHEMA_ACTION_NULL) { SML_CHECK_CODE(smlCheckAuth(info, conn, pName->tname, AUTH_TYPE_WRITE)); - uDebug("SML:0x%" PRIx64 " %s change table col, table:%s, action:%d", info->id, __FUNCTION__, pName->tname, + uDebug("SML:0x%" PRIx64 ", %s change table col, table:%s, action:%d", info->id, __FUNCTION__, pName->tname, action); SML_CHECK_CODE(smlBuildFields(&pColumns, &pTags, *pTableMeta, sTableData)); SML_CHECK_CODE(smlBuildFieldsList(info, (*pTableMeta)->schema, hashTmp, sTableData->cols, pColumns, @@ -1068,7 +1068,7 @@ END: } static int32_t smlModifyDBSchemas(SSmlHandle *info) { - uDebug("SML:0x%" PRIx64 " %s start, format:%d, needModifySchema:%d", info->id, __FUNCTION__, info->dataFormat, + uDebug("SML:0x%" PRIx64 ", %s start, format:%d, needModifySchema:%d", info->id, __FUNCTION__, info->dataFormat, info->needModifySchema); if (info->dataFormat && !info->needModifySchema) { return TSDB_CODE_SUCCESS; @@ -1132,7 +1132,7 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) { colHashTmp = NULL; tagHashTmp = NULL; } else { - uError("SML:0x%" PRIx64 " %s load table meta error: %s", info->id, __FUNCTION__, tstrerror(code)); + uError("SML:0x%" PRIx64 ", %s load table meta error:%s", info->id, __FUNCTION__, tstrerror(code)); goto END; } @@ -1143,11 +1143,11 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) { taosMemoryFreeClear(sTableData->tableMeta); sTableData->tableMeta = pTableMeta; - uDebug("SML:0x%" PRIx64 " %s modify schema uid:%" PRIu64 ", sversion:%d, tversion:%d", info->id, __FUNCTION__, pTableMeta->uid, + uDebug("SML:0x%" PRIx64 ", %s modify schema uid:%" PRIu64 ", sversion:%d, tversion:%d", info->id, __FUNCTION__, pTableMeta->uid, pTableMeta->sversion, pTableMeta->tversion); tmp = (SSmlSTableMeta **)taosHashIterate(info->superTables, tmp); } - uDebug("SML:0x%" PRIx64 " %s end success, format:%d, needModifySchema:%d", info->id, __FUNCTION__, info->dataFormat, + uDebug("SML:0x%" PRIx64 ", %s end success, format:%d, needModifySchema:%d", info->id, __FUNCTION__, info->dataFormat, info->needModifySchema); return TSDB_CODE_SUCCESS; @@ -1158,7 +1158,7 @@ END: taosHashCleanup(tagHashTmp); taosMemoryFreeClear(pTableMeta); (void)catalogRefreshTableMeta(info->pCatalog, &conn, &pName, 1); // ignore refresh meta code if there is an error - uError("SML:0x%" PRIx64 " %s end failed:%d:%s, format:%d, needModifySchema:%d", info->id, __FUNCTION__, code, + uError("SML:0x%" PRIx64 ", %s end failed:%d:%s, format:%d, needModifySchema:%d", info->id, __FUNCTION__, code, tstrerror(code), info->dataFormat, info->needModifySchema); return code; @@ -1356,7 +1356,7 @@ END: } static int32_t smlParseEnd(SSmlHandle *info) { - uDebug("SML:0x%" PRIx64 " %s start, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, + uDebug("SML:0x%" PRIx64 ", %s start, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, info->lineNum); int32_t code = 0; int32_t lino = 0; @@ -1376,7 +1376,7 @@ static int32_t smlParseEnd(SSmlHandle *info) { } if (tinfo == NULL) { - uError("SML:0x%" PRIx64 "get oneTable failed, line num:%d", info->id, i); + uError("SML:0x%" PRIx64 ", get oneTable failed, line num:%d", info->id, i); smlBuildInvalidDataMsg(&info->msgBuf, "get oneTable failed", elements->measure); return TSDB_CODE_SML_INVALID_DATA; } @@ -1396,14 +1396,14 @@ static int32_t smlParseEnd(SSmlHandle *info) { SSmlSTableMeta **tableMeta = (SSmlSTableMeta **)taosHashGet(info->superTables, elements->measure, elements->measureLen); if (tableMeta) { // update meta - uDebug("SML:0x%" PRIx64 " %s update meta, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, + uDebug("SML:0x%" PRIx64 ", %s update meta, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, info->lineNum); SML_CHECK_CODE(smlUpdateMeta((*tableMeta)->colHash, (*tableMeta)->cols, elements->colArray, false, &info->msgBuf, (*tableMeta)->tagHash)); SML_CHECK_CODE(smlUpdateMeta((*tableMeta)->tagHash, (*tableMeta)->tags, tinfo->tags, true, &info->msgBuf, (*tableMeta)->colHash)); } else { - uDebug("SML:0x%" PRIx64 " %s add meta, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, + uDebug("SML:0x%" PRIx64 ", %s add meta, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, info->lineNum); SSmlSTableMeta *meta = NULL; SML_CHECK_CODE(smlBuildSTableMeta(info->dataFormat, &meta)); @@ -1416,7 +1416,7 @@ static int32_t smlParseEnd(SSmlHandle *info) { SML_CHECK_CODE(smlInsertMeta(meta->colHash, meta->cols, elements->colArray, meta->tagHash)); } } - uDebug("SML:0x%" PRIx64 " %s end, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, info->lineNum); + uDebug("SML:0x%" PRIx64 ", %s end, format:%d, linenum:%d", info->id, __FUNCTION__, info->dataFormat, info->lineNum); END: RETURN @@ -1427,7 +1427,7 @@ static int32_t smlInsertData(SSmlHandle *info) { int32_t lino = 0; char *measure = NULL; SSmlTableInfo **oneTable = NULL; - uDebug("SML:0x%" PRIx64 " %s start, format:%d", info->id, __FUNCTION__, info->dataFormat); + uDebug("SML:0x%" PRIx64 ", %s start, format:%d", info->id, __FUNCTION__, info->dataFormat); if (info->pRequest->dbList == NULL) { info->pRequest->dbList = taosArrayInit(1, TSDB_DB_FNAME_LEN); @@ -1476,14 +1476,14 @@ static int32_t smlInsertData(SSmlHandle *info) { SSmlSTableMeta **pMeta = (SSmlSTableMeta **)taosHashGet(info->superTables, tableData->sTableName, tableData->sTableNameLen); if (unlikely(NULL == pMeta || NULL == *pMeta || NULL == (*pMeta)->tableMeta)) { - uError("SML:0x%" PRIx64 " %s NULL == pMeta. table name: %s", info->id, __FUNCTION__, tableData->childTableName); + uError("SML:0x%" PRIx64 ", %s NULL == pMeta. table name:%s", info->id, __FUNCTION__, tableData->childTableName); SML_CHECK_CODE(TSDB_CODE_SML_INTERNAL_ERROR); } // use tablemeta of stable to save vgid and uid of child table (*pMeta)->tableMeta->vgId = vg.vgId; (*pMeta)->tableMeta->uid = tableData->uid; // one table merge data block together according uid - uDebug("SML:0x%" PRIx64 " %s table:%s, uid:%" PRIu64 ", format:%d", info->id, __FUNCTION__, pName.tname, + uDebug("SML:0x%" PRIx64 ", %s table:%s, uid:%" PRIu64 ", format:%d", info->id, __FUNCTION__, pName.tname, tableData->uid, info->dataFormat); SML_CHECK_CODE(smlBindData(info->pQuery, info->dataFormat, tableData->tags, (*pMeta)->cols, tableData->cols, @@ -1501,7 +1501,7 @@ static int32_t smlInsertData(SSmlHandle *info) { launchQueryImpl(info->pRequest, info->pQuery, true, NULL); // no need to check return code - uDebug("SML:0x%" PRIx64 " %s end, format:%d, code:%d,%s", info->id, __FUNCTION__, info->dataFormat, info->pRequest->code, + uDebug("SML:0x%" PRIx64 ", %s end, format:%d, code:%d,%s", info->id, __FUNCTION__, info->dataFormat, info->pRequest->code, tstrerror(info->pRequest->code)); return info->pRequest->code; @@ -1558,15 +1558,15 @@ END: static void printRaw(int64_t id, int lineNum, int numLines, ELogLevel level, char* data, int32_t len){ char *print = taosMemoryMalloc(len + 1); if (print == NULL) { - uError("SML:0x%" PRIx64 " smlParseLine failed. code : %d", id, terrno); + uError("SML:0x%" PRIx64 ", smlParseLine failed. code :%d", id, terrno); return; } (void)memcpy(print, data, len); print[len] = '\0'; if (level == DEBUG_DEBUG){ - uDebug("SML:0x%" PRIx64 " smlParseLine is raw, line %d/%d : %s", id, lineNum, numLines, print); + uDebug("SML:0x%" PRIx64 ", smlParseLine is raw, line %d/%d :%s", id, lineNum, numLines, print); }else if (level == DEBUG_ERROR){ - uError("SML:0x%" PRIx64 " smlParseLine failed. line %d/%d : %s", id, lineNum, numLines, print); + uError("SML:0x%" PRIx64 ", smlParseLine failed. line %d/%d :%s", id, lineNum, numLines, print); } taosMemoryFree(print); } @@ -1592,7 +1592,7 @@ static bool getLine(SSmlHandle *info, char *lines[], char **rawLine, char *rawLi if (*rawLine != NULL && (uDebugFlag & DEBUG_DEBUG)) { printRaw(info->id, i, numLines, DEBUG_DEBUG, *tmp, *len); } else { - uDebug("SML:0x%" PRIx64 " smlParseLine is not raw, line %d/%d : %s", info->id, i, numLines, *tmp); + uDebug("SML:0x%" PRIx64 ", smlParseLine is not raw, line %d/%d :%s", info->id, i, numLines, *tmp); } return true; } @@ -1612,7 +1612,7 @@ static int32_t smlParseJson(SSmlHandle *info, char *lines[], char *rawLine) { } static int32_t smlParseStart(SSmlHandle *info, char *lines[], char *rawLine, char *rawLineEnd, int numLines) { - uDebug("SML:0x%" PRIx64 " %s start", info->id, __FUNCTION__); + uDebug("SML:0x%" PRIx64 ", %s start", info->id, __FUNCTION__); int32_t code = TSDB_CODE_SUCCESS; if (info->protocol == TSDB_SML_JSON_PROTOCOL) { return smlParseJson(info, lines, rawLine); @@ -1646,12 +1646,12 @@ static int32_t smlParseStart(SSmlHandle *info, char *lines[], char *rawLine, cha if (rawLine != NULL) { printRaw(info->id, i, numLines, DEBUG_ERROR, tmp, len); } else { - uError("SML:0x%" PRIx64 " %s failed. line %d : %s", info->id, __FUNCTION__, i, tmp); + uError("SML:0x%" PRIx64 ", %s failed. line %d :%s", info->id, __FUNCTION__, i, tmp); } return code; } if (info->reRun) { - uDebug("SML:0x%" PRIx64 " %s re run", info->id, __FUNCTION__); + uDebug("SML:0x%" PRIx64 ", %s re run", info->id, __FUNCTION__); i = 0; rawLine = oldRaw; code = smlClearForRerun(info); @@ -1662,7 +1662,7 @@ static int32_t smlParseStart(SSmlHandle *info, char *lines[], char *rawLine, cha } i++; } - uDebug("SML:0x%" PRIx64 " %s end", info->id, __FUNCTION__); + uDebug("SML:0x%" PRIx64 ", %s end", info->id, __FUNCTION__); return code; } @@ -1689,7 +1689,7 @@ static int smlProcess(SSmlHandle *info, char *lines[], char *rawLine, char *rawL break; } taosMsleep(100); - uInfo("SML:0x%" PRIx64 " smlModifyDBSchemas retry code:%s, times:%d", info->id, tstrerror(code), retryNum); + uInfo("SML:0x%" PRIx64 ", smlModifyDBSchemas retry code:%s, times:%d", info->id, tstrerror(code), retryNum); } while (retryNum++ < taosHashGetSize(info->superTables) * MAX_RETRY_TIMES); SML_CHECK_CODE(code); diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 839102883a..a80a3fb1a9 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -100,7 +100,7 @@ int32_t stmtSwitchStatus(STscStmt* pStmt, STMT_STATUS newStatus) { } if (pStmt->errCode && newStatus != STMT_PREPARE) { - STMT_DLOG("stmt already failed with err: %s", tstrerror(pStmt->errCode)); + STMT_DLOG("stmt already failed with err:%s", tstrerror(pStmt->errCode)); return pStmt->errCode; } @@ -983,7 +983,7 @@ int32_t stmtInitStbInterlaceTableInfo(STscStmt* pStmt) { int stmtSetDbName(TAOS_STMT* stmt, const char* dbName) { STscStmt* pStmt = (STscStmt*)stmt; - STMT_DLOG("start to set dbName: %s", dbName); + STMT_DLOG("start to set dbName:%s", dbName); STMT_ERR_RET(stmtCreateRequest(pStmt)); @@ -1001,7 +1001,7 @@ int stmtSetTbName(TAOS_STMT* stmt, const char* tbName) { int64_t startUs = taosGetTimestampUs(); - STMT_DLOG("start to set tbName: %s", tbName); + STMT_DLOG("start to set tbName:%s", tbName); if (pStmt->errCode != TSDB_CODE_SUCCESS) { return pStmt->errCode; @@ -1222,7 +1222,7 @@ int stmtBindBatch(TAOS_STMT* stmt, TAOS_MULTI_BIND* bind, int32_t colIdx) { int64_t startUs = taosGetTimestampUs(); - STMT_DLOG("start to bind stmt data, colIdx: %d", colIdx); + STMT_DLOG("start to bind stmt data, colIdx:%d", colIdx); if (pStmt->errCode != TSDB_CODE_SUCCESS) { return pStmt->errCode; @@ -1417,7 +1417,7 @@ int stmtAddBatch(TAOS_STMT* stmt) { } /* int stmtUpdateTableUid(STscStmt* pStmt, SSubmitRsp* pRsp) { - tscDebug("stmt start to update tbUid, blockNum: %d", pRsp->nBlocks); + tscDebug("stmt start to update tbUid, blockNum:%d", pRsp->nBlocks); int32_t code = 0; int32_t finalCode = 0; @@ -1643,7 +1643,7 @@ int stmtClose(TAOS_STMT* stmt) { (void)taosThreadCondDestroy(&pStmt->queue.waitCond); (void)taosThreadMutexDestroy(&pStmt->queue.mutex); - STMT_DLOG("stmt %p closed, stbInterlaceMode: %d, statInfo: ctgGetTbMetaNum=>%" PRId64 ", getCacheTbInfo=>%" PRId64 + STMT_DLOG("stmt %p closed, stbInterlaceMode:%d, statInfo: ctgGetTbMetaNum=>%" PRId64 ", getCacheTbInfo=>%" PRId64 ", parseSqlNum=>%" PRId64 ", pStmt->stat.bindDataNum=>%" PRId64 ", settbnameAPI:%u, bindAPI:%u, addbatchAPI:%u, execAPI:%u" ", setTbNameUs:%" PRId64 ", bindDataUs:%" PRId64 ",%" PRId64 ",%" PRId64 ",%" PRId64 " addBatchUs:%" PRId64 diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index 8cd2aac9a9..d2e182bad7 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -100,7 +100,7 @@ static int32_t stmtSwitchStatus(STscStmt2* pStmt, STMT_STATUS newStatus) { } if (pStmt->errCode && newStatus != STMT_PREPARE) { - STMT_DLOG("stmt already failed with err: %s", tstrerror(pStmt->errCode)); + STMT_DLOG("stmt already failed with err:%s", tstrerror(pStmt->errCode)); return pStmt->errCode; } @@ -871,7 +871,7 @@ TAOS_STMT2* stmtInit2(STscObj* taos, TAOS_STMT2_OPTION* pOptions) { static int stmtSetDbName2(TAOS_STMT2* stmt, const char* dbName) { STscStmt2* pStmt = (STscStmt2*)stmt; - STMT_DLOG("start to set dbName: %s", dbName); + STMT_DLOG("start to set dbName:%s", dbName); pStmt->db = taosStrdup(dbName); (void)strdequote(pStmt->db); @@ -967,7 +967,7 @@ int stmtSetTbName2(TAOS_STMT2* stmt, const char* tbName) { int64_t startUs = taosGetTimestampUs(); - STMT_DLOG("start to set tbName: %s", tbName); + STMT_DLOG("start to set tbName:%s", tbName); if (pStmt->errCode != TSDB_CODE_SUCCESS) { return pStmt->errCode; @@ -1335,7 +1335,7 @@ int stmtBindBatch2(TAOS_STMT2* stmt, TAOS_STMT2_BIND* bind, int32_t colIdx) { int64_t startUs = taosGetTimestampUs(); - STMT_DLOG("start to bind stmt data, colIdx: %d", colIdx); + STMT_DLOG("start to bind stmt data, colIdx:%d", colIdx); if (pStmt->errCode != TSDB_CODE_SUCCESS) { return pStmt->errCode; @@ -1494,7 +1494,7 @@ int stmtBindBatch2(TAOS_STMT2* stmt, TAOS_STMT2_BIND* bind, int32_t colIdx) { } /* int stmtUpdateTableUid(STscStmt2* pStmt, SSubmitRsp* pRsp) { - tscDebug("stmt start to update tbUid, blockNum: %d", pRsp->nBlocks); + tscDebug("stmt start to update tbUid, blockNum:%d", pRsp->nBlocks); int32_t code = 0; int32_t finalCode = 0; @@ -1814,7 +1814,7 @@ int stmtClose2(TAOS_STMT2* stmt) { } } - STMT_DLOG("stmt %p closed, stbInterlaceMode: %d, statInfo: ctgGetTbMetaNum=>%" PRId64 ", getCacheTbInfo=>%" PRId64 + STMT_DLOG("stmt %p closed, stbInterlaceMode:%d, statInfo: ctgGetTbMetaNum=>%" PRId64 ", getCacheTbInfo=>%" PRId64 ", parseSqlNum=>%" PRId64 ", pStmt->stat.bindDataNum=>%" PRId64 ", settbnameAPI:%u, bindAPI:%u, addbatchAPI:%u, execAPI:%u" ", setTbNameUs:%" PRId64 ", bindDataUs:%" PRId64 ",%" PRId64 ",%" PRId64 ",%" PRId64 " addBatchUs:%" PRId64 diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 5052681279..b873833768 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -356,7 +356,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value conf->autoCommit = false; return TMQ_CONF_OK; } else { - tqErrorC("invalid value for enable.auto.commit: %s", value); + tqErrorC("invalid value for enable.auto.commit:%s", value); return TMQ_CONF_INVALID; } } @@ -365,7 +365,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp; code = taosStr2int64(value, &tmp); if (tmp < 0 || code != 0) { - tqErrorC("invalid value for auto.commit.interval.ms: %s", value); + tqErrorC("invalid value for auto.commit.interval.ms:%s", value); return TMQ_CONF_INVALID; } conf->autoCommitInterval = (tmp > INT32_MAX ? INT32_MAX : tmp); @@ -376,7 +376,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp; code = taosStr2int64(value, &tmp); if (tmp < 6000 || tmp > 1800000 || code != 0) { - tqErrorC("invalid value for session.timeout.ms: %s", value); + tqErrorC("invalid value for session.timeout.ms:%s", value); return TMQ_CONF_INVALID; } conf->sessionTimeoutMs = tmp; @@ -387,7 +387,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp; code = taosStr2int64(value, &tmp); if (tmp < 1000 || tmp >= conf->sessionTimeoutMs || code != 0) { - tqErrorC("invalid value for heartbeat.interval.ms: %s", value); + tqErrorC("invalid value for heartbeat.interval.ms:%s", value); return TMQ_CONF_INVALID; } conf->heartBeatIntervalMs = tmp; @@ -398,7 +398,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int32_t tmp; code = taosStr2int32(value, &tmp); if (tmp < 1000 || code != 0) { - tqErrorC("invalid value for max.poll.interval.ms: %s", value); + tqErrorC("invalid value for max.poll.interval.ms:%s", value); return TMQ_CONF_INVALID; } conf->maxPollIntervalMs = tmp; @@ -416,7 +416,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value conf->resetOffset = TMQ_OFFSET__RESET_LATEST; return TMQ_CONF_OK; } else { - tqErrorC("invalid value for auto.offset.reset: %s", value); + tqErrorC("invalid value for auto.offset.reset:%s", value); return TMQ_CONF_INVALID; } } @@ -429,7 +429,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value conf->withTbName = false; return TMQ_CONF_OK; } else { - tqErrorC("invalid value for msg.with.table.name: %s", value); + tqErrorC("invalid value for msg.with.table.name:%s", value); return TMQ_CONF_INVALID; } } @@ -442,7 +442,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value conf->snapEnable = false; return TMQ_CONF_OK; } else { - tqErrorC("invalid value for experimental.snapshot.enable: %s", value); + tqErrorC("invalid value for experimental.snapshot.enable:%s", value); return TMQ_CONF_INVALID; } } @@ -481,7 +481,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp; code = taosStr2int64(value, &tmp); if (tmp <= 0 || tmp > 65535 || code != 0) { - tqErrorC("invalid value for td.connect.port: %s", value); + tqErrorC("invalid value for td.connect.port:%s", value); return TMQ_CONF_INVALID; } @@ -497,7 +497,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value conf->replayEnable = false; return TMQ_CONF_OK; } else { - tqErrorC("invalid value for enable.replay: %s", value); + tqErrorC("invalid value for enable.replay:%s", value); return TMQ_CONF_INVALID; } } @@ -518,7 +518,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp = 0; code = taosStr2int64(value, &tmp); if (tmp <= 0 || tmp > INT32_MAX || code != 0) { - tqErrorC("invalid value for fetch.max.wait.ms: %s", value); + tqErrorC("invalid value for fetch.max.wait.ms:%s", value); return TMQ_CONF_INVALID; } conf->maxPollWaitTime = tmp; @@ -529,7 +529,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value int64_t tmp = 0; code = taosStr2int64(value, &tmp); if (tmp <= 0 || tmp > INT32_MAX || code != 0) { - tqErrorC("invalid value for min.poll.rows: %s", value); + tqErrorC("invalid value for min.poll.rows:%s", value); return TMQ_CONF_INVALID; } conf->minPollRows = tmp; @@ -547,7 +547,7 @@ tmq_conf_res_t tmq_conf_set(tmq_conf_t* conf, const char* key, const char* value return TMQ_CONF_OK; } - tqErrorC("unknown key: %s", key); + tqErrorC("unknown key:%s", key); return TMQ_CONF_UNKNOWN; } @@ -1268,7 +1268,7 @@ static void buildNewTopicList(tmq_t* tmq, SArray* newTopics, const SMqAskEpRsp* SMqClientTopic* pTopicCur = taosArrayGet(tmq->clientTopics, i); if (pTopicCur && pTopicCur->vgs) { int32_t vgNumCur = taosArrayGetSize(pTopicCur->vgs); - tqInfoC("consumer:0x%" PRIx64 ", current vg num: %d", tmq->consumerId, vgNumCur); + tqInfoC("consumer:0x%" PRIx64 ", current vg num:%d", tmq->consumerId, vgNumCur); for (int32_t j = 0; j < vgNumCur; j++) { SMqClientVg* pVgCur = taosArrayGet(pTopicCur->vgs, j); if (pVgCur == NULL) { diff --git a/source/client/src/clientTmqConnector.c b/source/client/src/clientTmqConnector.c index 26eed6fedf..955a75dcf8 100644 --- a/source/client/src/clientTmqConnector.c +++ b/source/client/src/clientTmqConnector.c @@ -184,7 +184,7 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqConsumerNewIm } tmq_t *tmq = tmq_consumer_new((tmq_conf_t *)conf, msg, len); if (strlen(msg) > 0) { - jniError("jobj:%p, config:%p, tmq create consumer error: %s", jobj, conf, msg); + jniError("jobj:%p, config:%p, tmq create consumer error:%s", jobj, conf, msg); (*env)->CallVoidMethod(env, jconsumer, g_createConsumerErrorCallback, (*env)->NewStringUTF(env, msg)); taosMemoryFreeClear(msg); return TMQ_CONSUMER_CREATE_ERROR; @@ -264,7 +264,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqSubscriptionIm int32_t res = tmq_subscription((tmq_t *)tmq, &topicList); if (res != JNI_SUCCESS) { tmq_list_destroy(topicList); - jniError("jobj:%p, tmq:%p, tmq get subscription error: %s", jobj, tmq, tmq_err2str(res)); + jniError("jobj:%p, tmq:%p, tmq get subscription error:%s", jobj, tmq, tmq_err2str(res)); return (jint)res; } diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index 6369358008..88c700edf6 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -1982,15 +1982,15 @@ _exit: static int32_t taosCheckGlobalCfg() { uint32_t ipv4 = 0; - uInfo("start to check global tsLocalFqdn:%s, tsServerPort:%u", tsLocalFqdn, tsServerPort); + uInfo("check global fqdn:%s and port:%u", tsLocalFqdn, tsServerPort); int32_t code = taosGetIpv4FromFqdn(tsLocalFqdn, &ipv4); if (code) { - uError("failed to get ip from fqdn:%s since %s, dnode can not be initialized", tsLocalFqdn, tstrerror(code)); + uError("failed to get ip from fqdn:%s since %s, can not be initialized", tsLocalFqdn, tstrerror(code)); TAOS_RETURN(TSDB_CODE_RPC_FQDN_ERROR); } if (tsServerPort <= 0) { - uError("invalid server port:%u, dnode can not be initialized", tsServerPort); + uError("invalid server port:%u, can not be initialized", tsServerPort); TAOS_RETURN(TSDB_CODE_RPC_FQDN_ERROR); } @@ -2829,7 +2829,7 @@ static void taosCheckAndSetDebugFlag(int32_t *pFlagPtr, char *name, int32_t flag if (code != TSDB_CODE_CFG_NOT_FOUND) { uError("failed to set flag %s to %d, since:%s", name, flag, tstrerror(code)); } else { - uDebug("failed to set flag %s to %d, since:%s", name, flag, tstrerror(code)); + uTrace("failed to set flag %s to %d, since:%s", name, flag, tstrerror(code)); } } return; diff --git a/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c b/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c index b2cb8e2f2e..291c30580a 100644 --- a/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c +++ b/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c @@ -307,7 +307,7 @@ static void *dmCrashReportThreadFp(void *param) { truncateFile = true; } } else { - dDebug("no crash info"); + dInfo("no crash info was found"); } taosMemoryFree(pMsg); diff --git a/source/dnode/mnode/impl/src/mndProfile.c b/source/dnode/mnode/impl/src/mndProfile.c index 8fe36ca0c4..e3e5bcc607 100644 --- a/source/dnode/mnode/impl/src/mndProfile.c +++ b/source/dnode/mnode/impl/src/mndProfile.c @@ -778,7 +778,7 @@ static int32_t mndProcessKillQueryReq(SRpcMsg *pReq) { uint64_t queryId = 0; char *p = strchr(killReq.queryStrId, ':'); if (NULL == p) { - mError("invalid query id %s", killReq.queryStrId); + mError("invalid QID:%s", killReq.queryStrId); code = TSDB_CODE_MND_INVALID_QUERY_ID; TAOS_RETURN(code); } diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index c775893e53..458094e188 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -85,7 +85,7 @@ int32_t ctgRefreshDBVgInfo(SCatalog* pCtg, SRequestConnInfo* pConn, const char* code = ctgGetDBVgInfoFromMnode(pCtg, pConn, &input, &DbOut, NULL); if (code) { if (CTG_DB_NOT_EXIST(code) && (NULL != dbCache)) { - ctgDebug("db no longer exist, dbFName:%s, dbId:0x%" PRIx64, input.db, input.dbId); + ctgDebug("db:%s, db no longer exist, dbId:0x%" PRIx64, input.db, input.dbId); CTG_ERR_RET(ctgDropDbCacheEnqueue(pCtg, input.db, input.dbId)); } @@ -114,11 +114,11 @@ int32_t ctgRefreshTbMeta(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgTbMetaCtx* } if (CTG_FLAG_IS_SYS_DB(ctx->flag)) { - ctgDebug("will refresh tbmeta, supposed in information_schema, tbName:%s", tNameGetTableName(ctx->pName)); + ctgDebug("tb:%s, will refresh tbmeta, supposed in information_schema", tNameGetTableName(ctx->pName)); CTG_ERR_JRET(ctgGetTbMetaFromMnodeImpl(pCtg, pConn, (char*)ctx->pName->dbname, (char*)ctx->pName->tname, output, NULL)); } else if (CTG_FLAG_IS_STB(ctx->flag)) { - ctgDebug("will refresh tbmeta, supposed to be stb, tbName:%s", tNameGetTableName(ctx->pName)); + ctgDebug("tb:%s, will refresh tbmeta, supposed to be stb", tNameGetTableName(ctx->pName)); // if get from mnode failed, will not try vnode CTG_ERR_JRET(ctgGetTbMetaFromMnode(pCtg, pConn, ctx->pName, output, NULL)); @@ -127,13 +127,13 @@ int32_t ctgRefreshTbMeta(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgTbMetaCtx* CTG_ERR_JRET(ctgGetTbMetaFromVnode(pCtg, pConn, ctx->pName, &vgroupInfo, output, NULL)); } } else { - ctgDebug("will refresh tbmeta, not supposed to be stb, tbName:%s, flag:%d", tNameGetTableName(ctx->pName), ctx->flag); + ctgDebug("tb:%s, will refresh tbmeta, not supposed to be stb, flag:%d", tNameGetTableName(ctx->pName), ctx->flag); // if get from vnode failed or no table meta, will not try mnode CTG_ERR_JRET(ctgGetTbMetaFromVnode(pCtg, pConn, ctx->pName, &vgroupInfo, output, NULL)); if (CTG_IS_META_TABLE(output->metaType) && TSDB_SUPER_TABLE == output->tbMeta->tableType) { - ctgDebug("will continue to refresh tbmeta since got stb, tbName:%s", tNameGetTableName(ctx->pName)); + ctgDebug("tb:%s, will continue to refresh tbmeta since got stb", tNameGetTableName(ctx->pName)); taosMemoryFreeClear(output->tbMeta); @@ -163,16 +163,15 @@ int32_t ctgRefreshTbMeta(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgTbMetaCtx* } if (CTG_IS_META_NULL(output->metaType)) { - ctgError("no tbmeta got, tbName:%s", tNameGetTableName(ctx->pName)); + ctgError("tb:%s, no tbmeta got", tNameGetTableName(ctx->pName)); CTG_ERR_JRET(ctgRemoveTbMetaFromCache(pCtg, ctx->pName, false)); CTG_ERR_JRET(CTG_ERR_CODE_TABLE_NOT_EXIST); } if (CTG_IS_META_TABLE(output->metaType)) { - ctgDebug("tbmeta got, dbFName:%s, tbName:%s, tbType:%d", output->dbFName, output->tbName, - output->tbMeta->tableType); + ctgDebug("tb:%s, tbmeta got, db:%s, tbType:%d", output->tbName, output->dbFName, output->tbMeta->tableType); } else { - ctgDebug("tbmeta got, dbFName:%s, tbName:%s, tbType:%d, stbMetaGot:%d", output->dbFName, output->ctbName, + ctgDebug("tb:%s, tbmeta got, db:%s, tbType:%d, stbMetaGot:%d", output->ctbName, output->dbFName, output->ctbMeta.tableType, CTG_IS_META_BOTH(output->metaType)); } @@ -238,7 +237,7 @@ int32_t ctgGetTbMeta(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgTbMetaCtx* ctx CTG_ERR_JRET(ctgReadTbMetaFromCache(pCtg, &stbCtx, pTableMeta)); if (NULL == *pTableMeta) { - ctgDebug("stb no longer exist, dbFName:%s, tbName:%s", output->dbFName, ctx->pName->tname); + ctgDebug("tb:%s, stb no longer exist, db:%s", ctx->pName->tname, output->dbFName); continue; } @@ -267,7 +266,7 @@ _return: taosMemoryFreeClear(output); if (*pTableMeta) { - ctgDebug("tbmeta returned, tbName:%s, tbType:%d", ctx->pName->tname, (*pTableMeta)->tableType); + ctgDebug("tb:%s, tbmeta returned, tbType:%d", ctx->pName->tname, (*pTableMeta)->tableType); ctgdShowTableMeta(pCtg, ctx->pName->tname, *pTableMeta); } @@ -508,7 +507,7 @@ int32_t ctgGetTbDistVgInfo(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTabl CTG_ERR_JRET(ctgGenerateVgList(pCtg, vgHash, pVgList, db)); } else { // USE HASH METHOD INSTEAD OF VGID IN TBMETA - ctgError("invalid method to get none stb vgInfo, tbType:%d", tbMeta->tableType); + ctgError("tb:%s, invalid method to get none stb vgInfo, tbType:%d", pTableName->tname, tbMeta->tableType); CTG_ERR_JRET(TSDB_CODE_CTG_INVALID_INPUT); #if 0 @@ -557,7 +556,7 @@ _return: int32_t ctgGetTbHashVgroup(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pTableName, SVgroupInfo* pVgroup, bool* exists) { if (IS_SYS_DBNAME(pTableName->dbname)) { - ctgError("no valid vgInfo for db, dbname:%s", pTableName->dbname); + ctgError("db:%s, no valid vgInfo for db", pTableName->dbname); CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); } @@ -570,7 +569,7 @@ int32_t ctgGetTbHashVgroup(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* CTG_ERR_JRET(ctgGetDBVgInfo(pCtg, pConn, db, &dbCache, &vgInfo, exists)); if (exists && false == *exists) { - ctgDebug("db %s vgInfo not in cache", pTableName->dbname); + ctgDebug("db:%s, vgInfo not in cache", pTableName->dbname); return TSDB_CODE_SUCCESS; } @@ -592,7 +591,7 @@ _return: int32_t ctgGetTbsHashVgId(SCatalog* pCtg, SRequestConnInfo* pConn, int32_t acctId, const char* pDb, const char* pTbs[], int32_t tbNum, int32_t* vgId) { if (IS_SYS_DBNAME(pDb)) { - ctgError("no valid vgInfo for db, dbname:%s", pDb); + ctgError("db:%s, no valid vgInfo for db", pDb); CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); } @@ -798,7 +797,7 @@ _return: int32_t catalogInit(SCatalogCfg* cfg) { - qDebug("catalogInit start"); + qInfo("catalog init"); if (gCtgMgmt.pCluster) { qError("catalog already initialized"); CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); @@ -890,8 +889,8 @@ int32_t catalogInit(SCatalogCfg* cfg) { CTG_ERR_RET(ctgStartUpdateThread()); - qDebug("catalog initialized, maxDb:%u, maxTbl:%u, dbRentSec:%u, stbRentSec:%u", gCtgMgmt.cfg.maxDBCacheNum, - gCtgMgmt.cfg.maxTblCacheNum, gCtgMgmt.cfg.dbRentSec, gCtgMgmt.cfg.stbRentSec); + qInfo("catalog initialized, maxDb:%u, maxTbl:%u, dbRentSec:%u, stbRentSec:%u", gCtgMgmt.cfg.maxDBCacheNum, + gCtgMgmt.cfg.maxTblCacheNum, gCtgMgmt.cfg.dbRentSec, gCtgMgmt.cfg.stbRentSec); return TSDB_CODE_SUCCESS; } @@ -961,7 +960,7 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("add CTG to cache, clusterId:0x%" PRIx64 ", CTG:%p", clusterId, clusterCtg); + qDebug("CTG:%p, add CTG to cache, clusterId:0x%" PRIx64, clusterCtg, clusterId); break; } @@ -1001,7 +1000,7 @@ int32_t catalogGetDBVgVersion(SCatalog* pCtg, const char* dbFName, int32_t* vers ctgReleaseVgInfoToCache(pCtg, dbCache); - ctgDebug("get db vgVersion from cache, dbFName:%s, vgVersion:%d", dbFName, *version); + ctgDebug("db:%s, get db vgVersion from cache, vgVersion:%d", dbFName, *version); CTG_API_LEAVE(TSDB_CODE_SUCCESS); @@ -1069,7 +1068,7 @@ int32_t catalogGetDBVgInfo(SCatalog* pCtg, SRequestConnInfo* pConn, const char* pInfo->hashMethod = dbInfo->hashMethod; pInfo->vgNum = taosHashGetSize(dbInfo->vgHash); if (pInfo->vgNum <= 0) { - ctgError("invalid vgNum %d in db %s's vgHash", pInfo->vgNum, dbFName); + ctgError("db:%s, invalid vgNum %d in db vgHash", dbFName, pInfo->vgNum); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -1529,13 +1528,13 @@ _return: if (pJob) { int32_t code2 = taosReleaseRef(gCtgMgmt.jobPool, pJob->refId); if (TSDB_CODE_SUCCESS) { - qError("release catalog job refId %" PRId64 "falied, error:%s", pJob->refId, tstrerror(code2)); + qError("release catalog job refId:%" PRId64 " falied, error:%s", pJob->refId, tstrerror(code2)); } if (code) { code2 = taosRemoveRef(gCtgMgmt.jobPool, pJob->refId); if (TSDB_CODE_SUCCESS) { - qError("remove catalog job refId %" PRId64 "falied, error:%s", pJob->refId, tstrerror(code2)); + qError("remove catalog job refId:%" PRId64 " falied, error:%s", pJob->refId, tstrerror(code2)); } } } @@ -1827,8 +1826,8 @@ int32_t catalogUpdateDynViewVer(SCatalog* pCtg, SDynViewVersion* pVer) { atomic_store_64(&pCtg->dynViewVer.svrBootTs, pVer->svrBootTs); atomic_store_64(&pCtg->dynViewVer.dynViewVer, pVer->dynViewVer); - ctgDebug("cluster %" PRIx64 " svrBootTs updated to %" PRId64, pCtg->clusterId, pVer->svrBootTs); - ctgDebug("cluster %" PRIx64 " dynViewVer updated to %" PRId64, pCtg->clusterId, pVer->dynViewVer); + ctgDebug("clusterId:0x%" PRIx64 ", svrBootTs updated to %" PRId64, pCtg->clusterId, pVer->svrBootTs); + ctgDebug("clusterId:0x%" PRIx64 ", dynViewVer updated to %" PRId64, pCtg->clusterId, pVer->dynViewVer); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 55d69baf70..3441c0f8b8 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -1053,18 +1053,18 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const pJob->refId = taosAddRef(gCtgMgmt.jobPool, pJob); if (pJob->refId < 0) { - ctgError("add job to ref failed, error: %s", tstrerror(terrno)); + ctgError("add job to ref failed, error:%s", tstrerror(terrno)); CTG_ERR_JRET(terrno); } void* p = taosAcquireRef(gCtgMgmt.jobPool, pJob->refId); if (NULL == p) { - ctgError("acquire job from ref failed, refId:%" PRId64 ", error: %s", pJob->refId, tstrerror(terrno)); + ctgError("acquire job from ref failed, refId:%" PRId64 ", error:%s", pJob->refId, tstrerror(terrno)); CTG_ERR_JRET(terrno); } double el = (taosGetTimestampUs() - st) / 1000.0; - qDebug("QID:0x%" PRIx64 ", jobId: 0x%" PRIx64 " initialized, task num %d, forceUpdate %d, elapsed time:%.2f ms", + qDebug("QID:0x%" PRIx64 ", jobId:0x%" PRIx64 " initialized, task num:%d, forceUpdate:%d, elapsed time:%.2f ms", pJob->queryId, pJob->refId, taskNum, pReq->forceUpdate, el); return TSDB_CODE_SUCCESS; @@ -2769,7 +2769,7 @@ _return: if (TSDB_CODE_MND_SMA_NOT_EXIST == code) { code = TSDB_CODE_SUCCESS; } else { - ctgTaskError("Get tsma for %d.%s.%s failed with err: %s", pName->acctId, pName->dbname, pName->tname, + ctgTaskError("get tsma for %d.%s.%s failed with err:%s", pName->acctId, pName->dbname, pName->tname, tstrerror(code)); } } @@ -2884,7 +2884,7 @@ int32_t ctgHandleGetTbTSMARsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf pTsmaInfo->delayDuration = TMAX(pRsp->progressDelay, pTsmaInfo->delayDuration); pTsmaInfo->fillHistoryFinished = pTsmaInfo->fillHistoryFinished && pRsp->fillHisFinished; - qDebug("received stream progress for tsma %s rsp history: %d vnode: %d, delay: %" PRId64, pTsmaInfo->name, + qDebug("received stream progress for tsma %s rsp history:%d vnode:%d, delay:%" PRId64, pTsmaInfo->name, pRsp->fillHisFinished, pRsp->subFetchIdx, pRsp->progressDelay); if (atomic_add_fetch_32(&pFetch->finishedSubFetchNum, 1) == pFetch->subFetchNum) { @@ -2937,7 +2937,7 @@ int32_t ctgHandleGetTbTSMARsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf pFetch->tsmaSourceTbName = *pTbName; if (CTG_IS_META_NULL(pOut->metaType)) { - ctgTaskError("no tbmeta found when fetching tsma source tb meta: %s.%s", pTbName->dbname, pTbName->tname); + ctgTaskError("no tbmeta found when fetching tsma source tb meta:%s.%s", pTbName->dbname, pTbName->tname); (void)ctgRemoveTbMetaFromCache(pCtg, pTbName, false); // ignore cache error CTG_ERR_JRET(CTG_ERR_CODE_TABLE_NOT_EXIST); } @@ -2979,7 +2979,7 @@ _return: if (TSDB_CODE_MND_SMA_NOT_EXIST == code) { code = TSDB_CODE_SUCCESS; } else { - ctgTaskError("Get tsma for %d.%s.%s faield with err: %s", pTbName->acctId, pTbName->dbname, pTbName->tname, + ctgTaskError("get tsma for %d.%s.%s faield with err:%s", pTbName->acctId, pTbName->dbname, pTbName->tname, tstrerror(code)); } } @@ -3690,7 +3690,7 @@ int32_t ctgLaunchGetUserTask(SCtgTask* pTask) { if (inCache) { pTask->res = rsp.pRawRes; - ctgTaskDebug("Final res got, pass:[%d,%d], pCond:[%p,%p]", rsp.pRawRes->pass[0], rsp.pRawRes->pass[1], + ctgTaskDebug("final res got, pass:[%d,%d], pCond:[%p,%p]", rsp.pRawRes->pass[0], rsp.pRawRes->pass[1], rsp.pRawRes->pCond[0], rsp.pRawRes->pCond[1]); CTG_ERR_RET(ctgHandleTaskEnd(pTask, 0)); diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index cf397df3fb..b826cb0d62 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -67,7 +67,7 @@ int32_t ctgRLockVgInfo(SCatalog *pCtg, SCtgDBCache *dbCache, bool *inCache) { if (dbCache->deleted) { CTG_UNLOCK(CTG_READ, &dbCache->vgCache.vgLock); - ctgDebug("db is dropping, dbId:0x%" PRIx64, dbCache->dbId); + ctgDebug("dbId:0x%" PRIx64 ", db is dropping", dbCache->dbId); *inCache = false; return TSDB_CODE_SUCCESS; @@ -77,7 +77,7 @@ int32_t ctgRLockVgInfo(SCatalog *pCtg, SCtgDBCache *dbCache, bool *inCache) { CTG_UNLOCK(CTG_READ, &dbCache->vgCache.vgLock); *inCache = false; - ctgDebug("db vgInfo is empty, dbId:0x%" PRIx64, dbCache->dbId); + ctgDebug("dbId:0x%" PRIx64 ", db vgInfo is empty", dbCache->dbId); return TSDB_CODE_SUCCESS; } @@ -90,7 +90,7 @@ int32_t ctgWLockVgInfo(SCatalog *pCtg, SCtgDBCache *dbCache) { CTG_LOCK(CTG_WRITE, &dbCache->vgCache.vgLock); if (dbCache->deleted) { - ctgDebug("db is dropping, dbId:0x%" PRIx64, dbCache->dbId); + ctgDebug("dbId:0x%" PRIx64 ", db is dropping", dbCache->dbId); CTG_UNLOCK(CTG_WRITE, &dbCache->vgCache.vgLock); CTG_ERR_RET(TSDB_CODE_CTG_DB_DROPPED); } @@ -129,7 +129,7 @@ int32_t ctgAcquireDBCacheImpl(SCatalog *pCtg, const char *dbFName, SCtgDBCache * if (NULL == dbCache) { *pCache = NULL; CTG_CACHE_NHIT_INC(CTG_CI_DB, 1); - ctgDebug("db not in cache, dbFName:%s", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); return TSDB_CODE_SUCCESS; } @@ -144,7 +144,7 @@ int32_t ctgAcquireDBCacheImpl(SCatalog *pCtg, const char *dbFName, SCtgDBCache * *pCache = NULL; CTG_CACHE_NHIT_INC(CTG_CI_DB, 1); - ctgDebug("db is removing from cache, dbFName:%s", dbFName); + ctgDebug("db:%s, db is removing from cache", dbFName); return TSDB_CODE_SUCCESS; } @@ -229,14 +229,14 @@ int32_t ctgAcquireVgInfoFromCache(SCatalog *pCtg, const char *dbFName, SCtgDBCac SCtgDBCache *dbCache = NULL; CTG_ERR_JRET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); goto _return; } bool inCache = false; CTG_ERR_JRET(ctgRLockVgInfo(pCtg, dbCache, &inCache)); if (!inCache) { - ctgDebug("vgInfo of db %s not in cache", dbFName); + ctgDebug("db:%s, vgInfo not in cache", dbFName); goto _return; } @@ -244,7 +244,7 @@ int32_t ctgAcquireVgInfoFromCache(SCatalog *pCtg, const char *dbFName, SCtgDBCac CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("db:%s, get db vgInfo from cache", dbFName); return TSDB_CODE_SUCCESS; @@ -268,26 +268,26 @@ int32_t ctgAcquireTbMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_ERR_JRET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgDebug("tb:%s, db not in cache, db:%s", tbName, dbFName); goto _return; } pCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == pCache) { - ctgDebug("tb %s not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, tb not in cache, db:%s", tbName, dbFName); goto _return; } CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, meta not in cache, db:%s", tbName, dbFName); goto _return; } *pDb = dbCache; *pTb = pCache; - ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, meta get from cache, db:%s", tbName, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType); @@ -311,14 +311,14 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_ERR_JRET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgDebug("tb:%s, db not in cache, db:%s", tbName, dbFName); CTG_CACHE_NHIT_INC(CTG_CI_DB_VGROUP, 1); goto _return; } CTG_ERR_JRET(ctgRLockVgInfo(pCtg, dbCache, &vgInCache)); if (!vgInCache) { - ctgDebug("vgInfo of db %s not in cache", dbFName); + ctgDebug("tb:%s, vgInfo of db not in cache, db:%s", tbName, dbFName); CTG_CACHE_NHIT_INC(CTG_CI_DB_VGROUP, 1); goto _return; } @@ -327,25 +327,25 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha CTG_CACHE_HIT_INC(CTG_CI_DB_VGROUP, 1); - ctgDebug("get db vgInfo from cache, dbFName:%s", dbFName); + ctgDebug("tb:%s, get db vgInfo from cache, db:%s", tbName, dbFName); tbCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == tbCache) { - ctgDebug("tb %s not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, not in cache, db:%s", tbName, dbFName); CTG_META_NHIT_INC(); goto _return; } CTG_LOCK(CTG_READ, &tbCache->metaLock); if (NULL == tbCache->pMeta) { - ctgDebug("tb:%s meta not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, meta not in cache, db:%s", tbName, dbFName); CTG_META_NHIT_INC(); goto _return; } *pTb = tbCache; - ctgDebug("tb:%s meta get in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, meta get from cache, db:%s", tbName, dbFName); CTG_META_HIT_INC(tbCache->pMeta->tableType); @@ -378,19 +378,19 @@ int32_t ctgAcquireStbMetaFromCache(SCatalog *pCtg, char *dbFName, uint64_t suid, SCtgTbCache *pCache = NULL; ctgAcquireDBCache(pCtg, dbFName, &dbCache); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); goto _return; } char *stName = taosHashAcquire(dbCache->stbCache, &suid, sizeof(suid)); if (NULL == stName) { - ctgDebug("stb 0x%" PRIx64 " not in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", not in cache, db:%s", suid, dbFName); goto _return; } pCache = taosHashAcquire(dbCache->tbCache, stName, strlen(stName)); if (NULL == pCache) { - ctgDebug("stb 0x%" PRIx64 " name %s not in cache, dbFName:%s", suid, stName, dbFName); + ctgDebug("stb:0x%" PRIx64 ", name %s not in cache, db:%s", suid, stName, dbFName); taosHashRelease(dbCache->stbCache, stName); goto _return; } @@ -399,14 +399,14 @@ int32_t ctgAcquireStbMetaFromCache(SCatalog *pCtg, char *dbFName, uint64_t suid, CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("stb 0x%" PRIx64 " meta not in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", meta not in cache, db:%s", suid, dbFName); goto _return; } *pDb = dbCache; *pTb = pCache; - ctgDebug("stb 0x%" PRIx64 " meta got in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", meta got in cache, db:%s", suid, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType, 1); @@ -430,13 +430,13 @@ int32_t ctgAcquireStbMetaFromCache(SCtgDBCache *dbCache, SCatalog *pCtg, char *d SCtgTbCache *pCache = NULL; char *stName = taosHashAcquire(dbCache->stbCache, &suid, sizeof(suid)); if (NULL == stName) { - ctgDebug("stb 0x%" PRIx64 " not in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", not in cache, db:%s", suid, dbFName); goto _return; } pCache = taosHashAcquire(dbCache->tbCache, stName, strlen(stName)); if (NULL == pCache) { - ctgDebug("stb 0x%" PRIx64 " name %s not in cache, dbFName:%s", suid, stName, dbFName); + ctgDebug("stb:0x%" PRIx64 ", name %s not in cache, db:%s", suid, stName, dbFName); taosHashRelease(dbCache->stbCache, stName); goto _return; } @@ -445,13 +445,13 @@ int32_t ctgAcquireStbMetaFromCache(SCtgDBCache *dbCache, SCatalog *pCtg, char *d CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("stb 0x%" PRIx64 " meta not in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", meta not in cache, db:%s", suid, dbFName); goto _return; } *pTb = pCache; - ctgDebug("stb 0x%" PRIx64 " meta got in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", meta get from cache, db:%s", suid, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType); @@ -475,27 +475,27 @@ int32_t ctgAcquireTbIndexFromCache(SCatalog *pCtg, char *dbFName, char *tbName, CTG_ERR_JRET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgDebug("tb:%s, db not in cache, db:%s", tbName, dbFName); goto _return; } int32_t sz = 0; pCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == pCache) { - ctgDebug("tb %s not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, tb not in cache, db:%s", tbName, dbFName); goto _return; } CTG_LOCK(CTG_READ, &pCache->indexLock); if (NULL == pCache->pIndex) { - ctgDebug("tb %s index not in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, index not in cache, db:%s", tbName, dbFName); goto _return; } *pDb = dbCache; *pTb = pCache; - ctgDebug("tb %s index got in cache, dbFName:%s", tbName, dbFName); + ctgDebug("tb:%s, index get from cache, db:%s", tbName, dbFName); CTG_CACHE_HIT_INC(CTG_CI_TBL_SMA, 1); @@ -557,7 +557,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt (*pTableMeta)->schemaExt = NULL; } - ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", ctx->pName->tname, tbMeta->tableType, dbFName); + ctgDebug("tb:%s, get meta from cache, type:%d, db:%s", ctx->pName->tname, tbMeta->tableType, dbFName); return TSDB_CODE_SUCCESS; } @@ -577,14 +577,14 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt taosHashRelease(dbCache->tbCache, tbCache); *pTb = NULL; - ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", ctx->pName->tname, + ctgDebug("ctb:%s, get meta from cache, will continue to get its stb meta, tbType:%d, db:%s", ctx->pName->tname, ctx->tbInfo.tbType, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, ctx->tbInfo.suid, &tbCache)); if (NULL == tbCache) { taosMemoryFreeClear(*pTableMeta); *pDb = NULL; - ctgDebug("stb 0x%" PRIx64 " meta not in cache", ctx->tbInfo.suid); + ctgDebug("stb:0x%" PRIx64 ", meta not in cache", ctx->tbInfo.suid); return TSDB_CODE_SUCCESS; } @@ -592,7 +592,7 @@ int32_t ctgCopyTbMeta(SCatalog *pCtg, SCtgTbMetaCtx *ctx, SCtgDBCache **pDb, SCt STableMeta *stbMeta = tbCache->pMeta; if (stbMeta->suid != ctx->tbInfo.suid) { - ctgError("stb suid 0x%" PRIx64 " in stbCache mis-match, expected suid 0x%" PRIx64, stbMeta->suid, ctx->tbInfo.suid); + ctgError("stb:0x%" PRIx64 ", suid in stbCache mis-match, expected suid:0x%" PRIx64, stbMeta->suid, ctx->tbInfo.suid); taosMemoryFreeClear(*pTableMeta); CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -632,7 +632,7 @@ int32_t ctgReadTbMetaFromCache(SCatalog *pCtg, SCtgTbMetaCtx *ctx, STableMeta ** ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb:%s meta from cache, dbFName:%s", ctx->pName->tname, dbFName); + ctgDebug("tb:%s, get meta from cache, db:%s", ctx->pName->tname, dbFName); return TSDB_CODE_SUCCESS; @@ -669,7 +669,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, *sver = tbMeta->sversion; *tver = tbMeta->tversion; - ctgDebug("get tb:%s ver from cache, dbFName:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, + ctgDebug("tb:%s, get ver from cache, db:%s, tbType:%d, sver:%d, tver:%d, suid:0x%" PRIx64, pTableName->tname, dbFName, *tbType, *sver, *tver, *suid); ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); @@ -684,19 +684,19 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, taosHashRelease(dbCache->tbCache, tbCache); } - ctgDebug("get ctb %s ver from cache, will continue to get its stb ver, dbFName:%s", pTableName->tname, dbFName); + ctgDebug("ctb:%s, get ver from cache, will continue to get its stb ver, db:%s", pTableName->tname, dbFName); CTG_ERR_RET(ctgAcquireStbMetaFromCache(dbCache, pCtg, dbFName, *suid, &tbCache)); if (NULL == tbCache) { // ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("stb 0x%" PRIx64 " meta not in cache", *suid); + ctgDebug("stb:0x%" PRIx64 ", meta not in cache", *suid); return TSDB_CODE_SUCCESS; } STableMeta *stbMeta = tbCache->pMeta; if (stbMeta->suid != *suid) { ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgError("stb suid 0x%" PRIx64 " in stbCache mis-match, expected suid:0x%" PRIx64, stbMeta->suid, *suid); + ctgError("stb:0x%" PRIx64 ", suid in stbCache mis-match, expected suid:0x%" PRIx64, stbMeta->suid, *suid); CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -711,7 +711,7 @@ int32_t ctgReadTbVerFromCache(SCatalog *pCtg, SName *pTableName, int32_t *sver, ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb:%s sver %d tver %d from cache, type:%d, dbFName:%s", pTableName->tname, *sver, *tver, *tbType, + ctgDebug("tb:%s, get sver %d tver %d from cache, type:%d, db:%s", pTableName->tname, *sver, *tver, *tbType, dbFName); return TSDB_CODE_SUCCESS; @@ -729,7 +729,7 @@ int32_t ctgReadTbTypeFromCache(SCatalog *pCtg, char *dbFName, char *tbName, int3 *tbType = tbCache->pMeta->tableType; ctgReleaseTbMetaToCache(pCtg, dbCache, tbCache); - ctgDebug("get tb:%s tbType %d from cache, dbFName:%s", tbName, *tbType, dbFName); + ctgDebug("tb:%s, get tbType %d from cache, db:%s", tbName, *tbType, dbFName); return TSDB_CODE_SUCCESS; } @@ -764,7 +764,7 @@ int32_t ctgReadDBCfgFromCache(SCatalog *pCtg, const char* dbFName, SDbCfgInfo* p CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); pDbCfg->cfgVersion = -1; CTG_CACHE_NHIT_INC(CTG_CI_DB_CFG, 1); return TSDB_CODE_SUCCESS; @@ -801,13 +801,13 @@ int32_t ctgGetCachedStbNameFromSuid(SCatalog* pCtg, char* dbFName, uint64_t suid SCtgDBCache *dbCache = NULL; CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgDebug("stb:0x%" PRIx64 ", db not in cache, db:%s", suid, dbFName); return TSDB_CODE_SUCCESS; } char *stb = taosHashAcquire(dbCache->stbCache, &suid, sizeof(suid)); if (NULL == stb) { - ctgDebug("stb 0x%" PRIx64 " not in cache, dbFName:%s", suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", not in cache, db:%s", suid, dbFName); ctgReleaseDBCache(pCtg, dbCache); return TSDB_CODE_SUCCESS; } @@ -829,13 +829,13 @@ int32_t ctgChkAuthFromCache(SCatalog *pCtg, SUserAuthInfo *pReq, bool tbNotExist SCtgUserAuth *pUser = (SCtgUserAuth *)taosHashGet(pCtg->userCache, pReq->user, strlen(pReq->user)); if (NULL == pUser) { - ctgDebug("user not in cache, user:%s", pReq->user); + ctgDebug("user:%s, user not in cache", pReq->user); goto _return; } *inCache = true; - ctgDebug("get user from cache, user:%s", pReq->user); + ctgDebug("user:%s, get user from cache", pReq->user); CTG_CACHE_HIT_INC(CTG_CI_USER, 1); SCtgAuthReq req = {0}; @@ -859,7 +859,7 @@ _return: *inCache = false; CTG_CACHE_NHIT_INC(CTG_CI_USER, 1); - ctgDebug("Get user from cache failed, user:%s, metaNotExists:%d, code:%d", pReq->user, pRes->metaNotExists, code); + ctgDebug("user:%s, get user from cache failed, metaNotExists:%d, code:%d", pReq->user, pRes->metaNotExists, code); return code; } @@ -1714,11 +1714,11 @@ int32_t ctgAddNewDBCache(SCatalog *pCtg, const char *dbFName, uint64_t dbId) { code = taosHashPut(pCtg->dbCache, dbFName, strlen(dbFName), &newDBCache, sizeof(SCtgDBCache)); if (code) { if (HASH_NODE_EXIST(code)) { - ctgDebug("db already in cache, dbFName:%s", dbFName); + ctgDebug("db:%s, db already in cache", dbFName); goto _return; } - ctgError("taosHashPut db to cache failed, dbFName:%s", dbFName); + ctgError("db:%s, taosHashPut db to cache failed", dbFName); CTG_ERR_JRET(terrno); } @@ -1727,12 +1727,12 @@ int32_t ctgAddNewDBCache(SCatalog *pCtg, const char *dbFName, uint64_t dbId) { SDbCacheInfo dbCacheInfo = {.dbId = newDBCache.dbId, .vgVersion = -1, .stateTs = 0, .cfgVersion = -1, .tsmaVersion = -1}; tstrncpy(dbCacheInfo.dbFName, dbFName, sizeof(dbCacheInfo.dbFName)); - ctgDebug("db added to cache, dbFName:%s, dbId:0x%" PRIx64, dbFName, dbId); + ctgDebug("db:%s, db added to cache, dbId:0x%" PRIx64, dbFName, dbId); if (!IS_SYS_DBNAME(dbFName)) { CTG_ERR_RET(ctgMetaRentAdd(&pCtg->dbRent, &dbCacheInfo, dbId, sizeof(SDbCacheInfo))); - ctgDebug("db added to rent, dbFName:%s, vgVersion:%d, dbId:0x%" PRIx64, dbFName, dbCacheInfo.vgVersion, dbId); + ctgDebug("db:%s, db added to rent,vgVersion:%d, dbId:0x%" PRIx64, dbFName, dbCacheInfo.vgVersion, dbId); } return TSDB_CODE_SUCCESS; @@ -1747,7 +1747,7 @@ _return: int32_t ctgRemoveDBFromCache(SCatalog *pCtg, SCtgDBCache *dbCache, const char *dbFName) { uint64_t dbId = dbCache->dbId; - ctgInfo("start to remove db from cache, dbFName:%s, dbId:0x%" PRIx64, dbFName, dbCache->dbId); + ctgInfo("db:%s, start to remove db from cache, dbId:0x%" PRIx64, dbFName, dbCache->dbId); CTG_LOCK(CTG_WRITE, &dbCache->dbLock); @@ -1760,15 +1760,15 @@ int32_t ctgRemoveDBFromCache(SCatalog *pCtg, SCtgDBCache *dbCache, const char *d CTG_UNLOCK(CTG_WRITE, &dbCache->dbLock); CTG_ERR_RET(ctgMetaRentRemove(&pCtg->dbRent, dbId, ctgDbCacheInfoSortCompare, ctgDbCacheInfoSearchCompare)); - ctgDebug("db removed from rent, dbFName:%s, dbId:0x%" PRIx64, dbFName, dbId); + ctgDebug("db:%s, db removed from rent, dbId:0x%" PRIx64, dbFName, dbId); if (taosHashRemove(pCtg->dbCache, dbFName, strlen(dbFName))) { - ctgInfo("taosHashRemove from dbCache failed, may be removed, dbFName:%s", dbFName); + ctgInfo("db:%s, taosHashRemove from dbCache failed, may be removed", dbFName); CTG_ERR_RET(TSDB_CODE_CTG_DB_DROPPED); } CTG_CACHE_NUM_DEC(CTG_CI_DB, 1); - ctgInfo("db removed from cache, dbFName:%s, dbId:0x%" PRIx64, dbFName, dbId); + ctgInfo("db:%s, db removed from cache, dbId:0x%" PRIx64, dbFName, dbId); return TSDB_CODE_SUCCESS; } @@ -1842,9 +1842,9 @@ int32_t ctgWriteTbMetaToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam if (stbName) { uint64_t metaSize = strlen(stbName) + 1 + sizeof(orig->suid); if (taosHashRemove(dbCache->stbCache, &orig->suid, sizeof(orig->suid))) { - ctgError("stb not exist in stbCache, dbFName:%s, stb:%s, suid:0x%" PRIx64, dbFName, tbName, orig->suid); + ctgError("stb not exist in stbCache, db:%s, stb:%s, suid:0x%" PRIx64, dbFName, tbName, orig->suid); } else { - ctgDebug("stb removed from stbCache, dbFName:%s, stb:%s, suid:0x%" PRIx64, dbFName, tbName, orig->suid); + ctgDebug("stb removed from stbCache, db:%s, stb:%s, suid:0x%" PRIx64, dbFName, tbName, orig->suid); (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, metaSize); } } @@ -1855,7 +1855,7 @@ int32_t ctgWriteTbMetaToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam SCtgTbCache cache = {0}; cache.pMeta = meta; if (taosHashPut(dbCache->tbCache, tbName, strlen(tbName), &cache, sizeof(SCtgTbCache)) != 0) { - ctgError("taosHashPut new tbCache failed, dbFName:%s, tbName:%s, tbType:%d", dbFName, tbName, meta->tableType); + ctgError("taosHashPut new tbCache failed, db:%s, tbName:%s, tbType:%d", dbFName, tbName, meta->tableType); taosMemoryFree(meta); CTG_ERR_RET(terrno); } @@ -1882,7 +1882,7 @@ int32_t ctgWriteTbMetaToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam CTG_META_NUM_INC(pCache->pMeta->tableType); - ctgDebug("tbmeta updated to cache, dbFName:%s, tbName:%s, tbType:%d", dbFName, tbName, meta->tableType); + ctgDebug("tbmeta updated to cache, db:%s, tbName:%s, tbType:%d", dbFName, tbName, meta->tableType); ctgdShowTableMeta(pCtg, tbName, meta); if (!isStb) { @@ -1896,7 +1896,7 @@ int32_t ctgWriteTbMetaToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam (void)atomic_add_fetch_64(&dbCache->dbCacheSize, sizeof(meta->suid) + strlen(tbName) + 1); - ctgDebug("stb 0x%" PRIx64 " updated to cache, dbFName:%s, tbName:%s, tbType:%d", meta->suid, dbFName, tbName, + ctgDebug("stb:0x%" PRIx64 ", updated to cache, db:%s, tbName:%s, tbType:%d", meta->suid, dbFName, tbName, meta->tableType); CTG_ERR_RET(ctgUpdateRentStbVersion(pCtg, dbFName, tbName, dbId, meta->suid, pCache)); @@ -2121,14 +2121,14 @@ int32_t ctgWriteTbTSMAToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam } if (taosHashPut(dbCache->tsmaCache, tbName, strlen(tbName), &cache, sizeof(cache))) { - ctgError("taosHashPut new tsmacache for tb: %s.%s failed", dbFName, tbName); + ctgError("tb:%s.%s, taosHashPut new tsmacache for tb failed", dbFName, tbName); CTG_ERR_JRET(terrno); } (void)atomic_add_fetch_64(&dbCache->dbCacheSize, strlen(tbName) + sizeof(STSMACache) + ctgGetTbTSMACacheSize(pTsmaCache)); CTG_DB_NUM_INC(CTG_CI_TBL_TSMA); - ctgDebug("tb %s tsma updated to cache, name: %s", tbName, pTsmaCache->name); + ctgDebug("tb:%s, tsma updated to cache, name:%s", tbName, pTsmaCache->name); CTG_ERR_JRET(ctgUpdateRentTSMAVersion(pCtg, dbFName, pTsmaCache)); *ppTsmaCache = NULL; @@ -2148,7 +2148,7 @@ int32_t ctgWriteTbTSMAToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam } if (pInfo->tsmaId == pTsmaCache->tsmaId) { - ctgDebug("tsma: %s removed from cache, history from %d to %d, reqTs from %" PRId64 " to %" PRId64 + ctgDebug("tsma:%s, removed from cache, history from %d to %d, reqTs from %" PRId64 " to %" PRId64 "rspTs from %" PRId64 " to %" PRId64 " delay from %" PRId64 " to %" PRId64, pInfo->name, pInfo->fillHistoryFinished, pTsmaCache->fillHistoryFinished, pInfo->reqTs, pTsmaCache->reqTs, pInfo->rspTs, pTsmaCache->rspTs, pInfo->delayDuration, pTsmaCache->delayDuration); @@ -2181,7 +2181,7 @@ int32_t ctgWriteTbTSMAToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam CTG_ERR_RET(ctgUpdateRentTSMAVersion(pCtg, dbFName, pTsmaCache)); - ctgDebug("table %s tsma updated to cache, tsma: %s", tbName, pTsmaCache->name); + ctgDebug("tb:%s, tsma updated to cache, tsma:%s", tbName, pTsmaCache->name); } CTG_UNLOCK(CTG_WRITE, &pCache->tsmaLock); @@ -2204,7 +2204,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { } if (dbInfo->vgVersion < 0 || (taosHashGetSize(dbInfo->vgHash) <= 0 && !IS_SYS_DBNAME(dbFName))) { - ctgDebug("invalid db vgInfo, dbFName:%s, vgHash:%p, vgVersion:%d, vgHashSize:%d", dbFName, dbInfo->vgHash, + ctgDebug("invalid db vgInfo, db:%s, vgHash:%p, vgVersion:%d, vgHashSize:%d", dbFName, dbInfo->vgHash, dbInfo->vgVersion, taosHashGetSize(dbInfo->vgHash)); CTG_ERR_JRET(TSDB_CODE_APP_ERROR); } @@ -2216,7 +2216,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { SCtgDBCache *dbCache = NULL; CTG_ERR_JRET(ctgGetAddDBCache(msg->pCtg, dbFName, msg->dbId, &dbCache)); if (NULL == dbCache) { - ctgInfo("conflict db update, ignore this update, dbFName:%s, dbId:0x%" PRIx64, dbFName, msg->dbId); + ctgInfo("conflict db update, ignore this update, db:%s, dbId:0x%" PRIx64, dbFName, msg->dbId); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -2228,7 +2228,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { SDBVgInfo *vgInfo = vgCache->vgInfo; if (dbInfo->vgVersion < vgInfo->vgVersion) { - ctgDebug("db updateVgroup is ignored, dbFName:%s, vgVer:%d, curVer:%d", dbFName, dbInfo->vgVersion, + ctgDebug("db updateVgroup is ignored, db:%s, vgVer:%d, curVer:%d", dbFName, dbInfo->vgVersion, vgInfo->vgVersion); ctgWUnlockVgInfo(dbCache); @@ -2237,7 +2237,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { if (dbInfo->vgVersion == vgInfo->vgVersion && dbInfo->numOfTable == vgInfo->numOfTable && dbInfo->stateTs == vgInfo->stateTs) { - ctgDebug("no new db vgroup update info, dbFName:%s, vgVer:%d, numOfTable:%d, stateTs:%" PRId64, dbFName, + ctgDebug("no new db vgroup update info, db:%s, vgVer:%d, numOfTable:%d, stateTs:%" PRId64, dbFName, dbInfo->vgVersion, dbInfo->numOfTable, dbInfo->stateTs); ctgWUnlockVgInfo(dbCache); @@ -2245,7 +2245,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { } uint64_t groupCacheSize = ctgGetDbVgroupCacheSize(vgCache->vgInfo); - ctgDebug("sub dbGroupCacheSize %" PRIu64 " from db, dbFName:%s", groupCacheSize, dbFName); + ctgDebug("sub dbGroupCacheSize %" PRIu64 " from db, db:%s", groupCacheSize, dbFName); (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, groupCacheSize); @@ -2262,14 +2262,14 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { msg->dbInfo = NULL; CTG_DB_NUM_SET(CTG_CI_DB_VGROUP); - ctgDebug("db vgInfo updated, dbFName:%s, vgVer:%d, stateTs:%" PRId64 ", dbId:0x%" PRIx64, dbFName, + ctgDebug("db:%s, db vgInfo updated, vgVer:%d, stateTs:%" PRId64 ", dbId:0x%" PRIx64, dbFName, dbCacheInfo.vgVersion, dbCacheInfo.stateTs, dbCacheInfo.dbId); ctgWUnlockVgInfo(dbCache); uint64_t groupCacheSize = ctgGetDbVgroupCacheSize(vgCache->vgInfo); (void)atomic_add_fetch_64(&dbCache->dbCacheSize, groupCacheSize); - ctgDebug("add dbGroupCacheSize %" PRIu64 " from db, dbFName:%s", groupCacheSize, dbFName); + ctgDebug("db:%s, add dbGroupCacheSize %" PRIu64 " from db", dbFName, groupCacheSize); dbCache = NULL; @@ -2299,14 +2299,14 @@ int32_t ctgOpUpdateDbCfg(SCtgCacheOperation *operation) { } if (cfgInfo->cfgVersion < 0) { - ctgDebug("invalid db cfgInfo, dbFName:%s, cfgVersion:%d", dbFName, cfgInfo->cfgVersion); + ctgDebug("invalid db cfgInfo, db:%s, cfgVersion:%d", dbFName, cfgInfo->cfgVersion); CTG_ERR_JRET(TSDB_CODE_APP_ERROR); } SCtgDBCache *dbCache = NULL; CTG_ERR_JRET(ctgGetAddDBCache(msg->pCtg, dbFName, msg->dbId, &dbCache)); if (NULL == dbCache) { - ctgInfo("conflict db update, ignore this update, dbFName:%s, dbId:0x%" PRIx64, dbFName, msg->dbId); + ctgInfo("conflict db update, ignore this update, db:%s, dbId:0x%" PRIx64, dbFName, msg->dbId); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -2333,7 +2333,7 @@ int32_t ctgOpUpdateDbCfg(SCtgCacheOperation *operation) { ctgWUnlockDbCfgInfo(dbCache); - ctgDebug("db cfgInfo updated, dbFName:%s, cfgVer:%d", dbFName, dbCache->cfgCache.cfgInfo->cfgVersion); + ctgDebug("db:%s, db cfgInfo updated, cfgVer:%d", dbFName, dbCache->cfgCache.cfgInfo->cfgVersion); // if (!IS_SYS_DBNAME(dbFName)) { CTG_ERR_JRET(ctgMetaRentUpdate(&msg->pCtg->dbRent, &cacheInfo, cacheInfo.dbId, sizeof(SDbCacheInfo), @@ -2365,7 +2365,7 @@ int32_t ctgOpDropDbCache(SCtgCacheOperation *operation) { } if (msg->dbId && dbCache->dbId != msg->dbId) { - ctgInfo("dbId already updated, dbFName:%s, dbId:0x%" PRIx64 ", targetId:0x%" PRIx64, msg->dbFName, dbCache->dbId, + ctgInfo("db:%s, dbId already updated, dbId:0x%" PRIx64 ", targetId:0x%" PRIx64, msg->dbFName, dbCache->dbId, msg->dbId); goto _return; } @@ -2402,7 +2402,7 @@ int32_t ctgOpDropDbVgroup(SCtgCacheOperation *operation) { dbCache->vgCache.vgInfo = NULL; CTG_DB_NUM_RESET(CTG_CI_DB_VGROUP); - ctgDebug("db vgInfo removed, dbFName:%s", msg->dbFName); + ctgDebug("db:%s, db vgInfo removed", msg->dbFName); ctgWUnlockVgInfo(dbCache); @@ -2425,7 +2425,7 @@ int32_t ctgOpUpdateTbMeta(SCtgCacheOperation *operation) { } if ((!CTG_IS_META_CTABLE(pMeta->metaType)) && NULL == pMeta->tbMeta) { - ctgError("no valid tbmeta got from meta rsp, dbFName:%s, tbName:%s", pMeta->dbFName, pMeta->tbName); + ctgError("no valid tbmeta got from meta rsp, db:%s, tbName:%s", pMeta->dbFName, pMeta->tbName); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -2436,7 +2436,7 @@ int32_t ctgOpUpdateTbMeta(SCtgCacheOperation *operation) { CTG_ERR_JRET(ctgGetAddDBCache(pCtg, pMeta->dbFName, pMeta->dbId, &dbCache)); if (NULL == dbCache) { - ctgInfo("conflict db update, ignore this update, dbFName:%s, dbId:0x%" PRIx64, pMeta->dbFName, pMeta->dbId); + ctgInfo("db:%s, conflict db update, ignore this update, dbId:0x%" PRIx64, pMeta->dbFName, pMeta->dbId); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -2483,8 +2483,8 @@ int32_t ctgOpDropStbMeta(SCtgCacheOperation *operation) { } if ((0 != msg->dbId) && (dbCache->dbId != msg->dbId)) { - ctgDebug("dbId already modified, dbFName:%s, current:0x%" PRIx64 ", dbId:0x%" PRIx64 ", stb:%s, suid:0x%" PRIx64, - msg->dbFName, dbCache->dbId, msg->dbId, msg->stbName, msg->suid); + ctgDebug("stb:%s, dbId already modified, current:0x%" PRIx64 ", dbId:0x%" PRIx64 ", db:%s, suid:0x%" PRIx64, + msg->stbName, dbCache->dbId, msg->dbId, msg->dbFName, msg->suid); goto _return; } @@ -2492,8 +2492,8 @@ int32_t ctgOpDropStbMeta(SCtgCacheOperation *operation) { if (stbName) { uint64_t metaSize = strlen(stbName) + 1 + sizeof(msg->suid); if (taosHashRemove(dbCache->stbCache, &msg->suid, sizeof(msg->suid))) { - ctgDebug("stb not exist in stbCache, may be removed, dbFName:%s, stb:%s, suid:0x%" PRIx64, msg->dbFName, - msg->stbName, msg->suid); + ctgDebug("stb:%s, stb not exist in stbCache, may be removed, db:%s, suid:0x%" PRIx64, msg->stbName, msg->dbFName, + msg->suid); } else { (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, metaSize); } @@ -2501,7 +2501,7 @@ int32_t ctgOpDropStbMeta(SCtgCacheOperation *operation) { SCtgTbCache *pTbCache = taosHashGet(dbCache->tbCache, msg->stbName, strlen(msg->stbName)); if (NULL == pTbCache) { - ctgDebug("stb %s already not in cache", msg->stbName); + ctgDebug("stb:%s, already not in cache", msg->stbName); goto _return; } @@ -2511,17 +2511,17 @@ int32_t ctgOpDropStbMeta(SCtgCacheOperation *operation) { ctgFreeTbCacheImpl(pTbCache, true); if (taosHashRemove(dbCache->tbCache, msg->stbName, strlen(msg->stbName))) { - ctgError("stb not exist in cache, dbFName:%s, stb:%s, suid:0x%" PRIx64, msg->dbFName, msg->stbName, msg->suid); + ctgError("stb:%s, stb not exist in cache, db:%s, suid:0x%" PRIx64, msg->stbName, msg->dbFName, msg->suid); } else { CTG_META_NUM_DEC(tblType); (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, sizeof(*pTbCache) + strlen(msg->stbName)); } - ctgInfo("stb removed from cache, dbFName:%s, stbName:%s, suid:0x%" PRIx64, msg->dbFName, msg->stbName, msg->suid); + ctgInfo("stb:%s, stb removed from cache, db:%s, suid:0x%" PRIx64, msg->stbName, msg->dbFName, msg->suid); CTG_ERR_JRET(ctgMetaRentRemove(&msg->pCtg->stbRent, msg->suid, ctgStbVersionSortCompare, ctgStbVersionSearchCompare)); - ctgDebug("stb removed from rent, dbFName:%s, stbName:%s, suid:0x%" PRIx64, msg->dbFName, msg->stbName, msg->suid); + ctgDebug("stb:%s, stb removed from rent, db:%s, suid:0x%" PRIx64, msg->stbName, msg->dbFName, msg->suid); _return: @@ -2547,14 +2547,14 @@ int32_t ctgOpDropTbMeta(SCtgCacheOperation *operation) { } if ((0 != msg->dbId) && (dbCache->dbId != msg->dbId)) { - ctgDebug("dbId 0x%" PRIx64 " not match with curId 0x%" PRIx64 ", dbFName:%s, tbName:%s", msg->dbId, dbCache->dbId, - msg->dbFName, msg->tbName); + ctgDebug("tb:%s, dbId:0x%" PRIx64 " not match with curId:0x%" PRIx64 ", db:%s", msg->tbName, msg->dbId, + dbCache->dbId, msg->dbFName); goto _return; } SCtgTbCache *pTbCache = taosHashGet(dbCache->tbCache, msg->tbName, strlen(msg->tbName)); if (NULL == pTbCache) { - ctgDebug("tb %s already not in cache", msg->tbName); + ctgDebug("tb:%s, already not in cache", msg->tbName); goto _return; } @@ -2564,14 +2564,14 @@ int32_t ctgOpDropTbMeta(SCtgCacheOperation *operation) { ctgFreeTbCacheImpl(pTbCache, true); if (taosHashRemove(dbCache->tbCache, msg->tbName, strlen(msg->tbName))) { - ctgError("tb %s not exist in cache, dbFName:%s", msg->tbName, msg->dbFName); + ctgError("tb:%s, not exist in cache, db:%s", msg->tbName, msg->dbFName); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } else { (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, sizeof(*pTbCache) + strlen(msg->tbName)); CTG_META_NUM_DEC(tblType); } - ctgDebug("table %s removed from cache, dbFName:%s", msg->tbName, msg->dbFName); + ctgDebug("tb:%s, removed from cache, db:%s", msg->tbName, msg->dbFName); _return: @@ -2703,7 +2703,7 @@ int32_t ctgOpUpdateEpset(SCtgCacheOperation *operation) { SEp *pOrigEp = &pInfo->epSet.eps[pInfo->epSet.inUse]; SEp *pNewEp = &msg->epSet.eps[msg->epSet.inUse]; - ctgDebug("vgroup %d epset updated from %d/%d=>%s:%d to %d/%d=>%s:%d, dbFName:%s in ctg", pInfo->vgId, + ctgDebug("vgroup %d epset updated from %d/%d=>%s:%d to %d/%d=>%s:%d, db:%s in ctg", pInfo->vgId, pInfo->epSet.inUse, pInfo->epSet.numOfEps, pOrigEp->fqdn, pOrigEp->port, msg->epSet.inUse, msg->epSet.numOfEps, pNewEp->fqdn, pNewEp->port, msg->dbFName); @@ -2802,7 +2802,7 @@ int32_t ctgOpUpdateViewMeta(SCtgCacheOperation *operation) { CTG_ERR_JRET(ctgGetAddDBCache(pCtg, pRsp->dbFName, pRsp->dbId, &dbCache)); if (NULL == dbCache) { - ctgInfo("conflict db update, ignore this update, dbFName:%s, dbId:0x%" PRIx64, pRsp->dbFName, pRsp->dbId); + ctgInfo("db:%s, conflict db update, ignore this update, dbId:0x%" PRIx64, pRsp->dbFName, pRsp->dbId); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -2843,39 +2843,39 @@ int32_t ctgOpDropViewMeta(SCtgCacheOperation *operation) { } if ((0 != msg->dbId) && (dbCache->dbId != msg->dbId)) { - ctgDebug("dbId 0x%" PRIx64 " not match with curId 0x%" PRIx64 ", dbFName:%s, viewName:%s", msg->dbId, dbCache->dbId, - msg->dbFName, msg->viewName); + ctgDebug("view:%s, dbId:0x%" PRIx64 " not match with curId:0x%" PRIx64 ", db:%s", msg->viewName, msg->dbId, + dbCache->dbId, msg->dbFName); goto _return; } SCtgViewCache *pViewCache = taosHashGet(dbCache->viewCache, msg->viewName, strlen(msg->viewName)); if (NULL == pViewCache) { - ctgDebug("view %s already not in cache", msg->viewName); + ctgDebug("view:%s, already not in cache", msg->viewName); goto _return; } int64_t viewId = pViewCache->pMeta->viewId; if (0 != msg->viewId && viewId != msg->viewId) { - ctgDebug("viewId 0x%" PRIx64 " not match with curId 0x%" PRIx64 ", viewName:%s", msg->viewId, viewId, msg->viewName); + ctgDebug("view:%s, viewId:0x%" PRIx64 " not match with curId:0x%" PRIx64, msg->viewName, msg->viewId, viewId); goto _return; } - + (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, ctgGetViewMetaCacheSize(pViewCache->pMeta)); ctgFreeViewCacheImpl(pViewCache, true); if (taosHashRemove(dbCache->viewCache, msg->viewName, strlen(msg->viewName))) { - ctgError("view %s not exist in cache, dbFName:%s", msg->viewName, msg->dbFName); + ctgError("view:%s, not exist in cache, db:%s", msg->viewName, msg->dbFName); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } else { (void)atomic_sub_fetch_64(&dbCache->dbCacheSize, sizeof(SCtgViewCache) + strlen(msg->viewName)); CTG_DB_NUM_DEC(CTG_CI_VIEW); } - ctgDebug("view %s removed from cache, dbFName:%s", msg->viewName, msg->dbFName); + ctgDebug("view:%s, removed from cache, db:%s", msg->viewName, msg->dbFName); CTG_ERR_JRET(ctgMetaRentRemove(&msg->pCtg->viewRent, viewId, ctgViewVersionSortCompare, ctgViewVersionSearchCompare)); - ctgDebug("view %s removed from rent, dbFName:%s, viewId:0x%" PRIx64, msg->viewName, msg->dbFName, viewId); + ctgDebug("view:%s, removed from rent, db:%s, viewId:0x%" PRIx64, msg->viewName, msg->dbFName, viewId); _return: @@ -3011,10 +3011,10 @@ int32_t ctgOpDropTbTSMA(SCtgCacheOperation *operation) { pCtgCache->pTsmas = NULL; pCtgCache->retryFetch = true; - ctgDebug("all tsmas for table dropped: %s.%s", msg->dbFName, msg->tbName); + ctgDebug("tb:%s.%s, all tsmas for table dropped", msg->dbFName, msg->tbName); code = taosHashRemove(dbCache->tsmaCache, msg->tbName, TSDB_TABLE_NAME_LEN); if (TSDB_CODE_SUCCESS != code) { - ctgError("remove table %s.%s from tsmaCache failed, error:%s", msg->dbFName, msg->tbName, tstrerror(code)); + ctgError("tb:%s.%s, remove from tsmaCache failed, error:%s", msg->dbFName, msg->tbName, tstrerror(code)); } CTG_UNLOCK(CTG_WRITE, &pCtgCache->tsmaLock); @@ -3432,7 +3432,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); for (int32_t i = 0; i < tbNum; ++i) { CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaData){0})) { @@ -3452,7 +3452,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe pCache = taosHashAcquire(dbCache->tbCache, pName->tname, strlen(pName->tname)); if (NULL == pCache) { - ctgDebug("tb %s not in cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("tb:%s, tb not in cache, db:%s", pName->tname, dbFName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaData){0})) { CTG_ERR_JRET(terrno); @@ -3468,7 +3468,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("tb %s meta not in cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("tb:%s, meta not in cache, db:%s", pName->tname, dbFName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaData){0})) { @@ -3517,7 +3517,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("tb:%s, get meta from cache, type:%d, db:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3542,7 +3542,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("get tb:%s meta from cache, type:%d, dbFName:%s", pName->tname, pTableMeta->tableType, dbFName); + ctgDebug("tb:%s, get meta from cache, type:%d, db:%s", pName->tname, pTableMeta->tableType, dbFName); res.pRes = pTableMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3564,12 +3564,12 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgDebug("get ctb %s meta from cache, will continue to get its stb meta, type:%d, dbFName:%s", pName->tname, + ctgDebug("ctb:%s, get meta from cache, will continue to get its stb meta, type:%d, db:%s", pName->tname, nctx.tbInfo.tbType, dbFName); char *stName = taosHashAcquire(dbCache->stbCache, &pTableMeta->suid, sizeof(pTableMeta->suid)); if (NULL == stName) { - ctgDebug("stb 0x%" PRIx64 " not in cache, dbFName:%s", pTableMeta->suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", not in cache, db:%s", pTableMeta->suid, dbFName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaRes){0})) { CTG_ERR_JRET(terrno); @@ -3582,7 +3582,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe pCache = taosHashAcquire(dbCache->tbCache, stName, strlen(stName)); if (NULL == pCache) { - ctgDebug("stb 0x%" PRIx64 " name %s not in cache, dbFName:%s", pTableMeta->suid, stName, dbFName); + ctgDebug("stb:0x%" PRIx64 ", name:%s not in cache, db:%s", pTableMeta->suid, stName, dbFName); taosHashRelease(dbCache->stbCache, stName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); @@ -3600,7 +3600,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_LOCK(CTG_READ, &pCache->metaLock); if (NULL == pCache->pMeta) { - ctgDebug("stb 0x%" PRIx64 " meta not in cache, dbFName:%s", pTableMeta->suid, dbFName); + ctgDebug("stb:0x%" PRIx64 ", meta not in cache, db:%s", pTableMeta->suid, dbFName); CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); @@ -3620,7 +3620,7 @@ int32_t ctgGetTbMetasFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbMe CTG_UNLOCK(CTG_READ, &pCache->metaLock); taosHashRelease(dbCache->tbCache, pCache); - ctgError("stb suid 0x%" PRIx64 " in stbCache mis-match, expected suid 0x%" PRIx64, stbMeta->suid, + ctgError("stb:0x%" PRIx64 ", suid in stbCache mis-match, expected suid:0x%" PRIx64, stbMeta->suid, nctx.tbInfo.suid); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); @@ -3725,7 +3725,7 @@ int32_t ctgGetTbNamesFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgTbNa (void)tNameGetFullDbName(pName, dbFName); } - ctgDebug("db %s not in cache", dbFName); + ctgDebug("db:%s, not in cache", dbFName); for (int32_t i = 0; i < tbNum; ++i) { CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaData){0})) { @@ -3801,7 +3801,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (NULL == dbCache) { - ctgDebug("db %s not in cache", dbFName); + ctgDebug("db:%s, not in cache", dbFName); for (int32_t i = 0; i < tbNum; ++i) { CTG_ERR_RET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaData){0})) { @@ -3821,7 +3821,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC pCache = taosHashAcquire(dbCache->viewCache, pName->tname, strlen(pName->tname)); if (NULL == pCache) { - ctgDebug("view %s not in cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("view:%s, view not in cache, db:%s", pName->tname, dbFName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaRes){0})) { CTG_ERR_JRET(terrno); @@ -3835,7 +3835,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC if (NULL == pCache->pMeta) { CTG_UNLOCK(CTG_READ, &pCache->viewLock); taosHashRelease(dbCache->viewCache, pCache); - ctgDebug("view %s meta not in cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("view:%s, meta not in cache, db:%s", pName->tname, dbFName); CTG_ERR_JRET(ctgAddFetch(&ctx->pFetchs, dbIdx, i, fetchIdx, baseResIdx + i, flag)); if (NULL == taosArrayPush(ctx->pResList, &(SMetaRes){0})) { CTG_ERR_JRET(terrno); @@ -3877,7 +3877,7 @@ int32_t ctgGetViewsFromCache(SCatalog *pCtg, SRequestConnInfo *pConn, SCtgViewsC CTG_UNLOCK(CTG_READ, &pCache->viewLock); taosHashRelease(dbCache->viewCache, pCache); - ctgDebug("get view %s meta from cache, dbFName:%s", pName->tname, dbFName); + ctgDebug("view:%s, get meta from cache, db:%s", pName->tname, dbFName); res.pRes = pViewMeta; if (NULL == taosArrayPush(ctx->pResList, &res)) { @@ -3917,7 +3917,7 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx // get db cache CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &dbCache)); if (!dbCache) { - ctgDebug("DB %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); for (int32_t i = 0; i < tbNum; ++i) { CTG_ERR_RET(ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL)); if (NULL == taosArrayPush(pCtx->pResList, &(SMetaData){0})) { @@ -3938,7 +3938,7 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx pTbCache = taosHashAcquire(dbCache->tbCache, pName->tname, strlen(pName->tname)); if (!pTbCache) { - ctgDebug("tb: %s.%s not in cache", dbFName, pName->tname); + ctgDebug("tb:%s.%s not in cache", dbFName, pName->tname); CTG_ERR_JRET(ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL)); if (NULL == taosArrayPush(pCtx->pResList, &(SMetaRes){0})) { CTG_ERR_JRET(terrno); @@ -3950,7 +3950,7 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx CTG_LOCK(CTG_READ, &pTbCache->metaLock); if (!pTbCache->pMeta) { CTG_UNLOCK(CTG_READ, &pTbCache->metaLock); - ctgDebug("tb: %s.%s not in cache", dbFName, pName->tname); + ctgDebug("tb:%s.%s not in cache", dbFName, pName->tname); CTG_ERR_JRET(ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL)); if (NULL == taosArrayPush(pCtx->pResList, &(SMetaRes){0})) { @@ -3975,7 +3975,7 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx (void)snprintf(tsmaSourceTbName.tname, TMIN(TSDB_TABLE_NAME_LEN, strlen(stbName) + 1), "%s", stbName); taosHashRelease(dbCache->stbCache, stbName); } else { - ctgDebug("stb in db: %s, uid: %" PRId64 " not in cache", dbFName, suid); + ctgDebug("suid:0x%" PRIx64 ", stb not in cache, db:%s", suid, dbFName); CTG_ERR_JRET(ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TSMA_SOURCE_TB_META, NULL)); if (NULL == taosArrayPush(pCtx->pResList, &(SMetaRes){0})) { @@ -4009,7 +4009,7 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx if (pCache->retryFetch || hasOutOfDateTSMACache(pCache->pTsmas)) { CTG_UNLOCK(CTG_READ, &pCache->tsmaLock); - ctgDebug("tsma for tb: %s.%s not in cache", tsmaSourceTbName.tname, dbFName); + ctgDebug("tsma for tb:%s.%s not in cache", tsmaSourceTbName.tname, dbFName); CTG_ERR_JRET(ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag, FETCH_TB_TSMA, &tsmaSourceTbName)); if (NULL == taosArrayPush(pCtx->pResList, &(SMetaRes){0})) { @@ -4086,7 +4086,7 @@ int32_t ctgGetTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, SName* pTsmaNam CTG_ERR_RET(ctgAcquireDBCache(pCtg, dbFName, &pDbCache)); if (!pDbCache) { - ctgDebug("DB %s not in cache", dbFName); + ctgTrace("db:%s, db not in cache", dbFName); CTG_RET(code); } diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index e5c7750ddc..540b3b43e5 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -48,7 +48,7 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu msgNum = 0; } - ctgDebug("QID:0x%" PRIx64 ", ctg got batch %d rsp %s", pJob->queryId, cbParam->batchId, + ctgDebug("QID:0x%" PRIx64 ", ctg got batch:%d rsp:%s", pJob->queryId, cbParam->batchId, TMSG_INFO(cbParam->reqType + 1)); SHashObj* pBatchs = taosHashInit(taskNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), false, HASH_NO_LOCK); @@ -109,13 +109,13 @@ int32_t ctgHandleBatchRsp(SCtgJob* pJob, SCtgTaskCallbackParam* cbParam, SDataBu tReq.msgIdx = pRsp->msgIdx; SCtgMsgCtx* pMsgCtx = CTG_GET_TASK_MSGCTX(pTask, tReq.msgIdx); if (NULL == pMsgCtx) { - ctgError("get task %d SCtgMsgCtx failed, taskType:%d", tReq.msgIdx, pTask->type); + ctgError("task:%d, get SCtgMsgCtx failed, taskType:%d", tReq.msgIdx, pTask->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } pMsgCtx->pBatchs = pBatchs; - ctgDebug("QID:0x%" PRIx64 ", ctg task %d idx %d start to handle rsp %s, pBatchs: %p", pJob->queryId, pTask->taskId, + ctgDebug("QID:0x%" PRIx64 ", ctg task:%d idx:%d start to handle rsp:%s, pBatchs:%p", pJob->queryId, pTask->taskId, pRsp->msgIdx, TMSG_INFO(taskMsg.msgType + 1), pBatchs); (void)(*gCtgAsyncFps[pTask->type].handleRspFp)( @@ -144,7 +144,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process qnode list rsp failed, error:%s", tstrerror(rspCode)); + qError("process qnode list rsp failed, error:%s", tstrerror(rspCode)); CTG_ERR_RET(code); } @@ -159,7 +159,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process dnode list rsp failed, error:%s", tstrerror(rspCode)); + qError("process dnode list rsp failed, error:%s", tstrerror(rspCode)); CTG_ERR_RET(code); } @@ -168,185 +168,185 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, } case TDMT_MND_USE_DB: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for use db, error:%s, dbFName:%s", tstrerror(rspCode), target); + qError("db:%s, error rsp for use db, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process use db rsp failed, error:%s, dbFName:%s", tstrerror(code), target); + qError("db:%s, process use db rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get db vgInfo from mnode, dbFName:%s", target); + qDebug("db:%s, get db vgInfo from mnode", target); break; } case TDMT_MND_GET_DB_CFG: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for get db cfg, error:%s, db:%s", tstrerror(rspCode), target); + qError("db:%s, error rsp for get db cfg, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get db cfg rsp failed, error:%s, db:%s", tstrerror(code), target); + qError("db:%s, process get db cfg rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get db cfg from mnode, dbFName:%s", target); + qDebug("db:%s, get db cfg from mnode", target); break; } case TDMT_MND_GET_INDEX: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for get index, error:%s, indexName:%s", tstrerror(rspCode), target); + qError("index:%s, error rsp for get index, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get index rsp failed, error:%s, indexName:%s", tstrerror(code), target); + qError("index:%s, process get index rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get index from mnode, indexName:%s", target); + qDebug("index:%s, get index from mnode", target); break; } case TDMT_MND_GET_TABLE_INDEX: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for get table index, error:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for get table index, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get table index rsp failed, error:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, process get table index rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table index from mnode, tbFName:%s", target); + qDebug("tb:%s, get table index from mnode", target); break; } case TDMT_MND_RETRIEVE_FUNC: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for get udf, error:%s, funcName:%s", tstrerror(rspCode), target); + qError("func:%s, error rsp for get udf, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get udf rsp failed, error:%s, funcName:%s", tstrerror(code), target); + qError("func:%s, Process get udf rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get udf from mnode, funcName:%s", target); + qDebug("func:%s, get udf from mnode", target); break; } case TDMT_MND_GET_USER_AUTH: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for get user auth, error:%s, user:%s", tstrerror(rspCode), target); + qError("user:%s, error rsp for get user auth, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get user auth rsp failed, error:%s, user:%s", tstrerror(code), target); + qError("user:%s, process get user auth rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get user auth from mnode, user:%s", target); + qDebug("user:%s, get user auth from mnode", target); break; } case TDMT_MND_TABLE_META: { if (TSDB_CODE_SUCCESS != rspCode) { if (CTG_TABLE_NOT_EXIST(rspCode)) { SET_META_TYPE_NULL(((STableMetaOutput*)out)->metaType); - qDebug("stablemeta not exist in mnode, tbFName:%s", target); + qDebug("tb:%s, stablemeta not exist in mnode", target); return TSDB_CODE_SUCCESS; } - qError("error rsp for stablemeta from mnode, error:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for stablemeta from mnode, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process mnode stablemeta rsp failed, error:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, process mnode stablemeta rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table meta from mnode, tbFName:%s", target); + qDebug("tb:%s, get table meta from mnode", target); break; } case TDMT_VND_TABLE_META: { if (TSDB_CODE_SUCCESS != rspCode) { if (CTG_TABLE_NOT_EXIST(rspCode)) { SET_META_TYPE_NULL(((STableMetaOutput*)out)->metaType); - qDebug("tablemeta not exist in vnode, tbFName:%s", target); + qDebug("tb:%s, tablemeta not exist in vnode", target); return TSDB_CODE_SUCCESS; } - qError("error rsp for table meta from vnode, code:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for table meta from vnode, code:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process vnode tablemeta rsp failed, code:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, process vnode tablemeta rsp failed, code:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table meta from vnode, tbFName:%s", target); + qDebug("tb:%s, get table meta from vnode", target); break; } case TDMT_VND_TABLE_NAME: { if (TSDB_CODE_SUCCESS != rspCode) { if (CTG_TABLE_NOT_EXIST(rspCode)) { SET_META_TYPE_NULL(((STableMetaOutput*)out)->metaType); - qDebug("tablemeta not exist in vnode, tbFName:%s", target); + qDebug("tb:%s, tablemeta not exist in vnode", target); return TSDB_CODE_SUCCESS; } - qError("error rsp for table meta from vnode, code:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for table meta from vnode, code:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process vnode tablemeta rsp failed, code:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, process vnode tablemeta rsp failed, code:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table meta from vnode, tbFName:%s", target); + qDebug("tb:%s, get table meta from vnode", target); break; } case TDMT_VND_TABLE_CFG: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for table cfg from vnode, code:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for table cfg from vnode, code:%s,", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process vnode tb cfg rsp failed, code:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, process vnode tb cfg rsp failed, code:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table cfg from vnode, tbFName:%s", target); + qDebug("tb:%s, get table cfg from vnode", target); break; } case TDMT_MND_TABLE_CFG: { if (TSDB_CODE_SUCCESS != rspCode) { - qError("error rsp for stb cfg from mnode, error:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for stb cfg from mnode, error:%s", target, tstrerror(rspCode)); CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process mnode stb cfg rsp failed, error:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, Process mnode stb cfg rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get stb cfg from mnode, tbFName:%s", target); + qDebug("tb:%s, get stb cfg from mnode", target); break; } case TDMT_MND_SERVER_VERSION: { @@ -357,7 +357,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process svr ver rsp failed, error:%s", tstrerror(code)); + qError("process svr ver rsp failed, error:%s", tstrerror(code)); CTG_ERR_RET(code); } @@ -376,29 +376,29 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get view-meta rsp failed, error:%s, viewFName:%s", tstrerror(code), target); + qError("view:%s, process get view-meta rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get view-meta from mnode, viewFName:%s", target); + qDebug("view:%s, get view-meta from mnode", target); break; } case TDMT_MND_GET_TSMA: case TDMT_MND_GET_TABLE_TSMA: { if (TSDB_CODE_SUCCESS != rspCode) { if (TSDB_CODE_MND_SMA_NOT_EXIST != rspCode) { - qError("error rsp for get table tsma, error:%s, tbFName:%s", tstrerror(rspCode), target); + qError("tb:%s, error rsp for get table tsma, error:%s", target, tstrerror(rspCode)); } CTG_ERR_RET(rspCode); } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get table tsma rsp failed, error:%s, tbFName:%s", tstrerror(code), target); + qError("tb:%s, Process get table tsma rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("get table tsma from mnode, tbFName:%s", target); + qDebug("tb:%s, get table tsma from mnode", target); break; } case TDMT_VND_GET_STREAM_PROGRESS: { @@ -407,7 +407,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, } code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("Process get stream progress rsp failed, err: %s, tbFName: %s", tstrerror(code), target); + qError("tb:%s, process get stream progress rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } break; @@ -455,7 +455,7 @@ int32_t ctgHandleMsgCallback(void* param, SDataBuf* pMsg, int32_t rspCode) { CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("QID:0x%" PRIx64 ", ctg task %d start to handle rsp %s", pJob->queryId, pTask->taskId, + qDebug("QID:0x%" PRIx64 ", ctg task:%d start to handle rsp:%s", pJob->queryId, pTask->taskId, TMSG_INFO(cbParam->reqType + 1)); #if CTG_BATCH_FETCH @@ -468,7 +468,7 @@ int32_t ctgHandleMsgCallback(void* param, SDataBuf* pMsg, int32_t rspCode) { SCtgMsgCtx* pMsgCtx = CTG_GET_TASK_MSGCTX(pTask, -1); if (NULL == pMsgCtx) { - ctgError("get task %d SCtgMsgCtx failed, taskType:%d", -1, pTask->type); + ctgError("task:%d, get SCtgMsgCtx failed, taskType:%d", -1, pTask->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -583,7 +583,7 @@ int32_t ctgAddBatch(SCatalog* pCtg, int32_t vgId, SRequestConnInfo* pConn, SCtgT SBatchMsg req = {0}; SCtgMsgCtx* pMsgCtx = CTG_GET_TASK_MSGCTX(pTask, tReq->msgIdx); if (NULL == pMsgCtx) { - ctgError("get task %d SCtgMsgCtx failed, taskType:%d", tReq->msgIdx, pTask->type); + ctgError("task:%d, get SCtgMsgCtx failed, taskType:%d", tReq->msgIdx, pTask->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -677,7 +677,7 @@ int32_t ctgAddBatch(SCatalog* pCtg, int32_t vgId, SRequestConnInfo* pConn, SCtgT CTG_ERR_JRET(terrno); } - ctgDebug("task %d %s req added to batch %d, target vgId %d", pTask->taskId, TMSG_INFO(msgType), newBatch.batchId, + ctgDebug("task:%d, %s req added to batch:%d, target vgId:%d", pTask->taskId, TMSG_INFO(msgType), newBatch.batchId, vgId); return TSDB_CODE_SUCCESS; @@ -751,7 +751,7 @@ int32_t ctgAddBatch(SCatalog* pCtg, int32_t vgId, SRequestConnInfo* pConn, SCtgT (void)tNameGetFullDbName(pName, pBatch->dbFName); } - ctgDebug("task %d %s req added to batch %d, target vgId %d", pTask->taskId, TMSG_INFO(msgType), pBatch->batchId, + ctgDebug("task:%d, %s req added to batch:%d, target vgId:%d", pTask->taskId, TMSG_INFO(msgType), pBatch->batchId, vgId); return TSDB_CODE_SUCCESS; @@ -795,7 +795,7 @@ int32_t ctgBuildBatchReqMsg(SCtgBatch* pBatch, int32_t vgId, void** msg, int32_t *pSize = msgSize; - qDebug("batch req %d to vg %d msg built with %d meta reqs", pBatch->batchId, vgId, num); + qDebug("batch:%d, batch req to vg:%d msg built with %d meta reqs", pBatch->batchId, vgId, num); return TSDB_CODE_SUCCESS; } @@ -810,7 +810,7 @@ int32_t ctgLaunchBatchs(SCatalog* pCtg, SCtgJob* pJob, SHashObj* pBatchs) { SCtgBatch* pBatch = (SCtgBatch*)p; int32_t msgSize = 0; - ctgDebug("QID:0x%" PRIx64 ", ctg start to launch batch %d", pJob->queryId, pBatch->batchId); + ctgDebug("QID:0x%" PRIx64 ", ctg start to launch batch:%d", pJob->queryId, pBatch->batchId); CTG_ERR_JRET(ctgBuildBatchReqMsg(pBatch, *vgId, &msg, &msgSize)); code = ctgAsyncSendMsg(pCtg, &pBatch->conn, pJob, pBatch->pTaskIds, pBatch->batchId, pBatch->pMsgIdxs, diff --git a/source/libs/catalog/src/ctgRent.c b/source/libs/catalog/src/ctgRent.c index bb077f2c84..c4a4680da4 100755 --- a/source/libs/catalog/src/ctgRent.c +++ b/source/libs/catalog/src/ctgRent.c @@ -50,21 +50,21 @@ int32_t ctgMetaRentAdd(SCtgRentMgmt *mgmt, void *meta, int64_t id, int32_t size) if (NULL == slot->meta) { slot->meta = taosArrayInit(CTG_DEFAULT_RENT_SLOT_SIZE, size); if (NULL == slot->meta) { - qError("taosArrayInit %d failed, id:0x%" PRIx64 ", slot idx:%d, type:%d", CTG_DEFAULT_RENT_SLOT_SIZE, id, widx, + qError("id:0x%" PRIx64 ", taosArrayInit %d failed, slot idx:%d, type:%d", id, CTG_DEFAULT_RENT_SLOT_SIZE, widx, mgmt->type); CTG_ERR_JRET(terrno); } } if (NULL == taosArrayPush(slot->meta, meta)) { - qError("taosArrayPush meta to rent failed, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qError("id:0x%" PRIx64 ", taosArrayPush meta to rent failed, slot idx:%d, type:%d", id, widx, mgmt->type); CTG_ERR_JRET(terrno); } mgmt->rentCacheSize += size; slot->needSort = true; - qDebug("add meta to rent, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", add meta to rent, slot idx:%d, type:%d", id, widx, mgmt->type); _return: @@ -81,36 +81,37 @@ int32_t ctgMetaRentUpdate(SCtgRentMgmt *mgmt, void *meta, int64_t id, int32_t si CTG_LOCK(CTG_WRITE, &slot->lock); if (NULL == slot->meta) { - qDebug("empty meta slot, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", empty meta slot, slot idx:%d, type:%d", id, widx, mgmt->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } if (slot->needSort) { - qDebug("meta slot before sorte, slot idx:%d, type:%d, size:%d", widx, mgmt->type, + qDebug("id:0x%" PRIx64 ", meta slot before sorte, slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, (int32_t)taosArrayGetSize(slot->meta)); taosArraySort(slot->meta, sortCompare); slot->needSort = false; - qDebug("meta slot sorted, slot idx:%d, type:%d, size:%d", widx, mgmt->type, (int32_t)taosArrayGetSize(slot->meta)); + qDebug("id:0x%" PRIx64 ", meta slot sorted, slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, + (int32_t)taosArrayGetSize(slot->meta)); } void *orig = taosArraySearch(slot->meta, &id, searchCompare, TD_EQ); if (NULL == orig) { - qDebug("meta not found in slot, id:0x%" PRIx64 ", slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, + qDebug("id:0x%" PRIx64 ", meta not found in slot, slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, (int32_t)taosArrayGetSize(slot->meta)); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } TAOS_MEMCPY(orig, meta, size); - qDebug("meta in rent updated, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", meta in rent updated, slot idx:%d, type:%d", id, widx, mgmt->type); _return: CTG_UNLOCK(CTG_WRITE, &slot->lock); if (code) { - qDebug("meta in rent update failed, will try to add it, code:%x, id:0x%" PRIx64 ", slot idx:%d, type:%d", code, id, - widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", meta in rent update failed, will try to add it, code:0x%x, slot idx:%d, type:%d", id, + code, widx, mgmt->type); CTG_RET(ctgMetaRentAdd(mgmt, meta, id, size)); } @@ -125,26 +126,26 @@ int32_t ctgMetaRentRemove(SCtgRentMgmt *mgmt, int64_t id, __compar_fn_t sortComp CTG_LOCK(CTG_WRITE, &slot->lock); if (NULL == slot->meta) { - qError("empty meta slot, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qError("id:0x%" PRIx64 ", empty meta slot, slot idx:%d, type:%d", id, widx, mgmt->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } if (slot->needSort) { taosArraySort(slot->meta, sortCompare); slot->needSort = false; - qDebug("meta slot sorted, slot idx:%d, type:%d", widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", meta slot sorted, slot idx:%d, type:%d", id, widx, mgmt->type); } int32_t idx = taosArraySearchIdx(slot->meta, &id, searchCompare, TD_EQ); if (idx < 0) { - qError("meta not found in slot, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qError("id:0x%" PRIx64 ", meta not found in slot, slot idx:%d, type:%d", id, widx, mgmt->type); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } taosArrayRemove(slot->meta, idx); mgmt->rentCacheSize -= mgmt->metaSize; - qDebug("meta in rent removed, id:0x%" PRIx64 ", slot idx:%d, type:%d", id, widx, mgmt->type); + qDebug("id:0x%" PRIx64 ", meta in rent removed, slot idx:%d, type:%d", id, widx, mgmt->type); _return: @@ -239,7 +240,7 @@ void ctgRemoveStbRent(SCatalog *pCtg, SCtgDBCache *dbCache) { code = ctgMetaRentRemove(&pCtg->stbRent, *suid, ctgStbVersionSortCompare, ctgStbVersionSearchCompare); if (TSDB_CODE_SUCCESS == code) { - ctgDebug("stb removed from rent, suid:0x%" PRIx64, *suid); + ctgDebug("suid:0x%" PRIx64 ", stb removed from rent", *suid); } pIter = taosHashIterate(dbCache->stbCache, pIter); @@ -257,7 +258,7 @@ void ctgRemoveViewRent(SCatalog *pCtg, SCtgDBCache *dbCache) { if (TSDB_CODE_SUCCESS == ctgMetaRentRemove(&pCtg->viewRent, viewId, ctgViewVersionSortCompare, ctgViewVersionSearchCompare)) { - ctgDebug("view removed from rent, viewId:0x%" PRIx64, viewId); + ctgDebug("viewId:0x%" PRIx64 ", view removed from rent", viewId); } pIter = taosHashIterate(dbCache->viewCache, pIter); @@ -276,7 +277,7 @@ void ctgRemoveTSMARent(SCatalog *pCtg, SCtgDBCache *dbCache) { for (int32_t i = 0; i < size; ++i) { STSMACache* pCache = taosArrayGetP(pCtgCache->pTsmas, i); if (TSDB_CODE_SUCCESS == ctgMetaRentRemove(&pCtg->tsmaRent, pCache->tsmaId, ctgTSMAVersionSortCompare, ctgTSMAVersionSearchCompare)) { - ctgDebug("tsma removed from rent, viewId: %" PRIx64 " name: %s.%s.%s", pCache->tsmaId, pCache->dbFName, pCache->tb, pCache->name); + ctgDebug("tsma:0x%" PRIx64 ", tsma removed from rent, name:%s.%s.%s", pCache->tsmaId, pCache->dbFName, pCache->tb, pCache->name); } } CTG_UNLOCK(CTG_READ, &pCtgCache->tsmaLock); @@ -303,8 +304,8 @@ int32_t ctgUpdateRentStbVersion(SCatalog *pCtg, char *dbFName, char *tbName, uin CTG_ERR_RET(ctgMetaRentUpdate(&pCtg->stbRent, &metaRent, metaRent.suid, sizeof(SSTableVersion), ctgStbVersionSortCompare, ctgStbVersionSearchCompare)); - ctgDebug("db %s,0x%" PRIx64 " stb %s,0x%" PRIx64 " sver %d tver %d smaVer %d updated to stbRent", dbFName, dbId, - tbName, suid, metaRent.sversion, metaRent.tversion, metaRent.smaVer); + ctgDebug("suid:0x%" PRIx64 ", db %s, dbId:0x%" PRIx64 ", stb:%s, sver:%d tver:%d smaVer:%d updated to stbRent", suid, + dbFName, dbId, tbName, metaRent.sversion, metaRent.tversion, metaRent.smaVer); return TSDB_CODE_SUCCESS; } @@ -321,7 +322,7 @@ int32_t ctgUpdateRentViewVersion(SCatalog *pCtg, char *dbFName, char *viewName, CTG_ERR_RET(ctgMetaRentUpdate(&pCtg->viewRent, &metaRent, metaRent.viewId, sizeof(SViewVersion), ctgViewVersionSortCompare, ctgViewVersionSearchCompare)); - ctgDebug("db %s,0x%" PRIx64 " view %s,0x%" PRIx64 " version %d updated to viewRent", dbFName, dbId, viewName, viewId, metaRent.version); + ctgDebug("viewId:0x%" PRIx64 ", db %s, dbId:0x%" PRIx64 ", view %s, version:%d updated to viewRent", viewId, dbFName, dbId, viewName, metaRent.version); return TSDB_CODE_SUCCESS; } @@ -332,12 +333,12 @@ int32_t ctgUpdateRentTSMAVersion(SCatalog *pCtg, char *dbFName, const STSMACache tstrncpy(tsmaRent.name, pTsmaInfo->name, TSDB_TABLE_NAME_LEN); tstrncpy(tsmaRent.dbFName, dbFName, TSDB_DB_FNAME_LEN); tstrncpy(tsmaRent.tbName, pTsmaInfo->tb, TSDB_TABLE_NAME_LEN); - + CTG_ERR_RET(ctgMetaRentUpdate(&pCtg->tsmaRent, &tsmaRent, tsmaRent.tsmaId, sizeof(STSMAVersion), ctgTSMAVersionSortCompare, ctgTSMAVersionSearchCompare)); - - ctgDebug("db %s, 0x%" PRIx64 " tsma %s, 0x%" PRIx64 "version %d updated to tsmaRent", dbFName, tsmaRent.dbId, - pTsmaInfo->name, pTsmaInfo->tsmaId, pTsmaInfo->version); + + ctgDebug("tsma:0x%" PRIx64 ", db:%s, dbId:0x%" PRIx64 ", view:%s, version:%d updated to tsmaRent", pTsmaInfo->tsmaId, + dbFName, tsmaRent.dbId, pTsmaInfo->name, pTsmaInfo->version); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 9fba087da3..33fe39a992 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -430,7 +430,7 @@ void ctgFreeHandle(SCatalog* pCtg) { taosMemoryFree(pCtg); - ctgInfo("handle freed, clusterId:0x%" PRIx64, clusterId); + ctgInfo("clusterId:0x%" PRIx64 ", handle freed", clusterId); } void ctgClearHandleMeta(SCatalog* pCtg, int64_t* pClearedSize, int64_t* pCleardNum, bool* roundDone) { @@ -541,7 +541,7 @@ void ctgClearHandle(SCatalog* pCtg) { CTG_STAT_RT_INC(numOfOpClearCache, 1); - ctgInfo("handle cleared, clusterId:0x%" PRIx64, clusterId); + ctgInfo("clusterId:0x%" PRIx64 ", handle cleared", clusterId); } void ctgFreeSUseDbOutput(SUseDbOutput* pOutput) { @@ -1097,7 +1097,7 @@ void ctgFreeJob(void* job) { taosMemoryFree(job); - qDebug("QID:0x%" PRIx64 ", ctg job 0x%" PRIx64 " freed", qid, rid); + qDebug("QID:0x%" PRIx64 ", ctg jobId:0x%" PRIx64 " freed", qid, rid); } int32_t ctgUpdateMsgCtx(SCtgMsgCtx* pCtx, int32_t reqType, void* out, char* target) { @@ -1286,14 +1286,14 @@ int32_t ctgGetVgInfoFromHashValue(SCatalog* pCtg, SEpSet* pMgmtEps, SDBVgInfo* d */ if (NULL == vgInfo) { - ctgError("no hash range found for hash value [%u], db:%s, numOfVgId:%d", hashValue, db, + ctgError("tb:%s, no hash range found for hash value [%u], db:%s, numOfVgId:%d", tbFullName, hashValue, db, (int32_t)taosArrayGetSize(dbInfo->vgArray)); CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } *pVgroup = *vgInfo; - ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("tb:%s, get hash vgroup, vgId:%d, epNum %d, current:%s port:%d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1437,7 +1437,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR *pNewVg = *vgInfo; - ctgDebug("get tb:%s hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgDebug("tb:%s, get hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1496,7 +1496,7 @@ int32_t ctgGetVgIdsFromHashValue(SCatalog* pCtg, SDBVgInfo* dbInfo, char* dbFNam vgId[i] = vgInfo->vgId; - ctgDebug("get tb:%s vgId:%d", tbFullName, vgInfo->vgId); + ctgDebug("tb:%s, get vgId:%d", tbFullName, vgInfo->vgId); } CTG_RET(code); @@ -1689,7 +1689,7 @@ int32_t ctgCloneMetaOutput(STableMetaOutput* output, STableMetaOutput** pOutput) } (*pOutput)->tbMeta = taosMemoryMalloc(metaSize + schemaExtSize); - qDebug("tbMeta cloned, size:%d, p:%p", metaSize, (*pOutput)->tbMeta); + qTrace("tbmeta cloned, size:%d, p:%p", metaSize, (*pOutput)->tbMeta); if (NULL == (*pOutput)->tbMeta) { qError("malloc %d failed", (int32_t)sizeof(STableMetaOutput)); taosMemoryFreeClear(*pOutput); @@ -2076,7 +2076,7 @@ int32_t ctgChkSetTbAuthRes(SCatalog* pCtg, SCtgAuthReq* req, SCtgAuthRsp* res) { if (NULL == pMeta) { if (req->onlyCache) { res->metaNotExists = true; - ctgDebug("db %s tb %s meta not in cache for auth", req->pRawReq->tbName.dbname, req->pRawReq->tbName.tname); + ctgDebug("db:%s, tb:%s meta not in cache for auth", req->pRawReq->tbName.dbname, req->pRawReq->tbName.tname); goto _return; } @@ -2097,7 +2097,7 @@ int32_t ctgChkSetTbAuthRes(SCatalog* pCtg, SCtgAuthReq* req, SCtgAuthRsp* res) { if (NULL == stbName) { if (req->onlyCache) { res->metaNotExists = true; - ctgDebug("suid %" PRIu64 " name not in cache for auth", pMeta->suid); + ctgDebug("suid:%" PRIu64 ", name not in cache for auth", pMeta->suid); goto _return; } @@ -2108,7 +2108,7 @@ int32_t ctgChkSetTbAuthRes(SCatalog* pCtg, SCtgAuthReq* req, SCtgAuthRsp* res) { continue; } - ctgError("Invalid table type %d for %s", pMeta->tableType, tbFName); + ctgError("invalid table type %d for %s", pMeta->tableType, tbFName); CTG_ERR_JRET(TSDB_CODE_INVALID_PARA); } @@ -2740,8 +2740,8 @@ bool isCtgTSMACacheOutOfDate(STSMACache* pTsmaCache) { bool ret = !pTsmaCache->fillHistoryFinished || (tsMaxTsmaCalcDelay * 1000 - pTsmaCache->delayDuration) < (now - pTsmaCache->reqTs); if (ret) { - qDebug("tsma %s.%s in cache has been out of date, history finished: %d, remain valid after: %" PRId64 - " passed: %" PRId64, + qDebug("tsma:%s.%s in cache has been out of date, history finished:%d, remain valid after:%" PRId64 + " passed:%" PRId64, pTsmaCache->dbFName, pTsmaCache->name, pTsmaCache->fillHistoryFinished, tsMaxTsmaCalcDelay * 1000 - pTsmaCache->delayDuration, now - pTsmaCache->reqTs); } diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index 3d0283f857..d26324d9c9 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -292,7 +292,7 @@ static void doHashGroupbyAgg(SOperatorInfo* pOperator, SSDataBlock* pBlock) { SqlFunctionCtx* pCtx = pOperator->exprSupp.pCtx; int32_t numOfGroupCols = taosArrayGetSize(pInfo->pGroupCols); // if (type == TSDB_DATA_TYPE_FLOAT || type == TSDB_DATA_TYPE_DOUBLE) { - // qError("QInfo:0x%"PRIx64 " group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); + // qError("QInfo:0x%" PRIx64 ", group by not supported on double/float columns, abort", GET_TASKID(pRuntimeEnv)); // return; // } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 0ca9740e7a..4ce04ed3da 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -5193,7 +5193,7 @@ static int32_t doTagScanFromMetaEntryNext(SOperatorInfo* pOperator, SSDataBlock* setOperatorCompleted(pOperator); } - // qDebug("QInfo:0x%"PRIx64 " create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); + // qDebug("QInfo:0x%" PRIx64 ", create tag values results completed, rows:%d", GET_TASKID(pRuntimeEnv), count); if (pOperator->status == OP_EXEC_DONE) { setTaskStatus(pTaskInfo, TASK_COMPLETED); } diff --git a/source/libs/function/src/udfd.c b/source/libs/function/src/udfd.c index 80dfdc5ce3..fcc4c337f6 100644 --- a/source/libs/function/src/udfd.c +++ b/source/libs/function/src/udfd.c @@ -1106,7 +1106,7 @@ void udfdProcessRpcRsp(void *parent, SRpcMsg *pMsg, SEpSet *pEpSet) { } if (pMsg->code != TSDB_CODE_SUCCESS) { - fnError("udfd rpc error. code:%s", tstrerror(pMsg->code)); + fnError("udfd rpc error, code:%s", tstrerror(pMsg->code)); msgInfo->code = pMsg->code; goto _return; } @@ -1312,7 +1312,7 @@ void udfdOnWrite(uv_write_t *req, int status) { TAOS_UDF_CHECK_PTR_RVOID(req); SUvUdfWork *work = (SUvUdfWork *)req->data; if (status < 0) { - fnError("udfd send response error, length: %zu code:%s", work->output.len, uv_err_name(status)); + fnError("udfd send response error, length:%zu code:%s", work->output.len, uv_err_name(status)); } // remove work from the connection work list if (work->conn != NULL) { @@ -1477,7 +1477,7 @@ void udfdPipeRead(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf) { void udfdOnNewConnection(uv_stream_t *server, int status) { TAOS_UDF_CHECK_PTR_RVOID(server); if (status < 0) { - fnError("udfd new connection error. code:%s", uv_strerror(status)); + fnError("udfd new connection error, code:%s", uv_strerror(status)); return; } int32_t code = 0; diff --git a/source/libs/nodes/inc/nodesUtil.h b/source/libs/nodes/inc/nodesUtil.h index 320a20c533..69b4245d4e 100644 --- a/source/libs/nodes/inc/nodesUtil.h +++ b/source/libs/nodes/inc/nodesUtil.h @@ -20,12 +20,12 @@ extern "C" { #endif -#define nodesFatal(...) qFatal("NODES:" __VA_ARGS__) -#define nodesError(...) qError("NODES:" __VA_ARGS__) -#define nodesWarn(...) qWarn ("NODES:" __VA_ARGS__) -#define nodesInfo(...) qInfo ("NODES:" __VA_ARGS__) -#define nodesDebug(...) qDebug("NODES:" __VA_ARGS__) -#define nodesTrace(...) qTrace("NODES:" __VA_ARGS__) +#define nodesFatal(...) qFatal("NODES " __VA_ARGS__) +#define nodesError(...) qError("NODES " __VA_ARGS__) +#define nodesWarn(...) qWarn ("NODES " __VA_ARGS__) +#define nodesInfo(...) qInfo ("NODES " __VA_ARGS__) +#define nodesDebug(...) qDebug("NODES " __VA_ARGS__) +#define nodesTrace(...) qTrace("NODES " __VA_ARGS__) #define NODES_ERR_RET(c) \ do { \ diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index c68cbbc8e0..097d7fb867 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -202,7 +202,7 @@ static void destroyNodeAllocator(void* p) { SNodeAllocator* pAllocator = p; - nodesDebug("query id %" PRIx64 " allocator id %" PRIx64 " alloc chunkNum: %d, chunkTotakSize: %d", + nodesDebug("QID:0x%" PRIx64 ", destroy allocatorId:0x%" PRIx64 ", chunkNum:%d, chunkTotakSize:%d", pAllocator->queryId, pAllocator->self, pAllocator->chunkNum, pAllocator->chunkNum * pAllocator->chunkSize); SNodeMemChunk* pChunk = pAllocator->pChunks; @@ -238,7 +238,7 @@ void nodesDestroyAllocatorSet() { refId = pAllocator->self; int32_t code = taosRemoveRef(g_allocatorReqRefPool, refId); if (TSDB_CODE_SUCCESS != code) { - nodesError("failed to remove ref at: %s:%d, rsetId:%d, refId:%" PRId64, __func__, __LINE__, + nodesError("failed to remove ref at %s:%d, rsetId:%d, refId:%" PRId64, __func__, __LINE__, g_allocatorReqRefPool, refId); } pAllocator = taosIterateRef(g_allocatorReqRefPool, refId); @@ -301,9 +301,9 @@ int32_t nodesReleaseAllocator(int64_t allocatorId) { } if (NULL == g_pNodeAllocator) { - nodesError("allocator id %" PRIx64 - " release failed: The nodesReleaseAllocator function needs to be called after the nodesAcquireAllocator " - "function is called!", + nodesError("allocatorId:0x%" PRIx64 + ", release failed, The nodesReleaseAllocator function needs to be called after the " + "nodesAcquireAllocator function is called!", allocatorId); return TSDB_CODE_FAILED; } @@ -320,7 +320,7 @@ int64_t nodesMakeAllocatorWeakRef(int64_t allocatorId) { SNodeAllocator* pAllocator = taosAcquireRef(g_allocatorReqRefPool, allocatorId); if (NULL == pAllocator) { - nodesError("allocator id %" PRIx64 " weak reference failed", allocatorId); + nodesError("allocatorId:0x%" PRIx64 ", weak reference failed", allocatorId); return -1; } return pAllocator->self; @@ -335,7 +335,7 @@ void nodesDestroyAllocator(int64_t allocatorId) { int32_t code = taosRemoveRef(g_allocatorReqRefPool, allocatorId); if (TSDB_CODE_SUCCESS != code) { - nodesError("failed to remove ref at: %s:%d, rsetId:%d, refId:%" PRId64, __func__, __LINE__, g_allocatorReqRefPool, + nodesError("failed to remove ref at %s:%d, rsetId:%d, refId:%" PRId64, __func__, __LINE__, g_allocatorReqRefPool, allocatorId); } } @@ -1347,7 +1347,7 @@ void nodesDestroyNode(SNode* pNode) { int32_t code = taosCloseFile(&pStmt->fp); if (TSDB_CODE_SUCCESS != code) { - nodesError("failed to close file: %s:%d", __func__, __LINE__); + nodesError("failed to close file %s:%d", __func__, __LINE__); } break; } diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index ada93fdf5d..1122d6f2eb 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -3194,14 +3194,14 @@ static int32_t buildInsertCatalogReq(SInsertParseContext* pCxt, SVnodeModifyOpSt static int32_t setNextStageInfo(SInsertParseContext* pCxt, SQuery* pQuery, SCatalogReq* pCatalogReq) { SVnodeModifyOpStmt* pStmt = (SVnodeModifyOpStmt*)pQuery->pRoot; if (pCxt->missCache) { - parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert before cache miss", pCxt->pComCxt->requestId, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will be inserted before cache miss", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_PARSE; return buildInsertCatalogReq(pCxt, pStmt, pCatalogReq); } - parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will insert", pCxt->pComCxt->requestId, pStmt->totalRowsNum, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will be inserted", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_SCHEDULE; diff --git a/source/libs/qcom/src/queryUtil.c b/source/libs/qcom/src/queryUtil.c index 74bb75077c..20f4dd6327 100644 --- a/source/libs/qcom/src/queryUtil.c +++ b/source/libs/qcom/src/queryUtil.c @@ -165,7 +165,7 @@ int32_t initTaskQueue() { return -1; } - qDebug("task queue is initialized, numOfThreads: %d", tsNumOfTaskQueueThreads); + qInfo("task queue is initialized, numOfThreads: %d", tsNumOfTaskQueueThreads); return 0; } diff --git a/source/libs/qcom/src/querymsg.c b/source/libs/qcom/src/querymsg.c index 268e4b8259..1a275de13b 100644 --- a/source/libs/qcom/src/querymsg.c +++ b/source/libs/qcom/src/querymsg.c @@ -45,7 +45,7 @@ int32_t queryBuildUseDbOutput(SUseDbOutput *pOut, SUseDbRsp *usedbRsp) { pOut->dbVgroup->hashSuffix = usedbRsp->hashSuffix; pOut->dbVgroup->stateTs = usedbRsp->stateTs; - qDebug("get %d vgroup for db %s, vgVersion:%d, stateTs:%" PRId64, usedbRsp->vgNum, usedbRsp->db, usedbRsp->vgVersion, + qDebug("db:%s, get %d vgroup, vgVersion:%d, stateTs:%" PRId64, usedbRsp->db, usedbRsp->vgNum, usedbRsp->vgVersion, usedbRsp->stateTs); if (usedbRsp->vgNum <= 0) { @@ -61,7 +61,7 @@ int32_t queryBuildUseDbOutput(SUseDbOutput *pOut, SUseDbRsp *usedbRsp) { for (int32_t i = 0; i < usedbRsp->vgNum; ++i) { SVgroupInfo *pVgInfo = taosArrayGet(usedbRsp->pVgroupInfos, i); pOut->dbVgroup->numOfTable += pVgInfo->numOfTable; - qDebug("the %dth vgroup, id %d, epNum %d, current %s port %d", i, pVgInfo->vgId, pVgInfo->epSet.numOfEps, + qDebug("the %dth vgroup, id:%d, epNum:%d, current:%s port:%u", i, pVgInfo->vgId, pVgInfo->epSet.numOfEps, pVgInfo->epSet.eps[pVgInfo->epSet.inUse].fqdn, pVgInfo->epSet.eps[pVgInfo->epSet.inUse].port); if (0 != taosHashPut(pOut->dbVgroup->vgHash, &pVgInfo->vgId, sizeof(int32_t), pVgInfo, sizeof(SVgroupInfo))) { return terrno; @@ -546,7 +546,7 @@ int32_t queryCreateCTableMetaFromMsg(STableMetaRsp *msg, SCTableMeta *pMeta) { pMeta->uid = msg->tuid; pMeta->suid = msg->suid; - qDebug("ctable %s uid %" PRIx64 " meta returned, type %d vgId:%d db %s suid %" PRIx64, msg->tbName, pMeta->uid, + qDebug("ctb:%s, uid:0x%" PRIx64 " meta returned, type:%d vgId:%d db:%s suid:%" PRIx64, msg->tbName, pMeta->uid, pMeta->tableType, pMeta->vgId, msg->dbFName, pMeta->suid); return TSDB_CODE_SUCCESS; @@ -597,9 +597,9 @@ int32_t queryCreateTableMetaFromMsg(STableMetaRsp *msg, bool isStb, STableMeta * } } - qDebug("table %s uid %" PRIx64 " meta returned, type %d vgId:%d db %s stb %s suid %" PRIx64 - " sver %d tver %d" - " tagNum %d colNum %d precision %d rowSize %d", + qDebug("tb:%s, uid:%" PRIx64 " meta returned, type:%d vgId:%d db:%s stb:%s suid:%" PRIx64 + " sver:%d tver:%d" + " tagNum:%d colNum:%d precision:%d rowSize:%d", msg->tbName, pTableMeta->uid, pTableMeta->tableType, pTableMeta->vgId, msg->dbFName, msg->stbName, pTableMeta->suid, pTableMeta->sversion, pTableMeta->tversion, pTableMeta->tableInfo.numOfTags, pTableMeta->tableInfo.numOfColumns, pTableMeta->tableInfo.precision, pTableMeta->tableInfo.rowSize); @@ -657,9 +657,9 @@ int32_t queryCreateTableMetaExFromMsg(STableMetaRsp *msg, bool isStb, STableMeta char *pTbName = (char *)pTableMeta + metaSize + schemaExtSize; tstrncpy(pTbName, msg->tbName, tbNameSize); - qDebug("table %s uid %" PRIx64 " meta returned, type %d vgId:%d db %s stb %s suid %" PRIx64 - " sver %d tver %d" - " tagNum %d colNum %d precision %d rowSize %d", + qDebug("tb:%s, uid:%" PRIx64 " meta returned, type:%d vgId:%d db:%s stb:%s suid:%" PRIx64 + " sver:%d tver:%d" + " tagNum:%d colNum:%d precision:%d rowSize:%d", msg->tbName, pTableMeta->uid, pTableMeta->tableType, pTableMeta->vgId, msg->dbFName, msg->stbName, pTableMeta->suid, pTableMeta->sversion, pTableMeta->tversion, pTableMeta->tableInfo.numOfTags, pTableMeta->tableInfo.numOfColumns, pTableMeta->tableInfo.precision, pTableMeta->tableInfo.rowSize); @@ -850,7 +850,7 @@ int32_t queryProcessGetDbCfgRsp(void *output, char *msg, int32_t msgSize) { } if (tDeserializeSDbCfgRsp(msg, msgSize, &out) != 0) { - qError("tDeserializeSDbCfgRsp failed, msgSize:%d,dbCfgRsp:%lu", msgSize, sizeof(out)); + qError("tDeserializeSDbCfgRsp failed, msgSize:%d, dbCfgRsp:%lu", msgSize, sizeof(out)); return TSDB_CODE_INVALID_MSG; } @@ -992,7 +992,7 @@ int32_t queryProcessStreamProgressRsp(void* output, char* msg, int32_t msgSize) } if (tDeserializeSStreamProgressRsp(msg, msgSize, output) != 0) { - qError("tDeserializeStreamProgressRsp failed, msgSize: %d", msgSize); + qError("tDeserializeStreamProgressRsp failed, msgSize:%d", msgSize); return TSDB_CODE_INVALID_MSG; } return TSDB_CODE_SUCCESS; diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index 7dd43cb0d5..caec0a3776 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -758,7 +758,7 @@ void schFreeJobImpl(void *job) { uint64_t queryId = pJob->queryId; int64_t refId = pJob->refId; - qDebug("QID:0x%" PRIx64 ", begin to free sch job, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qDebug("QID:0x%" PRIx64 ", begin to free sch job, jobId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); schDropJobAllTasks(pJob); @@ -928,7 +928,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { *pJobId = pJob->refId; - SCH_JOB_DLOG("job refId:0x%" PRIx64 " created", pJob->refId); + SCH_JOB_DLOG("jobId:0x%" PRIx64 ", job created", pJob->refId); return TSDB_CODE_SUCCESS; @@ -941,7 +941,7 @@ _return: } else { code = taosRemoveRef(schMgmt.jobRef, pJob->refId); if (code) { - SCH_JOB_DLOG("taosRemoveRef job refId:0x%" PRIx64 " from jobRef, error:%s", pJob->refId, tstrerror(code)); + SCH_JOB_DLOG("jobId:0x%" PRIx64 ", taosRemoveRef job from jobRef, error:%s", pJob->refId, tstrerror(code)); } } @@ -950,7 +950,7 @@ _return: int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 ", sch job refId 0x%" PRIx64 " started", pReq->pDag->queryId, pJob->refId); + qDebug("QID:0x%" PRIx64 ", jobId:0x%" PRIx64 ", sch job started", pReq->pDag->queryId, pJob->refId); SCH_ERR_RET(schLaunchJob(pJob)); @@ -1206,7 +1206,7 @@ int32_t schProcessOnOpBegin(SSchJob *pJob, SCH_OP_TYPE type, SSchedulerReq *pReq break; case SCH_OP_GET_STATUS: if (pJob->status < JOB_TASK_STATUS_INIT || pJob->levelNum <= 0 || NULL == pJob->levels) { - qDebug("job not initialized or not executable job, refId:0x%" PRIx64, pJob->refId); + qDebug("jobId:0x%" PRIx64 ", job not initialized or not executable job", pJob->refId); SCH_ERR_RET(TSDB_CODE_SCH_STATUS_ERROR); } return TSDB_CODE_SUCCESS; @@ -1246,7 +1246,7 @@ int32_t schProcessOnCbBegin(SSchJob **job, SSchTask **task, uint64_t qId, int64_ (void)schAcquireJob(rId, &pJob); if (NULL == pJob) { - qWarn("QID:0x%" PRIx64 ", TID:0x%" PRIx64 "job no exist, may be dropped, refId:0x%" PRIx64, qId, tId, rId); + qWarn("QID:0x%" PRIx64 ", TID:0x%" PRIx64 "job no exist, may be dropped, jobId:0x%" PRIx64, qId, tId, rId); SCH_ERR_RET(TSDB_CODE_QRY_JOB_NOT_EXIST); } diff --git a/source/libs/scheduler/src/schUtil.c b/source/libs/scheduler/src/schUtil.c index 8b4225f98f..aa1923a033 100644 --- a/source/libs/scheduler/src/schUtil.c +++ b/source/libs/scheduler/src/schUtil.c @@ -301,7 +301,7 @@ int32_t initClientId(void) { qError("failed to generate clientId since %s", tstrerror(code)); SCH_ERR_RET(code); } - qInfo("initialize"); + qInfo("generate clientId:%" PRIu64, schMgmt.clientId); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index 541a0b99f7..6caa132982 100644 --- a/source/libs/scheduler/src/scheduler.c +++ b/source/libs/scheduler/src/scheduler.c @@ -35,7 +35,7 @@ int32_t schedulerInit() { schMgmt.cfg.schPolicy = SCHEDULE_DEFAULT_POLICY; schMgmt.cfg.enableReSchedule = false; - qDebug("schedule init, policy: %d, maxNodeTableNum: %" PRId64", reSchedule:%d", + qInfo("scheduler init, policy: %d, maxNodeTableNum: %" PRId64", reSchedule:%d", schMgmt.cfg.schPolicy, schMgmt.cfg.maxNodeTableNum, schMgmt.cfg.enableReSchedule); schMgmt.jobRef = taosOpenRef(schMgmt.cfg.maxJobNum, schFreeJobImpl); @@ -56,7 +56,7 @@ int32_t schedulerInit() { SCH_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); } - qInfo("scheduler 0x%" PRIx64 " initialized, maxJob:%u", getClientId(), schMgmt.cfg.maxJobNum); + qInfo("scheduler initialized, maxJob:%u, clientId:0x%" PRIx64, schMgmt.cfg.maxJobNum, getClientId()); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/transport/src/thttp.c b/source/libs/transport/src/thttp.c index 4d153c5443..811c044e47 100644 --- a/source/libs/transport/src/thttp.c +++ b/source/libs/transport/src/thttp.c @@ -332,7 +332,7 @@ static void httpMayDiscardMsg(SHttpModule* http, SAsyncItem* item) { QUEUE_REMOVE(h); msg = QUEUE_DATA(h, SHttpMsg, q); if (!msg->quit) { - tError("http-report failed to report chanId:%" PRId64 ",seq:%" PRId64 ", reason:%s", msg->chanId, msg->seq, + tError("http-report failed to report chanId:%" PRId64 ", seq:%" PRId64 ", reason:%s", msg->chanId, msg->seq, tstrerror(TSDB_CODE_HTTP_MODULE_QUIT)); httpDestroyMsg(msg); } else { @@ -725,7 +725,7 @@ static void httpHandleReq(SHttpMsg* msg) { END: if (ignore == false) { - tError("http-report failed to report to addr:%s:%d, chanId:%" PRId64 ",seq:%" PRId64 " reason:%s", msg->server, + tError("http-report failed to report to addr:%s:%d, chanId:%" PRId64 ", seq:%" PRId64 " reason:%s", msg->server, msg->port, chanId, msg->seq, tstrerror(code)); } httpDestroyMsg(msg); diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 000e12cc66..abbf1f9b47 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -860,7 +860,7 @@ static int32_t getOrCreateConnList(SCliThrd* pThrd, const char* key, SConnList** } QUEUE_INIT(&plist->conns); *ppList = plist; - tDebug("create conn list %p for key %s", plist, key); + tTrace("create connlist:%p for key:%s", plist, key); } else { *ppList = plist; } @@ -1139,7 +1139,7 @@ static void cliDestroyAllQidFromThrd(SCliConn* conn) { tDebug("%s conn:%p, failed to remove state %" PRId64 " since %s", CONN_GET_INST_LABEL(conn), conn, *qid, tstrerror(code)); } else { - tDebug("%s conn:%p, destroy sid::%" PRId64 "", CONN_GET_INST_LABEL(conn), conn, *qid); + tDebug("%s conn:%p, destroy sid:%" PRId64, CONN_GET_INST_LABEL(conn), conn, *qid); } STransCtx* ctx = pIter; @@ -1520,7 +1520,7 @@ int32_t cliBatchSend(SCliConn* pConn, int8_t direct) { pCliMsg->sent = 1; STraceId* trace = &pCliMsg->msg.info.traceId; - tGDebug("%s conn:%p, %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), + tGDebug("%s conn:%p, %s is sent to %s, local info:%s, seq:%" PRId64 ", sid:%" PRId64, CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pReq->msgType), pConn->dst, pConn->src, pConn->seq, pReq->info.qId); transQueuePush(&pConn->reqsSentOut, &pCliMsg->q); @@ -1952,7 +1952,7 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { SReqCtx* pCtx = pReq->ctx; SCliThrd* pThrd = pConn->hostThrd; if (pCtx == NULL) { - tDebug("%s conn:%p, not need to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, not need to update statue ctx, sid:%" PRId64, transLabel(pThrd->pInst), pConn, qid); return 0; } @@ -1960,11 +1960,11 @@ int32_t cliHandleState_mayUpdateStateCtx(SCliConn* pConn, SCliReq* pReq) { if (pUserCtx == NULL) { pCtx->userCtx.st = taosGetTimestampUs(); code = taosHashPut(pConn->pQTable, &qid, sizeof(qid), &pCtx->userCtx, sizeof(pCtx->userCtx)); - tDebug("%s conn:%p, succ to add statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to add statue ctx, sid:%" PRId64, transLabel(pThrd->pInst), pConn, qid); } else { transCtxMerge(pUserCtx, &pCtx->userCtx); pUserCtx->st = taosGetTimestampUs(); - tDebug("%s conn:%p, succ to update statue ctx, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to update statue ctx, sid:%" PRId64, transLabel(pThrd->pInst), pConn, qid); } return 0; } @@ -1987,12 +1987,12 @@ int32_t cliMayGetStateByQid(SCliThrd* pThrd, SCliReq* pReq, SCliConn** pConn) { transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_STATE_DROPED; } - tDebug("%s conn:%p, failed to get statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, failed to get statue, sid:%" PRId64, transLabel(pThrd->pInst), pConn, qid); transReleaseExHandle(transGetRefMgt(), qid); return TSDB_CODE_RPC_ASYNC_IN_PROCESS; } else { *pConn = pState->conn; - tDebug("%s conn:%p, succ to get conn of statue, sid:%" PRId64 "", transLabel(pThrd->pInst), pConn, qid); + tDebug("%s conn:%p, succ to get conn of statue, sid:%" PRId64, transLabel(pThrd->pInst), pConn, qid); } transReleaseExHandle(transGetRefMgt(), qid); return 0; @@ -2202,7 +2202,7 @@ static void* cliWorkThread(void* arg) { TAOS_UNUSED(uv_run(pThrd->loop, UV_RUN_DEFAULT)); - tDebug("thread quit-thread:%08" PRId64 "", pThrd->pid); + tDebug("thread quit-thread:%08" PRId64, pThrd->pid); return NULL; } @@ -3519,7 +3519,7 @@ int32_t transFreeConnById(void* pInstRef, int64_t transpointId) { return TSDB_CODE_RPC_MODULE_QUIT; } if (transpointId == 0) { - tDebug("not free by refId:%" PRId64 "", transpointId); + tDebug("not free by refId:%" PRId64, transpointId); TAOS_CHECK_GOTO(0, NULL, _exception); } @@ -3540,7 +3540,7 @@ int32_t transFreeConnById(void* pInstRef, int64_t transpointId) { pCli->msg = msg; STraceId* trace = &pCli->msg.info.traceId; - tGDebug("%s start to free conn sid:%" PRId64 "", pInst->label, transpointId); + tGDebug("%s start to free conn sid:%" PRId64, pInst->label, transpointId); code = transAsyncSend(pThrd->asyncPool, &pCli->q); if (code != 0) { @@ -3628,7 +3628,7 @@ static void cliConnRemoveTimoutQidMsg(SCliConn* pConn, int64_t* st, queue* set) tstrerror(code)); break; } - tWarn("%s conn:%p, remove timeout msg sid:%" PRId64 "", CONN_GET_INST_LABEL(pConn), pConn, *qid); + tWarn("%s conn:%p, remove timeout msg sid:%" PRId64, CONN_GET_INST_LABEL(pConn), pConn, *qid); } pIter = taosHashIterate(pConn->pQTable, pIter); } @@ -3694,7 +3694,7 @@ static FORCE_INLINE int8_t shouldSWitchToOtherConn(SCliConn* pConn, char* key) { if (pConn->list == NULL && pConn->dstAddr != NULL) { pConn->list = taosHashGet((SHashObj*)pThrd->pool, pConn->dstAddr, strlen(pConn->dstAddr)); if (pConn->list != NULL) { - tTrace("conn:%p, get list %p from pool for key:%s", pConn, pConn->list, key); + tTrace("conn:%p, get connlist:%p from pool for key:%s", pConn, pConn->list, key); } } if (pConn->list && pConn->list->totalSize >= pInst->connLimitNum / 4) { diff --git a/source/libs/transport/src/transComm.c b/source/libs/transport/src/transComm.c index 57bf59dfe8..f41463c5db 100644 --- a/source/libs/transport/src/transComm.c +++ b/source/libs/transport/src/transComm.c @@ -836,7 +836,7 @@ int32_t subnetInit(SubnetUtils* pUtils, SIpV4Range* pRange) { return 0; } int32_t subnetDebugInfoToBuf(SubnetUtils* pUtils, char* buf) { - sprintf(buf, "raw:%s, address:%d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, + sprintf(buf, "raw:%s, address:%d, netmask:%d, network:%d, broadcast:%d", pUtils->info, pUtils->address, pUtils->netmask, pUtils->network, pUtils->broadcast); return 0; } diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index 15860f64ea..32ffa04beb 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -1465,7 +1465,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { int32_t olen, vlen, vlen2, vlen3, vlen4; int32_t code = 0, lino = 0; if (url == NULL || strlen(url) == 0) { - uInfo("apoll url not load"); + uTrace("apoll url not load"); TAOS_RETURN(TSDB_CODE_SUCCESS); } diff --git a/source/util/src/tpagedbuf.c b/source/util/src/tpagedbuf.c index e56896144f..3752ff8207 100644 --- a/source/util/src/tpagedbuf.c +++ b/source/util/src/tpagedbuf.c @@ -408,7 +408,7 @@ int32_t createDiskbasedBuf(SDiskbasedBuf** pBuf, int32_t pagesize, int64_t inMem goto _error; } - // qDebug("QInfo:0x%"PRIx64 " create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, + // qDebug("QInfo:0x%"PRIx64 ", create resBuf for output, page size:%d, inmem buf pages:%d, file:%s", qId, // pPBuf->pageSize, pPBuf->inMemPages, pPBuf->path); *pBuf = pPBuf; diff --git a/source/util/src/tqueue.c b/source/util/src/tqueue.c index d2a2cab21e..de6f8bd83b 100644 --- a/source/util/src/tqueue.c +++ b/source/util/src/tqueue.c @@ -361,7 +361,7 @@ int32_t taosOpenQset(STaosQset **qset) { return terrno; } - uDebug("qset:%p is opened", qset); + uDebug("qset:%p, is opened", qset); return 0; } @@ -384,7 +384,7 @@ void taosCloseQset(STaosQset *qset) { uError("failed to destroy semaphore for qset:%p", qset); } taosMemoryFree(qset); - uDebug("qset:%p is closed", qset); + uDebug("qset:%p, is closed", qset); } // tsem_post 'qset->sem', so that reader threads waiting for it @@ -414,7 +414,7 @@ int32_t taosAddIntoQset(STaosQset *qset, STaosQueue *queue, void *ahandle) { (void)taosThreadMutexUnlock(&qset->mutex); - uTrace("queue:%p is added into qset:%p", queue, qset); + uTrace("queue:%p, is added into qset:%p", queue, qset); return 0; } @@ -455,7 +455,7 @@ void taosRemoveFromQset(STaosQset *qset, STaosQueue *queue) { (void)taosThreadMutexUnlock(&qset->mutex); - uDebug("queue:%p is removed from qset:%p", queue, qset); + uDebug("queue:%p, is removed from qset:%p", queue, qset); } int32_t taosReadQitemFromQset(STaosQset *qset, void **ppItem, SQueueInfo *qinfo) { diff --git a/tests/script/test.sh b/tests/script/test.sh index b1588ac2e6..9433807eb0 100755 --- a/tests/script/test.sh +++ b/tests/script/test.sh @@ -102,11 +102,13 @@ echo "dataDir $DATA_DIR" >> $TAOS_CFG echo "logDir $LOG_DIR" >> $TAOS_CFG echo "scriptDir ${CODE_DIR}" >> $TAOS_CFG echo "numOfLogLines 100000000" >> $TAOS_CFG -echo "rpcDebugFlag 143" >> $TAOS_CFG +echo "debugFlag 135" >> $TAOS_CFG +echo "rpcDebugFlag 135" >> $TAOS_CFG echo "tmrDebugFlag 131" >> $TAOS_CFG -echo "cDebugFlag 143" >> $TAOS_CFG -echo "udebugFlag 143" >> $TAOS_CFG -echo "debugFlag 143" >> $TAOS_CFG +echo "cDebugFlag 135" >> $TAOS_CFG +echo "udebugFlag 135" >> $TAOS_CFG +echo "qdebugFlag 135" >> $TAOS_CFG +echo "simdebugFlag 135" >> $TAOS_CFG echo "wal 0" >> $TAOS_CFG echo "asyncLog 0" >> $TAOS_CFG echo "locale en_US.UTF-8" >> $TAOS_CFG From c0932e3ce0d50047ca1adc0525f71dca11253c41 Mon Sep 17 00:00:00 2001 From: Simon Guan Date: Fri, 28 Feb 2025 23:22:38 +0800 Subject: [PATCH 28/34] refactor: adjust some logs --- source/libs/catalog/src/ctgAsync.c | 6 +++--- source/libs/catalog/src/ctgCache.c | 4 ++-- source/libs/catalog/src/ctgRemote.c | 2 +- source/libs/catalog/src/ctgRent.c | 2 +- source/libs/parser/src/parInsertStmt.c | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 3441c0f8b8..6fb34ada8d 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -1510,7 +1510,7 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { return TSDB_CODE_SUCCESS; } - qDebug("QID:0x%" PRIx64 ", task %d end with res %s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); + qDebug("QID:0x%" PRIx64 ", task:%d end with result:%s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); pTask->code = rspCode; pTask->status = CTG_TASK_DONE; @@ -3104,7 +3104,7 @@ int32_t ctgLaunchGetTbMetasTask(SCtgTask* pTask) { CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); } - ctgDebug("start to check tb metas in db %s, tbNum %ld", pReq->dbFName, taosArrayGetSize(pReq->pTables)); + ctgDebug("start to check tb metas in db:%s, tbNum:%d", pReq->dbFName, (int32_t)taosArrayGetSize(pReq->pTables)); CTG_ERR_RET(ctgGetTbMetasFromCache(pCtg, pConn, pCtx, i, &fetchIdx, baseResIdx, pReq->pTables)); baseResIdx += taosArrayGetSize(pReq->pTables); } @@ -4015,7 +4015,7 @@ static int32_t ctgLaunchGetTbNamesTask(SCtgTask* pTask) { CTG_ERR_RET(TSDB_CODE_CTG_INVALID_INPUT); } - ctgDebug("start to check tbname metas in db %s, tbNum %ld", pReq->dbFName, taosArrayGetSize(pReq->pTables)); + ctgDebug("start to check tbname metas in db:%s, tbNum:%d", pReq->dbFName, (int32_t)taosArrayGetSize(pReq->pTables)); CTG_ERR_RET(ctgGetTbNamesFromCache(pCtg, pConn, pCtx, i, &fetchIdx, baseResIdx, pReq->pTables)); baseResIdx += taosArrayGetSize(pReq->pTables); } diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index b826cb0d62..3025fd91ad 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -1732,7 +1732,7 @@ int32_t ctgAddNewDBCache(SCatalog *pCtg, const char *dbFName, uint64_t dbId) { if (!IS_SYS_DBNAME(dbFName)) { CTG_ERR_RET(ctgMetaRentAdd(&pCtg->dbRent, &dbCacheInfo, dbId, sizeof(SDbCacheInfo))); - ctgDebug("db:%s, db added to rent,vgVersion:%d, dbId:0x%" PRIx64, dbFName, dbCacheInfo.vgVersion, dbId); + ctgDebug("db:%s, db added to rent, vgVersion:%d, dbId:0x%" PRIx64, dbFName, dbCacheInfo.vgVersion, dbId); } return TSDB_CODE_SUCCESS; @@ -2269,7 +2269,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) { uint64_t groupCacheSize = ctgGetDbVgroupCacheSize(vgCache->vgInfo); (void)atomic_add_fetch_64(&dbCache->dbCacheSize, groupCacheSize); - ctgDebug("db:%s, add dbGroupCacheSize %" PRIu64 " from db", dbFName, groupCacheSize); + ctgDebug("db:%s, add dbGroupCacheSize:%" PRIu64 " from db", dbFName, groupCacheSize); dbCache = NULL; diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index 540b3b43e5..488614c007 100644 --- a/source/libs/catalog/src/ctgRemote.c +++ b/source/libs/catalog/src/ctgRemote.c @@ -795,7 +795,7 @@ int32_t ctgBuildBatchReqMsg(SCtgBatch* pBatch, int32_t vgId, void** msg, int32_t *pSize = msgSize; - qDebug("batch:%d, batch req to vg:%d msg built with %d meta reqs", pBatch->batchId, vgId, num); + qDebug("batch:%d, batch req to vgId:%d msg built with %d meta reqs", pBatch->batchId, vgId, num); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/catalog/src/ctgRent.c b/source/libs/catalog/src/ctgRent.c index c4a4680da4..17674aae82 100755 --- a/source/libs/catalog/src/ctgRent.c +++ b/source/libs/catalog/src/ctgRent.c @@ -86,7 +86,7 @@ int32_t ctgMetaRentUpdate(SCtgRentMgmt *mgmt, void *meta, int64_t id, int32_t si } if (slot->needSort) { - qDebug("id:0x%" PRIx64 ", meta slot before sorte, slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, + qDebug("id:0x%" PRIx64 ", meta slot before sort, slot idx:%d, type:%d, size:%d", id, widx, mgmt->type, (int32_t)taosArrayGetSize(slot->meta)); taosArraySort(slot->meta, sortCompare); slot->needSort = false; diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index f2783480c1..fa8436b353 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -1096,7 +1096,7 @@ int32_t qResetStmtColumns(SArray* pCols, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pCols, i); if (pCol == NULL) { - parserError("qResetStmtColumns column is NULL"); + parserError("qResetStmtColumns column:%d is NULL", i); return terrno; } if (deepClear) { @@ -1116,7 +1116,7 @@ int32_t qResetStmtDataBlock(STableDataCxt* block, bool deepClear) { for (int32_t i = 0; i < colNum; ++i) { SColData* pCol = (SColData*)taosArrayGet(pBlock->pData->aCol, i); if (pCol == NULL) { - parserError("qResetStmtDataBlock column is NULL"); + parserError("qResetStmtDataBlock column:%d is NULL", i); return terrno; } if (deepClear) { From 4fecfd43ac22c073719a8e892f5c278d8dc49869 Mon Sep 17 00:00:00 2001 From: "pengrongkun94@qq.com" Date: Mon, 3 Mar 2025 13:51:56 +0800 Subject: [PATCH 29/34] fix: async bind block bug --- source/client/src/clientMain.c | 15 ++++++++++----- source/client/test/stmt2Test.cpp | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 9a555682e6..431b639298 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -2258,10 +2258,6 @@ int taos_stmt2_bind_param_a(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t c } STscStmt2 *pStmt = (STscStmt2 *)stmt; - if (atomic_load_8((int8_t *)&pStmt->asyncBindParam.asyncBindNum) > 0) { - tscError("async bind param is still working, please try again later"); - return TSDB_CODE_TSC_STMT_API_ERROR; - } ThreadArgs *args = (ThreadArgs *)taosMemoryMalloc(sizeof(ThreadArgs)); args->stmt = stmt; @@ -2269,14 +2265,23 @@ int taos_stmt2_bind_param_a(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t c args->col_idx = col_idx; args->fp = fp; args->param = param; + + (void)taosThreadMutexLock(&(pStmt->asyncBindParam.mutex)); + if (atomic_load_8((int8_t *)&pStmt->asyncBindParam.asyncBindNum) > 0) { + (void)taosThreadMutexUnlock(&(pStmt->asyncBindParam.mutex)); + tscError("async bind param is still working, please try again later"); + return TSDB_CODE_TSC_STMT_API_ERROR; + } (void)atomic_add_fetch_8(&pStmt->asyncBindParam.asyncBindNum, 1); + (void)taosThreadMutexUnlock(&(pStmt->asyncBindParam.mutex)); + int code_s = taosStmt2AsyncBind(stmtAsyncBindThreadFunc, (void *)args); if (code_s != TSDB_CODE_SUCCESS) { (void)taosThreadMutexLock(&(pStmt->asyncBindParam.mutex)); (void)taosThreadCondSignal(&(pStmt->asyncBindParam.waitCond)); (void)atomic_sub_fetch_8(&pStmt->asyncBindParam.asyncBindNum, 1); (void)taosThreadMutexUnlock(&(pStmt->asyncBindParam.mutex)); - // terrno = TAOS_SYSTEM_ERROR(errno); + tscError("async bind failed, code:%d , %s", code_s, tstrerror(code_s)); } return code_s; diff --git a/source/client/test/stmt2Test.cpp b/source/client/test/stmt2Test.cpp index 638b964d10..5bc69bb2b0 100644 --- a/source/client/test/stmt2Test.cpp +++ b/source/client/test/stmt2Test.cpp @@ -1882,7 +1882,7 @@ TEST(stmt2Case, async_order) { auto start_time = std::chrono::steady_clock::now(); while (!stop_task) { auto elapsed_time = std::chrono::steady_clock::now() - start_time; - if (std::chrono::duration_cast(elapsed_time).count() > 60) { + if (std::chrono::duration_cast(elapsed_time).count() > 100) { FAIL() << "Test[stmt2_async_test] timed out"; t.detach(); break; From 075204a2db3a5ec9c04e81211480f8c02b7de628 Mon Sep 17 00:00:00 2001 From: Linhe Huo Date: Tue, 4 Mar 2025 15:44:50 +0800 Subject: [PATCH 30/34] ci: fix ci error caused by taosws cargo update [ci skip] Close [TD-33938](https://jira.taosdata.com:18080/browse/TD-33938) --- tools/CMakeLists.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 1ee2bc4ce6..110a644e90 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -19,8 +19,7 @@ IF(TD_WEBSOCKET) PATCH_COMMAND COMMAND git clean -f -d BUILD_COMMAND - COMMAND cargo update - COMMAND RUSTFLAGS=-Ctarget-feature=-crt-static cargo build --release -p taos-ws-sys --features rustls + COMMAND RUSTFLAGS=-Ctarget-feature=-crt-static cargo build --release --locked -p taos-ws-sys --features rustls INSTALL_COMMAND COMMAND cp target/release/${websocket_lib_file} ${CMAKE_BINARY_DIR}/build/lib COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/build/include @@ -38,8 +37,7 @@ IF(TD_WEBSOCKET) PATCH_COMMAND COMMAND git clean -f -d BUILD_COMMAND - COMMAND cargo update - COMMAND cargo build --release -p taos-ws-sys --features rustls + COMMAND cargo build --release --locked -p taos-ws-sys --features rustls INSTALL_COMMAND COMMAND cp target/release/taosws.dll ${CMAKE_BINARY_DIR}/build/lib COMMAND cp target/release/taosws.dll.lib ${CMAKE_BINARY_DIR}/build/lib/taosws.lib @@ -58,8 +56,7 @@ IF(TD_WEBSOCKET) PATCH_COMMAND COMMAND git clean -f -d BUILD_COMMAND - COMMAND cargo update - COMMAND cargo build --release -p taos-ws-sys --features rustls + COMMAND cargo build --release --locked -p taos-ws-sys --features rustls INSTALL_COMMAND COMMAND cp target/release/${websocket_lib_file} ${CMAKE_BINARY_DIR}/build/lib COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/build/include From 3b448f6812c51f0a0824359db218dd4ea6df5c2a Mon Sep 17 00:00:00 2001 From: Linhe Huo Date: Tue, 4 Mar 2025 21:40:11 +0800 Subject: [PATCH 31/34] Revert "docs: update exception handling strategy" --- .../_03-exception-handling-strategy.mdx | 24 +----------------- .../pic/exception-handling-strategy.png | Bin 100277 -> 44166 bytes 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx b/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx index 910af2526f..470c304ff3 100644 --- a/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx +++ b/docs/zh/06-advanced/05-data-in/_03-exception-handling-strategy.mdx @@ -9,15 +9,9 @@ > 丢弃:将异常数据忽略,不写入目标库 > 报错:任务报错 -- **目标库连接超时** 目标库连接失败,可选处理策略:归档、丢弃、报错、缓存 - > 缓存:当目标库状态异常(连接错误或资源不足等情况)时写入缓存文件(默认路径为 `${data_dir}/tasks/_id/.datetime`),目标库恢复正常后重新入库 -- **目标库不存在** 写入报错目标库不存在,可选处理策略:归档、丢弃、报错 -- **表不存在** 写入报错表不存在,可选处理策略:归档、丢弃、报错、自动建表 - > 自动建表:自动建表,建表成功后重试 - **主键时间戳溢出** 检查数据中第一列时间戳是否在正确的时间范围内(now - keep1, now + 100y),可选处理策略:归档、丢弃、报错 - **主键时间戳空** 检查数据中第一列时间戳是否为空,可选处理策略:归档、丢弃、报错、使用当前时间 > 使用当前时间:使用当前时间填充到空的时间戳字段中 -- **复合主键空** 写入报错复合主键空,可选处理策略:归档、丢弃、报错 - **表名长度溢出** 检查子表表名的长度是否超出限制(最大 192 字符),可选处理策略:归档、丢弃、报错、截断、截断且归档 > 截断:截取原始表名的前 192 个字符作为新的表名 > 截断且归档:截取原始表名的前 192 个字符作为新的表名,并且将此行记录写入归档文件 @@ -26,20 +20,4 @@ - **表名模板变量空值** 检查子表表名模板中的变量是否为空,可选处理策略:丢弃、留空、变量替换为指定字符串 > 留空:变量位置不做任何特殊处理,例如 `a_{x}` 转换为 `a_` > 变量替换为指定字符串:变量位置使用后方输入框中的指定字符串,例如 `a_{x}` 转换为 `a_b` -- **列名不存在** 写入报错列名不存在,可选处理策略:归档、丢弃、报错、自动增加缺失列 - > 自动增加缺失列:根据数据信息,自动修改表结构增加列,修改成功后重试 -- **列名长度溢出** 检查列名的长度是否超出限制(最大 64 字符),可选处理策略:归档、丢弃、报错 -- **列自动扩容** 开关选项,打开时,列数据长度超长时将自动修改表结构并重试 -- **列长度溢出** 写入报错列长度溢出,可选处理策略:归档、丢弃、报错、截断、截断且归档 - > 截断:截取数据中符合长度限制的前 n 个字符 - > 截断且归档:截取数据中符合长度限制的前 n 个字符,并且将此行记录写入归档文件 -- **数据异常** 其他数据异常(未在上方列出的其他异常)的处理策略,可选处理策略:归档、丢弃、报错 -- **连接超时** 配置目标库连接超时时间,单位“秒”取值范围 1~600 -- **临时存储文件位置** 配置缓存文件的位置,实际生效位置 $DATA_DIR/tasks/:id/{location} -- **归档数据保留天数** 非负整数,0 表示无限制 -- **归档数据可用空间** 0~65535,其中 0 表示无限制 -- **归档数据文件位置** 配置归档文件的位置,实际生效位置 $DATA_DIR/tasks/:id/{location} -- **归档数据失败处理策略** 当写入归档文件报错时的处理策略,可选处理策略:删除旧文件、丢弃、报错并停止任务 - > 删除旧文件:删除旧文件,如果删除旧文件后仍然无法写入,则报错并停止任务 - > 丢弃:丢弃即将归档的数据 - > 报错并停止任务:报错并停止当前任务 \ No newline at end of file +- **列名长度溢出** 检查列名的长度是否超出限制(最大 64 字符),可选处理策略:归档、丢弃、报错 \ No newline at end of file diff --git a/docs/zh/06-advanced/05-data-in/pic/exception-handling-strategy.png b/docs/zh/06-advanced/05-data-in/pic/exception-handling-strategy.png index 0342184511f43d835bd3a3371b05b00dad828db7..1e1d55d85c329403afa71bd3d04225095e9951fe 100644 GIT binary patch literal 44166 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 Date: Mon, 3 Mar 2025 19:55:04 +0800 Subject: [PATCH 32/34] fix: remove waitting for empty block --- source/client/src/clientTmq.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 4adc738d35..5ed32b4556 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -28,7 +28,6 @@ #define tqInfoC(...) do { if (cDebugFlag & DEBUG_INFO || tqClientDebugFlag & DEBUG_INFO) { taosPrintLog("TQ ", DEBUG_INFO, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) #define tqDebugC(...) do { if (cDebugFlag & DEBUG_DEBUG || tqClientDebugFlag & DEBUG_DEBUG) { taosPrintLog("TQ ", DEBUG_DEBUG, tqClientDebugFlag|cDebugFlag, __VA_ARGS__); }} while(0) -#define EMPTY_BLOCK_POLL_IDLE_DURATION 10 #define DEFAULT_AUTO_COMMIT_INTERVAL 5000 #define DEFAULT_HEARTBEAT_INTERVAL 3000 #define DEFAULT_ASKEP_INTERVAL 1000 @@ -174,7 +173,6 @@ typedef struct { int32_t vgId; int32_t vgStatus; int32_t vgSkipCnt; // here used to mark the slow vgroups - int64_t emptyBlockReceiveTs; // once empty block is received, idle for ignoreCnt then start to poll data int64_t blockReceiveTs; // once empty block is received, idle for ignoreCnt then start to poll data int64_t blockSleepForReplay; // once empty block is received, idle for ignoreCnt then start to poll data bool seekUpdated; // offset is updated by seek operator, therefore, not update by vnode rsp. @@ -948,6 +946,7 @@ static void generateTimedTask(int64_t refId, int32_t type) { if (code == TSDB_CODE_SUCCESS) { *pTaskType = type; if (taosWriteQitem(tmq->delayedTask, pTaskType) == 0) { + tqDebugC("consumer:0x%" PRIx64 " recv poll rsp here 2", tmq->consumerId); if (tsem2_post(&tmq->rspSem) != 0){ tqErrorC("consumer:0x%" PRIx64 " failed to post sem, type:%d", tmq->consumerId, type); } @@ -1226,7 +1225,6 @@ static void initClientTopicFromRsp(SMqClientTopic* pTopic, SMqSubTopicEp* pTopic .epSet = pVgEp->epSet, .vgStatus = pInfo ? pInfo->vgStatus : TMQ_VG_STATUS__IDLE, .vgSkipCnt = 0, - .emptyBlockReceiveTs = 0, .blockReceiveTs = 0, .blockSleepForReplay = 0, .numOfRows = pInfo ? pInfo->numOfRows : 0, @@ -2128,7 +2126,7 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { } } - + tqDebugC("consumer:0x%" PRIx64 " recv poll rsp here 1", tmq->consumerId); if (tsem2_post(&tmq->rspSem) != 0){ tqErrorC("failed to post rsp sem, consumer:0x%" PRIx64, tmq->consumerId); } @@ -2344,14 +2342,7 @@ static int32_t tmqPollImpl(tmq_t* tmq) { if (pVg == NULL) { continue; } - int64_t elapsed = taosGetTimestampMs() - pVg->emptyBlockReceiveTs; - if (elapsed < EMPTY_BLOCK_POLL_IDLE_DURATION && elapsed >= 0) { // less than 10ms - tqDebugC("consumer:0x%" PRIx64 " epoch %d, vgId:%d idle for 10ms before start next poll", tmq->consumerId, - tmq->epoch, pVg->vgId); - continue; - } - - elapsed = taosGetTimestampMs() - pVg->blockReceiveTs; + int64_t elapsed = taosGetTimestampMs() - pVg->blockReceiveTs; if (tmq->replayEnable && elapsed < pVg->blockSleepForReplay && elapsed >= 0) { tqDebugC("consumer:0x%" PRIx64 " epoch %d, vgId:%d idle for %" PRId64 "ms before start next poll when replay", tmq->consumerId, tmq->epoch, pVg->vgId, pVg->blockSleepForReplay); @@ -2446,7 +2437,6 @@ static int32_t processMqRspError(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ SMqClientVg* pVg = NULL; getVgInfo(tmq, pollRspWrapper->topicName, pollRspWrapper->vgId, &pVg); if (pVg) { - pVg->emptyBlockReceiveTs = taosGetTimestampMs(); atomic_store_32(&pVg->vgStatus, TMQ_VG_STATUS__IDLE); } taosWUnLockLatch(&tmq->lock); @@ -2525,7 +2515,6 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ tqDebugC("consumer:0x%" PRIx64 " empty block received, vgId:%d, offset:%s, vg total:%" PRId64 ", total:%" PRId64 ",QID:0x%" PRIx64, tmq->consumerId, pVg->vgId, buf, pVg->numOfRows, tmq->totalRows, pollRspWrapper->reqId); - pVg->emptyBlockReceiveTs = taosGetTimestampMs(); } else { pRspObj = buildRsp(pollRspWrapper); if (pRspObj == NULL) { @@ -2539,7 +2528,6 @@ static SMqRspObj* processMqRsp(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ tmqBuildRspFromWrapperInner(pollRspWrapper, pVg, &numOfRows, pRspObj); tmq->totalRows += numOfRows; } - pVg->emptyBlockReceiveTs = 0; if (tmq->replayEnable && pRspWrapper->tmqRspType != TMQ_MSG_TYPE__POLL_RAW_DATA_RSP) { pVg->blockReceiveTs = taosGetTimestampMs(); pVg->blockSleepForReplay = pRspObj->dataRsp.sleepTime; @@ -2643,8 +2631,8 @@ TAOS_RES* tmq_consumer_poll(tmq_t* tmq, int64_t timeout) { if (timeout >= 0) { int64_t currentTime = taosGetTimestampMs(); int64_t elapsedTime = currentTime - startTime; - TSDB_CHECK_CONDITION(elapsedTime <= timeout && elapsedTime >= 0, code, lino, END, 0); (void)tsem2_timewait(&tmq->rspSem, (timeout - elapsedTime)); + TSDB_CHECK_CONDITION(elapsedTime < timeout && elapsedTime >= 0, code, lino, END, 0); } else { (void)tsem2_timewait(&tmq->rspSem, 1000); } From 08601c5dc98da9a0ab4e6af55551450d6a1e8829 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 4 Mar 2025 17:57:33 +0800 Subject: [PATCH 33/34] fix: remove waitting for empty block & optimize poll logic --- docs/en/14-reference/09-error-code.md | 4 +- docs/zh/14-reference/09-error-code.md | 4 +- source/client/src/clientTmq.c | 83 ++++----------- tests/system-test/7-tmq/tmq_c_test.py | 4 + utils/test/c/CMakeLists.txt | 8 ++ utils/test/c/tmq_poll_test.c | 140 ++++++++++++++++++++++++++ 6 files changed, 179 insertions(+), 64 deletions(-) create mode 100644 utils/test/c/tmq_poll_test.c diff --git a/docs/en/14-reference/09-error-code.md b/docs/en/14-reference/09-error-code.md index 2d75dc953c..7dbd58bb1d 100644 --- a/docs/en/14-reference/09-error-code.md +++ b/docs/en/14-reference/09-error-code.md @@ -537,8 +537,10 @@ This document details the server error codes that may be encountered when using | Error Code | Description | Possible Error Scenarios or Reasons | Recommended Actions for Users | | ---------- | --------------------- | ------------------------------------------------------------ | -------------------------------------------- | +| 0x800003E6 | Consumer not exist | Consumer timeout offline | rebuild consumer to subscribe data again | +| 0x800003EA | Consumer not ready | Consumer rebalancing | retry after 2s | | 0x80004000 | Invalid message | The subscribed data is illegal, generally does not occur | Check the client-side error logs for details | -| 0x80004001 | Consumer mismatch | The vnode requested for subscription and the reassigned vnode are inconsistent, usually occurs when new consumers join the same consumer group | Internal error, not exposed to users | +| 0x80004001 | Consumer mismatch | The vnode requested for subscription and the reassigned vnode are inconsistent, usually occurs when new consumers join the same consumer group | Internal error | | 0x80004002 | Consumer closed | The consumer no longer exists | Check if it has already been closed | | 0x80004017 | Invalid status, please subscribe topic first | tmq status invalidate | Without calling subscribe, directly poll data | | 0x80004100 | Stream task not exist | The stream computing task does not exist | Check the server-side error logs | diff --git a/docs/zh/14-reference/09-error-code.md b/docs/zh/14-reference/09-error-code.md index 7326f45b34..1d996beac8 100644 --- a/docs/zh/14-reference/09-error-code.md +++ b/docs/zh/14-reference/09-error-code.md @@ -557,8 +557,10 @@ description: TDengine 服务端的错误码列表和详细说明 | 错误码 | 错误描述 | 可能的出错场景或者可能的原因 | 建议用户采取的措施 | | ---------- | --------------------- | -------------------------------------------------------------------------------- | ------------------------------ | +| 0x800003E6 | Consumer not exist | Consumer 超时下线 | 重新建consumer订阅数据 | +| 0x800003EA | Consumer not ready | Consumer 正在平衡中 | 等待2秒后重试 | | 0x80004000 | Invalid message | 订阅到的数据非法,一般不会出现 | 具体查看client端的错误日志提示 | -| 0x80004001 | Consumer mismatch | 订阅请求的vnode和重新分配的vnode不一致,一般存在于有新消费者加入相同消费者组里时 | 内部错误,不暴露给用户 | +| 0x80004001 | Consumer mismatch | 订阅请求的vnode和重新分配的vnode不一致,一般存在于有新消费者加入相同消费者组里时 | 内部错误 | | 0x80004002 | Consumer closed | 消费者已经不存在了 | 查看是否已经close掉了 | | 0x80004017 | Invalid status, please subscribe topic first | 数据订阅状态不对 | 没有调用 subscribe,直接 poll 数据 | | 0x80004100 | Stream task not exist | 流计算任务不存在 | 具体查看server端的错误日志 | diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 5ed32b4556..d160e5cf7e 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -148,7 +148,6 @@ struct tmq_t { STscObj* pTscObj; // connection SArray* clientTopics; // SArray STaosQueue* mqueue; // queue of rsp - STaosQall* qall; STaosQueue* delayedTask; // delayed task queue for heartbeat and auto commit tsem2_t rspSem; }; @@ -946,7 +945,6 @@ static void generateTimedTask(int64_t refId, int32_t type) { if (code == TSDB_CODE_SUCCESS) { *pTaskType = type; if (taosWriteQitem(tmq->delayedTask, pTaskType) == 0) { - tqDebugC("consumer:0x%" PRIx64 " recv poll rsp here 2", tmq->consumerId); if (tsem2_post(&tmq->rspSem) != 0){ tqErrorC("consumer:0x%" PRIx64 " failed to post sem, type:%d", tmq->consumerId, type); } @@ -1133,7 +1131,7 @@ void tmqSendHbReq(void* param, void* tmrId) { tDestroySMqHbReq(&req); if (tmrId != NULL) { bool ret = taosTmrReset(tmqSendHbReq, tmq->heartBeatIntervalMs, param, tmqMgmt.timer, &tmq->hbLiveTimer); - tqDebugC("consumer:0x%" PRIx64 " reset timer for tmq heartbeat:%d, pollFlag:%d", tmq->consumerId, ret, tmq->pollFlag); + tqDebugC("consumer:0x%" PRIx64 " reset timer for tmq heartbeat ret:%d, interval:%d, pollFlag:%d", tmq->consumerId, ret, tmq->heartBeatIntervalMs, tmq->pollFlag); } int32_t ret = taosReleaseRef(tmqMgmt.rsetId, refId); if (ret != 0){ @@ -1485,27 +1483,14 @@ END: } static int32_t tmqHandleAllDelayedTask(tmq_t* pTmq) { - STaosQall* qall = NULL; - int32_t code = 0; - - code = taosAllocateQall(&qall); - if (code) { - tqErrorC("consumer:0x%" PRIx64 ", failed to allocate qall, code:%s", pTmq->consumerId, tstrerror(code)); - return code; - } - - int32_t numOfItems = taosReadAllQitems(pTmq->delayedTask, qall); - if (numOfItems == 0) { - taosFreeQall(qall); - return 0; - } - - tqDebugC("consumer:0x%" PRIx64 " handle delayed %d tasks before poll data", pTmq->consumerId, numOfItems); - int8_t* pTaskType = NULL; - while (taosGetQitem(qall, (void**)&pTaskType) != 0) { + tqDebugC("consumer:0x%" PRIx64 " handle delayed %d tasks before poll data", pTmq->consumerId, taosQueueItemSize(pTmq->delayedTask)); + while (1) { + int8_t* pTaskType = NULL; + taosReadQitem(pTmq->delayedTask, (void**)&pTaskType); + if (pTaskType == NULL) {break;} if (*pTaskType == TMQ_DELAYED_TASK__ASK_EP) { tqDebugC("consumer:0x%" PRIx64 " retrieve ask ep timer", pTmq->consumerId); - code = askEp(pTmq, NULL, false, false); + int32_t code = askEp(pTmq, NULL, false, false); if (code != 0) { tqErrorC("consumer:0x%" PRIx64 " failed to ask ep, code:%s", pTmq->consumerId, tstrerror(code)); } @@ -1528,23 +1513,15 @@ static int32_t tmqHandleAllDelayedTask(tmq_t* pTmq) { taosFreeQitem(pTaskType); } - taosFreeQall(qall); return 0; } void tmqClearUnhandleMsg(tmq_t* tmq) { if (tmq == NULL) return; - SMqRspWrapper* rspWrapper = NULL; - while (taosGetQitem(tmq->qall, (void**)&rspWrapper) != 0) { - tmqFreeRspWrapper(rspWrapper); - taosFreeQitem(rspWrapper); - } - - rspWrapper = NULL; - if (taosReadAllQitems(tmq->mqueue, tmq->qall) == 0){ - return; - } - while (taosGetQitem(tmq->qall, (void**)&rspWrapper) != 0) { + while (1) { + SMqRspWrapper* rspWrapper = NULL; + taosReadQitem(tmq->mqueue, (void**)&rspWrapper); + if (rspWrapper == NULL) break; tmqFreeRspWrapper(rspWrapper); taosFreeQitem(rspWrapper); } @@ -1611,7 +1588,6 @@ void tmqFreeImpl(void* handle) { taosCloseQueue(tmq->delayedTask); } - taosFreeQall(tmq->qall); if(tsem2_destroy(&tmq->rspSem) != 0) { tqErrorC("failed to destroy sem in free tmq"); } @@ -1737,14 +1713,6 @@ tmq_t* tmq_consumer_new(tmq_conf_t* conf, char* errstr, int32_t errstrLen) { goto _failed; } - code = taosAllocateQall(&pTmq->qall); - if (code) { - tqErrorC("consumer:0x%" PRIx64 " setup failed since %s, groupId:%s", pTmq->consumerId, tstrerror(code), - pTmq->groupId); - SET_ERROR_MSG_TMQ("allocate qall failed") - goto _failed; - } - if (conf->groupId[0] == 0) { tqErrorC("consumer:0x%" PRIx64 " setup failed since %s, groupId:%s", pTmq->consumerId, tstrerror(code), pTmq->groupId); @@ -2126,7 +2094,6 @@ int32_t tmqPollCb(void* param, SDataBuf* pMsg, int32_t code) { } } - tqDebugC("consumer:0x%" PRIx64 " recv poll rsp here 1", tmq->consumerId); if (tsem2_post(&tmq->rspSem) != 0){ tqErrorC("failed to post rsp sem, consumer:0x%" PRIx64, tmq->consumerId); } @@ -2320,7 +2287,7 @@ static int32_t tmqPollImpl(tmq_t* tmq) { taosWLockLatch(&tmq->lock); if (atomic_load_8(&tmq->status) == TMQ_CONSUMER_STATUS__LOST){ - code = TSDB_CODE_TMQ_CONSUMER_MISMATCH; + code = TSDB_CODE_MND_CONSUMER_NOT_EXIST; goto end; } @@ -2421,12 +2388,12 @@ static int32_t processMqRspError(tmq_t* tmq, SMqRspWrapper* pRspWrapper){ if (pRspWrapper->code == TSDB_CODE_VND_INVALID_VGROUP_ID) { // for vnode transform code = askEp(tmq, NULL, false, true); if (code != 0) { - tqErrorC("consumer:0x%" PRIx64 " failed to ask ep, code:%s", tmq->consumerId, tstrerror(code)); + tqErrorC("consumer:0x%" PRIx64 " failed to ask ep wher vnode transform, code:%s", tmq->consumerId, tstrerror(code)); } } else if (pRspWrapper->code == TSDB_CODE_TMQ_CONSUMER_MISMATCH) { - code = askEp(tmq, NULL, false, false); + code = syncAskEp(tmq); if (code != 0) { - tqErrorC("consumer:0x%" PRIx64 " failed to ask ep, code:%s", tmq->consumerId, tstrerror(code)); + tqErrorC("consumer:0x%" PRIx64 " failed to ask ep when consumer mismatch, code:%s", tmq->consumerId, tstrerror(code)); } } else if (pRspWrapper->code == TSDB_CODE_TMQ_NO_TABLE_QUALIFIED){ code = 0; @@ -2563,22 +2530,14 @@ END: } static void* tmqHandleAllRsp(tmq_t* tmq) { - tqDebugC("consumer:0x%" PRIx64 " start to handle the rsp, total:%d", tmq->consumerId, taosQallItemSize(tmq->qall)); + tqDebugC("consumer:0x%" PRIx64 " start to handle the rsp, total:%d", tmq->consumerId, taosQueueItemSize(tmq->mqueue)); int32_t code = 0; void* returnVal = NULL; while (1) { SMqRspWrapper* pRspWrapper = NULL; - if (taosGetQitem(tmq->qall, (void**)&pRspWrapper) == 0) { - code = taosReadAllQitems(tmq->mqueue, tmq->qall); - if (code == 0){ - goto END; - } - code = taosGetQitem(tmq->qall, (void**)&pRspWrapper); - if (code == 0) { - goto END; - } - } + taosReadQitem(tmq->mqueue, (void**)&pRspWrapper); + if (pRspWrapper == NULL) {break;} tqDebugC("consumer:0x%" PRIx64 " handle rsp, type:%s", tmq->consumerId, tmqMsgTypeStr[pRspWrapper->tmqRspType]); if (pRspWrapper->code != 0) { @@ -2617,9 +2576,6 @@ TAOS_RES* tmq_consumer_poll(tmq_t* tmq, int64_t timeout) { code = tmqHandleAllDelayedTask(tmq); TSDB_CHECK_CODE(code, lino, END); - code = tmqPollImpl(tmq); - TSDB_CHECK_CODE(code, lino, END); - rspObj = tmqHandleAllRsp(tmq); if (rspObj) { tqDebugC("consumer:0x%" PRIx64 " return rsp %p", tmq->consumerId, rspObj); @@ -2628,6 +2584,9 @@ TAOS_RES* tmq_consumer_poll(tmq_t* tmq, int64_t timeout) { code = terrno; TSDB_CHECK_CODE(code, lino, END); + code = tmqPollImpl(tmq); + TSDB_CHECK_CODE(code, lino, END); + if (timeout >= 0) { int64_t currentTime = taosGetTimestampMs(); int64_t elapsedTime = currentTime - startTime; diff --git a/tests/system-test/7-tmq/tmq_c_test.py b/tests/system-test/7-tmq/tmq_c_test.py index a2ed4aa708..0552a700dd 100644 --- a/tests/system-test/7-tmq/tmq_c_test.py +++ b/tests/system-test/7-tmq/tmq_c_test.py @@ -37,6 +37,10 @@ class TDTestCase: tdLog.info(cmdStr) os.system(cmdStr) + cmdStr = '%s/build/bin/tmq_poll_test'%(buildPath) + tdLog.info(cmdStr) + os.system(cmdStr) + return def stop(self): diff --git a/utils/test/c/CMakeLists.txt b/utils/test/c/CMakeLists.txt index 1b2716b8e5..b68476add8 100644 --- a/utils/test/c/CMakeLists.txt +++ b/utils/test/c/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable(tmq_td32187 tmq_td32187.c) add_executable(tmq_ts5776 tmq_ts5776.c) add_executable(tmq_td32471 tmq_td32471.c) add_executable(tmq_td33798 tmq_td33798.c) +add_executable(tmq_poll_test tmq_poll_test.c) add_executable(tmq_write_raw_test tmq_write_raw_test.c) add_executable(write_raw_block_test write_raw_block_test.c) add_executable(sml_test sml_test.c) @@ -89,6 +90,13 @@ target_link_libraries( PUBLIC common PUBLIC os ) +target_link_libraries( + tmq_poll_test + PUBLIC ${TAOS_LIB} + PUBLIC util + PUBLIC common + PUBLIC os +) target_link_libraries( tmq_td32526 PUBLIC ${TAOS_LIB} diff --git a/utils/test/c/tmq_poll_test.c b/utils/test/c/tmq_poll_test.c new file mode 100644 index 0000000000..4c4183995a --- /dev/null +++ b/utils/test/c/tmq_poll_test.c @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include +#include +#include "cJSON.h" +#include "taos.h" +#include "tmsg.h" +#include "types.h" + +TAOS_RES* pRes = NULL; +TAOS* pConn = NULL; +TAOS_RES* tmqmessage = NULL; + +#define EXEC_SQL(sql) \ + pRes = taos_query(pConn,sql);\ + ASSERT(taos_errno(pRes) == 0);\ + taos_free_result(pRes) + +void init_env() { + EXEC_SQL("drop topic if exists topic_db"); + EXEC_SQL("drop database if exists db_src"); + EXEC_SQL("create database if not exists db_src vgroups 1 wal_retention_period 3600"); + EXEC_SQL("use db_src"); + EXEC_SQL("create stable if not exists st1 (ts timestamp, c1 int, c2 float, c3 binary(16)) tags(t1 int, t3 nchar(8), t4 bool)"); + EXEC_SQL("insert into ct3 using st1(t1) tags(3000) values(1626006833600, 5, 6, 'c')"); + + EXEC_SQL("create topic topic_db as database db_src"); +} + + + +tmq_t* build_consumer(bool testLongHeartBeat) { + tmq_conf_t* conf = tmq_conf_new(); + tmq_conf_set(conf, "group.id", "tg2"); + tmq_conf_set(conf, "client.id", "my app 1"); + tmq_conf_set(conf, "td.connect.user", "root"); + tmq_conf_set(conf, "td.connect.pass", "taosdata"); + tmq_conf_set(conf, "msg.with.table.name", "true"); + tmq_conf_set(conf, "enable.auto.commit", "true"); + tmq_conf_set(conf, "auto.offset.reset", "earliest"); + + if (testLongHeartBeat){ + ASSERT(tmq_conf_set(conf, "session.timeout.ms", "8000") == TMQ_CONF_OK); + ASSERT(tmq_conf_set(conf, "heartbeat.interval.ms", "100000") == TMQ_CONF_OK); + } + + tmq_conf_set_auto_commit_cb(conf, NULL, NULL); + tmq_t* tmq = tmq_consumer_new(conf, NULL, 0); + ASSERT(tmq != NULL); + tmq_conf_destroy(conf); + return tmq; +} + +tmq_list_t* build_topic_list() { + tmq_list_t* topic_list = tmq_list_new(); + tmq_list_append(topic_list, "topic_db"); + return topic_list; +} + +void test_poll_continuity(tmq_t* tmq, tmq_list_t* topics) { + ASSERT ((tmq_subscribe(tmq, topics)) == 0); + tmqmessage = tmq_consumer_poll(tmq, 500); + ASSERT (tmqmessage != NULL); + taos_free_result(tmqmessage); + + ASSERT (tmq_unsubscribe(tmq) == 0); + printf("unsubscribe success\n"); + + ASSERT (tmq_subscribe(tmq, topics) == 0); + printf("subscribe success\n"); + + tmqmessage = tmq_consumer_poll(tmq, 500); + ASSERT (tmqmessage == NULL); + taos_free_result(tmqmessage); + + EXEC_SQL("insert into ct1 using st1(t1) tags(3000) values(1626006833600, 5, 6, 'c')"); + printf("insert into ct1\n"); + + tmqmessage = tmq_consumer_poll(tmq, 500); + ASSERT (tmqmessage != NULL); + taos_free_result(tmqmessage); +} + + +void test_consumer_offline(tmq_t* tmq, tmq_list_t* topics) { + ASSERT ((tmq_subscribe(tmq, topics)) == 0); + tmqmessage = tmq_consumer_poll(tmq, 500); + ASSERT (tmqmessage != NULL); + taos_free_result(tmqmessage); + + taosSsleep(15); + + tmqmessage = tmq_consumer_poll(tmq, 500); + ASSERT (tmqmessage == NULL); + ASSERT (taos_errno(NULL) == TSDB_CODE_MND_CONSUMER_NOT_EXIST); + taos_free_result(tmqmessage); +} + +int main(int argc, char* argv[]) { + pConn = taos_connect("localhost", "root", "taosdata", NULL, 0); + ASSERT (pConn != NULL); + printf("test poll continuity\n"); + for (int i = 0; i < 10; i++){ + printf("-------run times:%d start---------\n", i); + init_env(); + tmq_t* tmq = build_consumer(false); + tmq_list_t* topic_list = build_topic_list(); + test_poll_continuity(tmq, topic_list); + ASSERT(tmq_consumer_close(tmq) == 0); + tmq_list_destroy(topic_list); + printf("-------run times:%d end---------\n\n", i); + } + +// printf("\n\n\ntest consumer offline\n"); +// init_env(); +// tmq_t* tmq = build_consumer(true); +// tmq_list_t* topic_list = build_topic_list(); +// test_consumer_offline(tmq, topic_list); +// ASSERT(tmq_consumer_close(tmq) == 0); +// tmq_list_destroy(topic_list); + + taos_close(pConn); + +} From 9a3d6e3fb344fd88bce540e1eed445596aca5199 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 4 Mar 2025 19:12:28 +0800 Subject: [PATCH 34/34] fix: remove waitting for empty block & optimize poll logic --- utils/test/c/tmq_td32471.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/test/c/tmq_td32471.c b/utils/test/c/tmq_td32471.c index bf14e3f61b..80f93541f9 100644 --- a/utils/test/c/tmq_td32471.c +++ b/utils/test/c/tmq_td32471.c @@ -76,7 +76,7 @@ void basic_consume_loop(tmq_t* tmq, tmq_list_t* topics) { taosSsleep(5); TAOS_RES* tmqmessage = tmq_consumer_poll(tmq, 1000); ASSERT(tmqmessage == NULL); - ASSERT(taos_errno(NULL) == TSDB_CODE_TMQ_CONSUMER_MISMATCH); + ASSERT(taos_errno(NULL) == TSDB_CODE_MND_CONSUMER_NOT_EXIST); code = tmq_consumer_close(tmq); if (code)