diff --git a/README-CN.md b/README-CN.md index 8c78bb14ee..43d3c76a73 100644 --- a/README-CN.md +++ b/README-CN.md @@ -188,7 +188,7 @@ cmake .. && cmake --build . 如果你想要编译 taosAdapter,需要添加 `-DBUILD_HTTP=false` 选项。 -如果你想要编译 taosKeeper,需要添加 `--DBUILD_KEEPER=true` 选项。 +如果你想要编译 taosKeeper,需要添加 `-DBUILD_KEEPER=true` 选项。 diff --git a/README.md b/README.md index 17079de0a7..568bb82cfb 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,7 @@ make If you want to compile taosAdapter, you need to add the `-DBUILD_HTTP=false` option. -If you want to compile taosKeeper, you need to add the `--DBUILD_KEEPER=true` option. +If you want to compile taosKeeper, you need to add the `-DBUILD_KEEPER=true` option. You can use Jemalloc as memory allocator instead of glibc: @@ -206,7 +206,7 @@ cmake .. && cmake --build . If you want to compile taosAdapter, you need to add the `-DBUILD_HTTP=false` option. -If you want to compile taosKeeper, you need to add the `--DBUILD_KEEPER=true` option. +If you want to compile taosKeeper, you need to add the `-DBUILD_KEEPER=true` option. diff --git a/docs/zh/14-reference/01-components/01-taosd.md b/docs/zh/14-reference/01-components/01-taosd.md index 159b066313..b99fc5f24b 100644 --- a/docs/zh/14-reference/01-components/01-taosd.md +++ b/docs/zh/14-reference/01-components/01-taosd.md @@ -686,7 +686,7 @@ charset 的有效值是 UTF-8。 #### numOfMnodeReadThreads - 说明:mnode 的 Read 线程数目 - 类型:整数 -- 默认值:CPU 核数的四分之一(不超过 4) +- 默认值:CPU 核数的四分之一(不低于 1 不超过 4) - 最小值:0 - 最大值:1024 - 动态修改:支持通过 SQL 修改,重启生效。 @@ -695,7 +695,7 @@ charset 的有效值是 UTF-8。 #### numOfVnodeQueryThreads - 说明:vnode 的 Query 线程数目 - 类型:整数 -- 默认值:CPU 核数的两倍(不超过 16) +- 默认值:CPU 核数的两倍(不低于 16) - 最小值:0 - 最大值:1024 - 动态修改:支持通过 SQL 修改,重启生效。 @@ -704,7 +704,7 @@ charset 的有效值是 UTF-8。 #### numOfVnodeFetchThreads - 说明:vnode 的 Fetch 线程数目 - 类型:整数 -- 默认值:CPU 核数的四分之一(不超过 4) +- 默认值:CPU 核数的四分之一(不低于 4) - 最小值:0 - 最大值:1024 - 动态修改:支持通过 SQL 修改,重启生效。 @@ -713,7 +713,7 @@ charset 的有效值是 UTF-8。 #### numOfVnodeRsmaThreads - 说明:vnode 的 Rsma 线程数目 - 类型:整数 -- 默认值:CPU 核数的四分之一(不超过 4) +- 默认值:CPU 核数的四分之一(不低于 4) - 最小值:0 - 最大值:1024 - 动态修改:支持通过 SQL 修改,重启生效。 @@ -722,7 +722,7 @@ charset 的有效值是 UTF-8。 #### numOfQnodeQueryThreads - 说明:qnode 的 Query 线程数目 - 类型:整数 -- 默认值:CPU 核数的两倍(不超过 16) +- 默认值:CPU 核数的两倍(不低于 16) - 最小值:0 - 最大值:1024 - 动态修改:支持通过 SQL 修改,重启生效。 @@ -1007,15 +1007,15 @@ charset 的有效值是 UTF-8。 #### udfdResFuncs - 说明:用于统计用量 **`内部参数`** -- 类型:整数 +- 类型:字符串 - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### udfdLdLibPath - 说明:用于统计用量 **`内部参数`** -- 类型:整数 -- 动态修改:支持通过 SQL 修改,重启生效 -- 支持版本:v3.1.0.0 引入 +- 类型:字符串 +- 动态修改:支持通过 SQL 修改,重启生效。 +- 支持版本:从 v3.1.0.0 版本开始引入 #### enableStrongPassword - 说明:密码要符合一个要求:至少包含大写字母、小写字母、数字、特殊字符中的三类。特殊字符包括 `! @ # $ % ^ & * ( ) - _ + = [ ] { } : ; > < ? | ~ , .` diff --git a/include/libs/wal/wal.h b/include/libs/wal/wal.h index 68f1de643d..4452469419 100644 --- a/include/libs/wal/wal.h +++ b/include/libs/wal/wal.h @@ -21,6 +21,7 @@ #include "tdef.h" #include "tlog.h" #include "tmsg.h" +#include "ttrace.h" #ifdef __cplusplus extern "C" { @@ -170,7 +171,8 @@ void walClose(SWal *); // write interfaces // By assigning index by the caller, wal gurantees linearizability -int32_t walAppendLog(SWal *, int64_t index, tmsg_t msgType, SWalSyncInfo syncMeta, const void *body, int32_t bodyLen); +int32_t walAppendLog(SWal *, int64_t index, tmsg_t msgType, SWalSyncInfo syncMeta, const void *body, int32_t bodyLen, + const STraceId *trace); int32_t walFsync(SWal *, bool force); // apis for lifecycle management diff --git a/source/client/src/clientEnv.c b/source/client/src/clientEnv.c index 0cea3a0185..aa6e06a989 100644 --- a/source/client/src/clientEnv.c +++ b/source/client/src/clientEnv.c @@ -93,7 +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("req:0x%" PRIx64 ", new from connObj:0x%" PRIx64 ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, + tscDebug("req:0x%" PRIx64 ", create request from conn:0x%" PRIx64 ", current:%d, app current:%d, total:%d, QID:0x%" PRIx64, pRequest->self, pRequest->pTscObj->id, num, currentInst, total, pRequest->requestId); } @@ -254,7 +254,7 @@ static void deregisterRequest(SRequestObj *pRequest) { int32_t reqType = SLOW_LOG_TYPE_OTHERS; int64_t duration = taosGetTimestampUs() - pRequest->metric.start; - tscDebug("req:0x%" PRIx64 ", free from connObj:0x%" PRIx64 ", QID:0x%" PRIx64 + tscDebug("req:0x%" PRIx64 ", free from conn:0x%" PRIx64 ", QID:0x%" PRIx64 ", elapsed:%.2f ms, current:%d, app current:%d", pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000.0, num, currentInst); @@ -263,16 +263,18 @@ static void deregisterRequest(SRequestObj *pRequest) { (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 - "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us, QID:0x%" PRIx64, pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, - pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs, + pRequest->requestId); (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 - "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us", + "us, analyseCost:%" PRId64 "us, planCost:%" PRId64 "us, exec:%" PRId64 "us, QID:0x%" PRIx64, pRequest->self, duration, pRequest->metric.parseCostUs, pRequest->metric.ctgCostUs, - pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs); + pRequest->metric.analyseCostUs, pRequest->metric.planCostUs, pRequest->metric.execCostUs, + pRequest->requestId); (void)atomic_add_fetch_64((int64_t *)&pActivity->queryElapsedTime, duration); reqType = SLOW_LOG_TYPE_QUERY; @@ -460,7 +462,7 @@ void destroyTscObj(void *pObj) { STscObj *pTscObj = pObj; int64_t tscId = pTscObj->id; - tscTrace("connObj:%" PRIx64 ", begin destroy, p:%p", tscId, pTscObj); + tscTrace("conn:%" PRIx64 ", begin destroy, p:%p", tscId, pTscObj); SClientHbKey connKey = {.tscRid = pTscObj->id, .connType = pTscObj->connType}; hbDeregisterConn(pTscObj, connKey); @@ -469,7 +471,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("conn: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 +480,7 @@ void destroyTscObj(void *pObj) { (void)taosThreadMutexDestroy(&pTscObj->mutex); taosMemoryFree(pTscObj); - tscTrace("connObj:0x%" PRIx64 ", end destroy, p:%p", tscId, pTscObj); + tscTrace("conn: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, @@ -518,7 +520,7 @@ int32_t createTscObj(const char *user, const char *auth, const char *db, int32_t (void)atomic_add_fetch_64(&(*pObj)->pAppInfo->numOfConns, 1); - tscInfo("connObj:0x%" PRIx64 ", created, p:%p", (*pObj)->id, *pObj); + tscInfo("conn:0x%" PRIx64 ", created, p:%p", (*pObj)->id, *pObj); return code; } @@ -684,7 +686,7 @@ void doDestroyRequest(void *p) { SRequestObj *pRequest = (SRequestObj *)p; uint64_t reqId = pRequest->requestId; - tscDebug("QID:0x%" PRIx64 ", begin destroy request, res:%p", reqId, pRequest); + tscTrace("QID:0x%" PRIx64 ", begin destroy request, res:%p", reqId, pRequest); int64_t nextReqRefId = pRequest->relation.nextRefId; @@ -726,7 +728,7 @@ void doDestroyRequest(void *p) { taosMemoryFreeClear(pRequest->effectiveUser); taosMemoryFreeClear(pRequest->sqlstr); taosMemoryFree(pRequest); - tscDebug("QID:0x%" PRIx64 ", end destroy request, res:%p", reqId, pRequest); + tscTrace("QID:0x%" PRIx64 ", end destroy request, res:%p", reqId, pRequest); destroyNextReq(nextReqRefId); } diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index 770dacb43e..1d95880d84 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 ", connObj:%" PRIi64, pRsp->user, + tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", conn:%" 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, connObj:%" PRIi64, pRsp->user, oldVer, + tscDebug("update passVer of user %s from %d to %d, conn:%" 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 ", connObj:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", conn:%" 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 ", connObj:%" PRIi64, pRsp->user, + tscDebug("update whitelist version of user %s from %" PRId64 " to %" PRId64 ", conn:%" PRIi64, pRsp->user, oldVer, atomic_load_64(&whiteListInfo->ver), pTscObj->id); } releaseTscObj(pReq->connKey.tscRid); @@ -516,7 +516,7 @@ static int32_t hbQueryHbRspHandle(SAppHbMgr *pAppHbMgr, SClientHbRsp *pRsp) { pTscObj->pAppInfo->totalDnodes); if (pRsp->query->killRid) { - tscDebug("QID:%" PRIx64 ", need to be killed now", pRsp->query->killRid); + tscDebug("QID:0x%" PRIx64 ", need to be killed now", pRsp->query->killRid); SRequestObj *pRequest = acquireRequest(pRsp->query->killRid); if (NULL == pRequest) { tscDebug("QID:0x%" PRIx64 ", not exist to kill", pRsp->query->killRid); @@ -885,7 +885,7 @@ int32_t hbGetExpiredDBInfo(SClientHbKey *connKey, struct SCatalog *pCatalog, SCl for (int32_t i = 0; i < dbNum; ++i) { SDbCacheInfo *db = &dbs[i]; - tscDebug("the %dth expired dbFName:%s, dbId:%" PRId64 + tscDebug("the %dth expired db:%s, dbId:%" PRId64 ", vgVersion:%d, cfgVersion:%d, numOfTable:%d, startTs:%" PRId64, i, db->dbFName, db->dbId, db->vgVersion, db->cfgVersion, db->numOfTable, db->stateTs); diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index 128b98ffff..efa793ed35 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -247,7 +247,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 ", connObj:%" 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; @@ -258,7 +258,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 ", connObj:%" 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; @@ -266,7 +266,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)->requestId); + tscDebugL("req:0x%" PRIx64 ", build request, QID:0x%" PRIx64, (*pRequest)->self, (*pRequest)->requestId); return TSDB_CODE_SUCCESS; } @@ -1658,7 +1658,7 @@ int32_t taosConnectImpl(const char* user, const char* auth, const char* db, __ta *pTscObj = NULL; return terrno; } else { - tscInfo("connObj:0x%" PRIx64 ", connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, + tscInfo("conn:0x%" PRIx64 ", connection is opening, connId:%u, dnodeConn:%p, QID:0x%" PRIx64, (*pTscObj)->id, (*pTscObj)->connId, (*pTscObj)->pAppInfo->pTransporter, pRequest->requestId); destroyRequest(pRequest); } @@ -2990,7 +2990,7 @@ TAOS_RES* taosQueryImpl(TAOS* taos, const char* sql, bool validateOnly, int8_t s return NULL; } - tscDebug("connObj:0x%" PRIx64 ", taos_query start with sql:%s", *(int64_t*)taos, sql); + tscDebug("conn:0x%" PRIx64 ", taos_query execute sql:%s", *(int64_t*)taos, sql); SSyncQueryParam* param = taosMemoryCalloc(1, sizeof(SSyncQueryParam)); if (NULL == param) { @@ -3021,7 +3021,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", *(int64_t*)taos, pRequest); + tscDebug("QID:0x%" PRIx64 ", create resultset, taos_query end, req:0x%" PRIx64 " conn:0x%" PRIx64 " res:%p", + pRequest->requestId, pRequest->self, *(int64_t*)taos, pRequest); return pRequest; } diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index dc67d1cf71..eca1b286f6 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -487,10 +487,10 @@ void taos_close_internal(void *taos) { } STscObj *pTscObj = (STscObj *)taos; - tscDebug("connObj:0x%" PRIx64 ", try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); + tscDebug("conn:0x%" PRIx64 ", try to close connection, numOfReq:%d", pTscObj->id, pTscObj->numOfReqs); if (TSDB_CODE_SUCCESS != taosRemoveRef(clientConnRefPool, pTscObj->id)) { - tscError("connObj:0x%" PRIx64 ", failed to remove ref from conn pool", pTscObj->id); + tscError("conn:0x%" PRIx64 ", failed to remove ref from conn pool", pTscObj->id); } } @@ -548,7 +548,7 @@ void taos_free_result(TAOS_RES *res) { if (TD_RES_QUERY(res)) { SRequestObj *pRequest = (SRequestObj *)res; - tscDebug("QID:0x%" PRIx64 ", call taos_free_result to free query", pRequest->requestId); + tscDebug("QID:0x%" PRIx64 ", call taos_free_result to free query, res:%p", pRequest->requestId, res); destroyRequest(pRequest); return; } @@ -1360,7 +1360,7 @@ static void doAsyncQueryFromParse(SMetaData *pResultMeta, void *param, int32_t c SQuery *pQuery = pRequest->pQuery; pRequest->metric.ctgCostUs += taosGetTimestampUs() - pRequest->metric.ctgStart; - qDebug("req:0x%" PRIx64 ", start to continue parse, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, + qDebug("req:0x%" PRIx64 ", continue parse query, QID:0x%" PRIx64 ", code:%s", pRequest->self, pRequest->requestId, tstrerror(code)); if (code == TSDB_CODE_SUCCESS) { diff --git a/source/client/src/clientMonitor.c b/source/client/src/clientMonitor.c index 87b755bb44..884170ecdc 100644 --- a/source/client/src/clientMonitor.c +++ b/source/client/src/clientMonitor.c @@ -361,7 +361,7 @@ void monitorCounterInc(int64_t clusterId, const char* counterName, const char** tscError("clusterId:0x%" PRIx64 ", monitor:%p counter:%s inc failed", clusterId, pMonitor, counterName); goto end; } - tscDebug("clusterId:0x%" PRIx64 ", monitor:%p, counter:%s inc", pMonitor->clusterId, pMonitor, counterName); + tscTrace("clusterId:0x%" PRIx64 ", monitor:%p, counter:%s inc", pMonitor->clusterId, pMonitor, counterName); end: taosWUnLockLatch(&monitorLock); diff --git a/source/client/src/clientMsgHandler.c b/source/client/src/clientMsgHandler.c index 03ace921c5..c88cc00b2e 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("QID:0x%" PRIx64 ", epSet.fqdn[%d]:%s port:%d, connObj:0x%" PRIx64, pRequest->requestId, i, + tscDebug("QID:0x%" PRIx64 ", epSet.fqdn[%d]:%s port:%d, conn:0x%" PRIx64, pRequest->requestId, i, connectRsp.epSet.eps[i].fqdn, connectRsp.epSet.eps[i].port, pTscObj->id); } diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index fe9388db51..2d9001d248 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -1631,20 +1631,20 @@ int stmtClose(TAOS_STMT* stmt) { STMT_DLOG_E("start to free stmt"); - pStmt->queue.stopQueue = true; - - (void)taosThreadMutexLock(&pStmt->queue.mutex); - (void)atomic_add_fetch_64(&pStmt->queue.qRemainNum, 1); - (void)taosThreadCondSignal(&(pStmt->queue.waitCond)); - (void)taosThreadMutexUnlock(&pStmt->queue.mutex); - if (pStmt->bindThreadInUse) { + pStmt->queue.stopQueue = true; + + (void)taosThreadMutexLock(&pStmt->queue.mutex); + (void)atomic_add_fetch_64(&pStmt->queue.qRemainNum, 1); + (void)taosThreadCondSignal(&(pStmt->queue.waitCond)); + (void)taosThreadMutexUnlock(&pStmt->queue.mutex); + (void)taosThreadJoin(pStmt->bindThread, NULL); pStmt->bindThreadInUse = false; - } - (void)taosThreadCondDestroy(&pStmt->queue.waitCond); - (void)taosThreadMutexDestroy(&pStmt->queue.mutex); + (void)taosThreadCondDestroy(&pStmt->queue.waitCond); + (void)taosThreadMutexDestroy(&pStmt->queue.mutex); + } STMT_DLOG("stmt %p closed, stbInterlaceMode:%d, statInfo: ctgGetTbMetaNum=>%" PRId64 ", getCacheTbInfo=>%" PRId64 ", parseSqlNum=>%" PRId64 ", pStmt->stat.bindDataNum=>%" PRId64 diff --git a/source/client/src/clientStmt2.c b/source/client/src/clientStmt2.c index c8b6abfbd1..994be0c2bd 100644 --- a/source/client/src/clientStmt2.c +++ b/source/client/src/clientStmt2.c @@ -1928,16 +1928,19 @@ int stmtClose2(TAOS_STMT2* stmt) { STMT_DLOG_E("start to free stmt"); - pStmt->queue.stopQueue = true; - - (void)taosThreadMutexLock(&pStmt->queue.mutex); - (void)atomic_add_fetch_64(&pStmt->queue.qRemainNum, 1); - (void)taosThreadCondSignal(&(pStmt->queue.waitCond)); - (void)taosThreadMutexUnlock(&pStmt->queue.mutex); - if (pStmt->bindThreadInUse) { + pStmt->queue.stopQueue = true; + + (void)taosThreadMutexLock(&pStmt->queue.mutex); + (void)atomic_add_fetch_64(&pStmt->queue.qRemainNum, 1); + (void)taosThreadCondSignal(&(pStmt->queue.waitCond)); + (void)taosThreadMutexUnlock(&pStmt->queue.mutex); + (void)taosThreadJoin(pStmt->bindThread, NULL); pStmt->bindThreadInUse = false; + + (void)taosThreadCondDestroy(&pStmt->queue.waitCond); + (void)taosThreadMutexDestroy(&pStmt->queue.mutex); } TSC_ERR_RET(taosThreadMutexLock(&pStmt->asyncBindParam.mutex)); @@ -1946,9 +1949,6 @@ int stmtClose2(TAOS_STMT2* stmt) { } TSC_ERR_RET(taosThreadMutexUnlock(&pStmt->asyncBindParam.mutex)); - (void)taosThreadCondDestroy(&pStmt->queue.waitCond); - (void)taosThreadMutexDestroy(&pStmt->queue.mutex); - (void)taosThreadCondDestroy(&pStmt->asyncBindParam.waitCond); (void)taosThreadMutexDestroy(&pStmt->asyncBindParam.mutex); diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c b/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c index d4d209ceef..a29f81b9a8 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c @@ -106,15 +106,15 @@ static void vmProcessQueryQueue(SQueueInfo *pInfo, SRpcMsg *pMsg) { SVnodeObj *pVnode = pInfo->ahandle; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-query queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-query queue", pVnode->vgId, pMsg); int32_t code = vnodeProcessQueryMsg(pVnode->pImpl, pMsg, pInfo); if (code != 0) { if (terrno != 0) code = terrno; - dGError("vgId:%d, msg:%p failed to query since %s", pVnode->vgId, pMsg, tstrerror(code)); + dGError("vgId:%d, msg:%p, failed to query since %s", pVnode->vgId, pMsg, tstrerror(code)); vmSendRsp(pMsg, code); } - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -124,16 +124,16 @@ static void vmProcessStreamQueue(SQueueInfo *pInfo, SRpcMsg *pMsg) { SVnodeObj *pVnode = pInfo->ahandle; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-stream queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-stream queue", pVnode->vgId, pMsg); int32_t code = vnodeProcessStreamMsg(pVnode->pImpl, pMsg, pInfo); if (code != 0) { terrno = code; - dGError("vgId:%d, msg:%p failed to process stream msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), + dGError("vgId:%d, msg:%p, failed to process stream msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), tstrerror(code)); vmSendRsp(pMsg, code); } - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); #endif @@ -153,16 +153,16 @@ static void vmProcessStreamCtrlQueue(SQueueInfo *pInfo, STaosQall* pQall, int32_ SRpcMsg *pMsg = pItem; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-stream-ctrl queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-stream-ctrl queue", pVnode->vgId, pMsg); code = vnodeProcessStreamCtrlMsg(pVnode->pImpl, pMsg, pInfo); if (code != 0) { terrno = code; - dGError("vgId:%d, msg:%p failed to process stream ctrl msg %s since %s", pVnode->vgId, pMsg, + dGError("vgId:%d, msg:%p, failed to process stream ctrl msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), tstrerror(code)); vmSendRsp(pMsg, code); } - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -182,16 +182,16 @@ static void vmProcessStreamChkptQueue(SQueueInfo *pInfo, STaosQall* pQall, int32 SRpcMsg *pMsg = pItem; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-stream-chkpt queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-stream-chkpt queue", pVnode->vgId, pMsg); code = vnodeProcessStreamChkptMsg(pVnode->pImpl, pMsg, pInfo); if (code != 0) { terrno = code; - dGError("vgId:%d, msg:%p failed to process stream chkpt msg %s since %s", pVnode->vgId, pMsg, + dGError("vgId:%d, msg:%p, failed to process stream chkpt msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), tstrerror(code)); vmSendRsp(pMsg, code); } - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -202,17 +202,17 @@ static void vmProcessStreamLongExecQueue(SQueueInfo *pInfo, SRpcMsg *pMsg) { const STraceId *trace = &pMsg->info.traceId; int32_t code = 0; - dGTrace("vgId:%d, msg:%p get from vnode-stream long-exec queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-stream long-exec queue", pVnode->vgId, pMsg); code = vnodeProcessStreamLongExecMsg(pVnode->pImpl, pMsg, pInfo); if (code != 0) { terrno = code; - dGError("vgId:%d, msg:%p failed to process stream msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), + dGError("vgId:%d, msg:%p, failed to process stream msg %s since %s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType), tstrerror(code)); vmSendRsp(pMsg, code); } - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -224,7 +224,7 @@ static void vmProcessFetchQueue(SQueueInfo *pInfo, STaosQall *qall, int32_t numO for (int32_t i = 0; i < numOfMsgs; ++i) { if (taosGetQitem(qall, (void **)&pMsg) == 0) continue; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-fetch queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-fetch queue", pVnode->vgId, pMsg); terrno = 0; int32_t code = vnodeProcessFetchMsg(pVnode->pImpl, pMsg, pInfo); @@ -234,15 +234,15 @@ static void vmProcessFetchQueue(SQueueInfo *pInfo, STaosQall *qall, int32_t numO } if (code == TSDB_CODE_WAL_LOG_NOT_EXIST) { - dGDebug("vnodeProcessFetchMsg vgId:%d, msg:%p failed to fetch since %s", pVnode->vgId, pMsg, terrstr()); + dGDebug("vgId:%d, msg:%p, failed to fetch since %s [vnodeProcessFetchMsg]", pVnode->vgId, pMsg, terrstr()); } else { - dGError("vnodeProcessFetchMsg vgId:%d, msg:%p failed to fetch since %s", pVnode->vgId, pMsg, terrstr()); + dGError("vgId:%d, msg:%p, failed to fetch since %s [vnodeProcessFetchMsg]", pVnode->vgId, pMsg, terrstr()); } vmSendRsp(pMsg, code); } - dGTrace("vnodeProcessFetchMsg vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x [vnodeProcessFetchMsg]", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -255,10 +255,10 @@ static void vmProcessSyncQueue(SQueueInfo *pInfo, STaosQall *qall, int32_t numOf for (int32_t i = 0; i < numOfMsgs; ++i) { if (taosGetQitem(qall, (void **)&pMsg) == 0) continue; const STraceId *trace = &pMsg->info.traceId; - dGTrace("vgId:%d, msg:%p get from vnode-sync queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, get from vnode-sync queue", pVnode->vgId, pMsg); int32_t code = vnodeProcessSyncMsg(pVnode->pImpl, pMsg, NULL); // no response here - dGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->vgId, pMsg, code); + dGTrace("vgId:%d, msg:%p, is freed, code:0x%x", pVnode->vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -306,7 +306,7 @@ static int32_t vmPutMsgToQueue(SVnodeMgmt *pMgmt, SRpcMsg *pMsg, EQueueType qtyp SVnodeObj *pVnode = NULL; code = vmAcquireVnodeWrapper(pMgmt, pHead->vgId, &pVnode); if (code != 0) { - dGDebug("vgId:%d, msg:%p failed to put into vnode queue since %s, type:%s qtype:%d contLen:%d", pHead->vgId, pMsg, + dGDebug("vgId:%d, msg:%p, failed to put into vnode queue since %s, type:%s qtype:%d contLen:%d", pHead->vgId, pMsg, tstrerror(code), TMSG_INFO(pMsg->msgType), qtype, pHead->contLen); return code; } @@ -315,61 +315,64 @@ static int32_t vmPutMsgToQueue(SVnodeMgmt *pMgmt, SRpcMsg *pMsg, EQueueType qtyp case QUERY_QUEUE: code = vnodePreprocessQueryMsg(pVnode->pImpl, pMsg); if (code) { - dError("vgId:%d, msg:%p preprocess query msg failed since %s", pVnode->vgId, pMsg, tstrerror(code)); + dError("vgId:%d, msg:%p, preprocess query msg failed since %s", pVnode->vgId, pMsg, tstrerror(code)); } else { - dGTrace("vgId:%d, msg:%p put into vnode-query queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-query queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pQueryQ, pMsg); } break; case STREAM_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-stream queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-stream queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pStreamQ, pMsg); break; case STREAM_CTRL_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-stream-ctrl queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-stream-ctrl queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pStreamCtrlQ, pMsg); break; case STREAM_LONG_EXEC_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-stream-long-exec queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-stream-long-exec queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pStreamLongExecQ, pMsg); break; case STREAM_CHKPT_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-stream-chkpt queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-stream-chkpt queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pStreamChkQ, pMsg); break; case FETCH_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-fetch queue", pVnode->vgId, pMsg); + dGTrace("vgId:%d, msg:%p, put into vnode-fetch queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pFetchQ, pMsg); break; case WRITE_QUEUE: if (!vmDataSpaceSufficient(pVnode)) { code = TSDB_CODE_NO_ENOUGH_DISKSPACE; - dError("vgId:%d, msg:%p put into vnode-write queue failed since %s", pVnode->vgId, pMsg, tstrerror(code)); + dError("vgId:%d, msg:%p, failed to put into vnode-write queue since %s, type:%s", pVnode->vgId, pMsg, + tstrerror(code), TMSG_INFO(pMsg->msgType)); break; } if (pMsg->msgType == TDMT_VND_SUBMIT && (grantCheck(TSDB_GRANT_STORAGE) != TSDB_CODE_SUCCESS)) { code = TSDB_CODE_VND_NO_WRITE_AUTH; - dDebug("vgId:%d, msg:%p put into vnode-write queue failed since %s", pVnode->vgId, pMsg, tstrerror(code)); + dDebug("vgId:%d, msg:%p, failed to put into vnode-write queue since %s, type:%s", pVnode->vgId, pMsg, + tstrerror(code), TMSG_INFO(pMsg->msgType)); break; } if (pMsg->msgType != TDMT_VND_ALTER_CONFIRM && pVnode->disable) { - dDebug("vgId:%d, msg:%p put into vnode-write queue failed since its disable", pVnode->vgId, pMsg); + dDebug("vgId:%d, msg:%p, failed to put into vnode-write queue since its disable, type:%s", pVnode->vgId, pMsg, + TMSG_INFO(pMsg->msgType)); code = TSDB_CODE_VND_STOPPED; break; } - dGTrace("vgId:%d, msg:%p put into vnode-write queue", pVnode->vgId, pMsg); + dGDebug("vgId:%d, msg:%p, put into vnode-write queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pWriteW.queue, pMsg); break; case SYNC_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-sync queue", pVnode->vgId, pMsg); + dGDebug("vgId:%d, msg:%p, put into vnode-sync queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pSyncW.queue, pMsg); break; case SYNC_RD_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-sync-rd queue", pVnode->vgId, pMsg); + dGDebug("vgId:%d, msg:%p, put into vnode-sync-rd queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pSyncRdW.queue, pMsg); break; case APPLY_QUEUE: - dGTrace("vgId:%d, msg:%p put into vnode-apply queue", pVnode->vgId, pMsg); + dGDebug("vgId:%d, msg:%p, put into vnode-apply queue, type:%s", pVnode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = taosWriteQitem(pVnode->pApplyW.queue, pMsg); break; default: @@ -431,7 +434,7 @@ int32_t vmPutRpcMsgToQueue(SVnodeMgmt *pMgmt, EQueueType qtype, SRpcMsg *pRpc) { } SMsgHead *pHead = pRpc->pCont; - dTrace("vgId:%d, msg:%p is created, type:%s len:%d", pHead->vgId, pMsg, TMSG_INFO(pRpc->msgType), pRpc->contLen); + dTrace("vgId:%d, msg:%p, is created, type:%s len:%d", pHead->vgId, pMsg, TMSG_INFO(pRpc->msgType), pRpc->contLen); pHead->contLen = htonl(pHead->contLen); pHead->vgId = htonl(pHead->vgId); diff --git a/source/dnode/mnode/impl/src/mndMain.c b/source/dnode/mnode/impl/src/mndMain.c index 983694b106..6945850fec 100644 --- a/source/dnode/mnode/impl/src/mndMain.c +++ b/source/dnode/mnode/impl/src/mndMain.c @@ -854,11 +854,11 @@ int32_t mndProcessSyncMsg(SRpcMsg *pMsg) { SSyncMgmt *pMgmt = &pMnode->syncMgmt; const STraceId *trace = &pMsg->info.traceId; - mGTrace("vgId:1, sync msg:%p will be processed, type:%s", pMsg, TMSG_INFO(pMsg->msgType)); + mGTrace("vgId:1, process sync msg:%p, type:%s", pMsg, TMSG_INFO(pMsg->msgType)); int32_t code = syncProcessMsg(pMgmt->sync, pMsg); if (code != 0) { - mGError("vgId:1, failed to process sync msg:%p type:%s, reason: %s, code:0x%x", pMsg, TMSG_INFO(pMsg->msgType), + mGError("vgId:1, failed to process sync msg:%p type:%s since %s, code:0x%x", pMsg, TMSG_INFO(pMsg->msgType), tstrerror(code), code); } diff --git a/source/dnode/vnode/src/inc/vnd.h b/source/dnode/vnode/src/inc/vnd.h index 79adfd58f3..3888101ba6 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(trace, param, ...) do { if (vDebugFlag & DEBUG_TRACE) { vTrace(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define vGFatal(trace, param, ...) do { if (vDebugFlag & DEBUG_FATAL) { vFatal(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define vGError(trace, param, ...) do { if (vDebugFlag & DEBUG_ERROR) { vError(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define vGWarn(trace, param, ...) do { if (vDebugFlag & DEBUG_WARN) { vWarn(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define vGInfo(trace, param, ...) do { if (vDebugFlag & DEBUG_INFO) { vInfo(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define vGDebug(trace, param, ...) do { if (vDebugFlag & DEBUG_DEBUG) { vDebug(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) // clang-format on diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index 335f8abcd3..b1a3297ace 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -622,10 +622,11 @@ int32_t vnodeProcessWriteMsg(SVnode *pVnode, SRpcMsg *pMsg, int64_t ver, SRpcMsg return terrno = TSDB_CODE_VND_DUP_REQUEST; } - vDebug("vgId:%d, start to process write request %s, index:%" PRId64 ", applied:%" PRId64 ", state.applyTerm:%" PRId64 - ", conn.applyTerm:%" PRId64 ", contLen:%d", - TD_VID(pVnode), TMSG_INFO(pMsg->msgType), ver, pVnode->state.applied, pVnode->state.applyTerm, - pMsg->info.conn.applyTerm, pMsg->contLen); + vGDebug(&pMsg->info.traceId, + "vgId:%d, index:%" PRId64 ", process write request:%s, applied:%" PRId64 ", state.applyTerm:%" PRId64 + ", conn.applyTerm:%" PRId64 ", contLen:%d", + TD_VID(pVnode), ver, TMSG_INFO(pMsg->msgType), pVnode->state.applied, pVnode->state.applyTerm, + pMsg->info.conn.applyTerm, pMsg->contLen); if (!(pVnode->state.applyTerm <= pMsg->info.conn.applyTerm)) { return terrno = TSDB_CODE_INTERNAL_ERROR; @@ -807,8 +808,7 @@ int32_t vnodeProcessWriteMsg(SVnode *pVnode, SRpcMsg *pMsg, int64_t ver, SRpcMsg return TSDB_CODE_INVALID_MSG; } - vTrace("vgId:%d, process %s request, code:0x%x index:%" PRId64, TD_VID(pVnode), TMSG_INFO(pMsg->msgType), pRsp->code, - ver); + vGDebug(&pMsg->info.traceId, "vgId:%d, index:%" PRId64 ", msg processed, code:0x%x", TD_VID(pVnode), ver, pRsp->code); walApplyVer(pVnode->pWal, ver); @@ -1081,7 +1081,7 @@ static int32_t vnodeProcessTrimReq(SVnode *pVnode, int64_t ver, void *pReq, int3 goto _exit; } - vInfo("vgId:%d, trim vnode request will be processed, time:%d", pVnode->config.vgId, trimReq.timestamp); + vInfo("vgId:%d, process trim vnode request, time:%d", pVnode->config.vgId, trimReq.timestamp); code = vnodeAsyncRetention(pVnode, trimReq.timestamp); @@ -1101,7 +1101,7 @@ static int32_t vnodeProcessS3MigrateReq(SVnode *pVnode, int64_t ver, void *pReq, goto _exit; } - vInfo("vgId:%d, s3migrate vnode request will be processed, time:%d", pVnode->config.vgId, s3migrateReq.timestamp); + vInfo("vgId:%d, process s3migrate vnode request, time:%d", pVnode->config.vgId, s3migrateReq.timestamp); code = vnodeAsyncS3Migrate(pVnode, s3migrateReq.timestamp); @@ -1123,7 +1123,7 @@ static int32_t vnodeProcessDropTtlTbReq(SVnode *pVnode, int64_t ver, void *pReq, } if (ttlReq.nUids != 0) { - vInfo("vgId:%d, drop ttl table req will be processed, time:%d, ntbUids:%d", pVnode->config.vgId, + vInfo("vgId:%d, process drop ttl table request, time:%d, ntbUids:%d", pVnode->config.vgId, ttlReq.timestampSec, ttlReq.nUids); } @@ -2070,7 +2070,8 @@ static int32_t vnodeProcessSubmitReq(SVnode *pVnode, int64_t ver, void *pReq, in } } - vDebug("vgId:%d, submit block size %d", TD_VID(pVnode), (int32_t)taosArrayGetSize(pSubmitReq->aSubmitTbData)); + vGDebug(pOriginalMsg ? &pOriginalMsg->info.traceId : NULL, "vgId:%d, index:%" PRId64 ", submit block, rows:%d", + TD_VID(pVnode), ver, (int32_t)taosArrayGetSize(pSubmitReq->aSubmitTbData)); // loop to handle for (int32_t i = 0; i < TARRAY_SIZE(pSubmitReq->aSubmitTbData); ++i) { diff --git a/source/dnode/vnode/src/vnd/vnodeSync.c b/source/dnode/vnode/src/vnd/vnodeSync.c index 0fa12ada99..1df6558879 100644 --- a/source/dnode/vnode/src/vnd/vnodeSync.c +++ b/source/dnode/vnode/src/vnd/vnodeSync.c @@ -25,8 +25,7 @@ static inline bool vnodeIsMsgWeak(tmsg_t type) { return false; } static inline void vnodeWaitBlockMsg(SVnode *pVnode, const SRpcMsg *pMsg) { - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, msg:%p wait block, type:%s sec:%d seq:%" PRId64, pVnode->config.vgId, pMsg, + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, wait block, type:%s sec:%d seq:%" PRId64, pVnode->config.vgId, pMsg, TMSG_INFO(pMsg->msgType), pVnode->blockSec, pVnode->blockSeq); if (tsem_wait(&pVnode->syncSem) != 0) { vError("vgId:%d, failed to wait sem", pVnode->config.vgId); @@ -35,10 +34,9 @@ static inline void vnodeWaitBlockMsg(SVnode *pVnode, const SRpcMsg *pMsg) { static inline void vnodePostBlockMsg(SVnode *pVnode, const SRpcMsg *pMsg) { if (vnodeIsMsgBlock(pMsg->msgType)) { - const STraceId *trace = &pMsg->info.traceId; (void)taosThreadMutexLock(&pVnode->lock); if (pVnode->blocked) { - vGTrace("vgId:%d, msg:%p post block, type:%s sec:%d seq:%" PRId64, pVnode->config.vgId, pMsg, + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, post block, type:%s sec:%d seq:%" PRId64, pVnode->config.vgId, pMsg, TMSG_INFO(pMsg->msgType), pVnode->blockSec, pVnode->blockSeq); pVnode->blocked = false; pVnode->blockSec = 0; @@ -55,12 +53,11 @@ void vnodeRedirectRpcMsg(SVnode *pVnode, SRpcMsg *pMsg, int32_t code) { SEpSet newEpSet = {0}; syncGetRetryEpSet(pVnode->sync, &newEpSet); - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, msg:%p is redirect since not leader, numOfEps:%d inUse:%d", pVnode->config.vgId, pMsg, - newEpSet.numOfEps, newEpSet.inUse); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, is redirect since not leader, numOfEps:%d inUse:%d", + pVnode->config.vgId, pMsg, newEpSet.numOfEps, newEpSet.inUse); for (int32_t i = 0; i < newEpSet.numOfEps; ++i) { - vGTrace("vgId:%d, msg:%p redirect:%d ep:%s:%u", pVnode->config.vgId, pMsg, i, newEpSet.eps[i].fqdn, - newEpSet.eps[i].port); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, redirect:%d ep:%s:%u", pVnode->config.vgId, pMsg, i, + newEpSet.eps[i].fqdn, newEpSet.eps[i].port); } pMsg->info.hasEpSet = 1; @@ -86,8 +83,8 @@ static void inline vnodeHandleWriteMsg(SVnode *pVnode, SRpcMsg *pMsg) { SRpcMsg rsp = {.code = pMsg->code, .info = pMsg->info}; if (vnodeProcessWriteMsg(pVnode, pMsg, pMsg->info.conn.applyIndex, &rsp) < 0) { rsp.code = terrno; - const STraceId *trace = &pMsg->info.traceId; - vGError("vgId:%d, msg:%p failed to apply right now since %s", pVnode->config.vgId, pMsg, terrstr()); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to apply right now since %s", pVnode->config.vgId, pMsg, + terrstr()); } if (rsp.info.handle != NULL) { tmsgSendRsp(&rsp); @@ -107,8 +104,8 @@ static void vnodeHandleProposeError(SVnode *pVnode, SRpcMsg *pMsg, int32_t code) tmsgSendRsp(&rsp); } } else { - const STraceId *trace = &pMsg->info.traceId; - vGError("vgId:%d, msg:%p failed to propose since %s, code:0x%x", pVnode->config.vgId, pMsg, tstrerror(code), code); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to propose since %s, code:0x%x", pVnode->config.vgId, pMsg, + tstrerror(code), code); SRpcMsg rsp = {.code = code, .info = pMsg->info}; if (rsp.info.handle != NULL) { tmsgSendRsp(&rsp); @@ -206,8 +203,7 @@ static void inline vnodeProposeBatchMsg(SVnode *pVnode, SRpcMsg **pMsgArr, bool for (int32_t i = 0; i < *arrSize; ++i) { SRpcMsg *pMsg = pMsgArr[i]; - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, msg:%p is freed, code:0x%x", pVnode->config.vgId, pMsg, code); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, is freed, code:0x%x", pVnode->config.vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -230,12 +226,11 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) bool isWeak = vnodeIsMsgWeak(pMsg->msgType); bool isBlock = vnodeIsMsgBlock(pMsg->msgType); - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, msg:%p get from vnode-write queue, weak:%d block:%d msg:%d:%d pos:%d, handle:%p", vgId, pMsg, + vGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, get from vnode-write queue, weak:%d block:%d msg:%d:%d pos:%d, handle:%p", vgId, pMsg, isWeak, isBlock, msg, numOfMsgs, arrayPos, pMsg->info.handle); if (!pVnode->restored) { - vGWarn("vgId:%d, msg:%p failed to process since restore not finished, type:%s", vgId, pMsg, + vGWarn(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to process since restore not finished, type:%s", vgId, pMsg, TMSG_INFO(pMsg->msgType)); terrno = TSDB_CODE_SYN_RESTORING; vnodeHandleProposeError(pVnode, pMsg, TSDB_CODE_SYN_RESTORING); @@ -245,7 +240,7 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) } if (pMsgArr == NULL || pIsWeakArr == NULL) { - vGError("vgId:%d, msg:%p failed to process since out of memory, type:%s", vgId, pMsg, TMSG_INFO(pMsg->msgType)); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to process since out of memory, type:%s", vgId, pMsg, TMSG_INFO(pMsg->msgType)); terrno = TSDB_CODE_OUT_OF_MEMORY; vnodeHandleProposeError(pVnode, pMsg, terrno); rpcFreeCont(pMsg->pCont); @@ -258,7 +253,7 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) code = vnodePreProcessWriteMsg(pVnode, pMsg); if (code != 0) { - vGError("vgId:%d, msg:%p failed to pre-process since %s", vgId, pMsg, terrstr()); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to pre-process since %s", vgId, pMsg, terrstr()); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); continue; @@ -294,12 +289,11 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) if (taosGetQitem(qall, (void **)&pMsg) == 0) continue; bool isWeak = vnodeIsMsgWeak(pMsg->msgType); - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, msg:%p get from vnode-write queue, weak:%d block:%d msg:%d:%d, handle:%p", vgId, pMsg, isWeak, - vnodeIsMsgBlock(pMsg->msgType), msg, numOfMsgs, pMsg->info.handle); + vGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, get from vnode-write queue, weak:%d block:%d msg:%d:%d, handle:%p", + vgId, pMsg, isWeak, vnodeIsMsgBlock(pMsg->msgType), msg, numOfMsgs, pMsg->info.handle); if (!pVnode->restored) { - vGWarn("vgId:%d, msg:%p failed to process since restore not finished, type:%s", vgId, pMsg, + vGWarn(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to process since restore not finished, type:%s", vgId, pMsg, TMSG_INFO(pMsg->msgType)); vnodeHandleProposeError(pVnode, pMsg, TSDB_CODE_SYN_RESTORING); rpcFreeCont(pMsg->pCont); @@ -313,7 +307,7 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) code = vnodePreProcessWriteMsg(pVnode, pMsg); if (code != 0) { if (code != TSDB_CODE_MSG_PREPROCESSED) { - vGError("vgId:%d, msg:%p failed to pre-process since %s", vgId, pMsg, tstrerror(code)); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to pre-process since %s", vgId, pMsg, tstrerror(code)); } vnodeHandleProposeError(pVnode, pMsg, code); rpcFreeCont(pMsg->pCont); @@ -323,7 +317,7 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) code = vnodeProposeMsg(pVnode, pMsg, isWeak); - vGTrace("vgId:%d, msg:%p is freed, code:0x%x", vgId, pMsg, code); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, is freed, code:0x%x", vgId, pMsg, code); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } @@ -339,15 +333,14 @@ void vnodeApplyWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) { for (int32_t i = 0; i < numOfMsgs; ++i) { if (taosGetQitem(qall, (void **)&pMsg) == 0) continue; - const STraceId *trace = &pMsg->info.traceId; if (vnodeIsMsgBlock(pMsg->msgType)) { - vGTrace("vgId:%d, msg:%p get from vnode-apply queue, type:%s handle:%p index:%" PRId64 + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, get from vnode-apply queue, type:%s handle:%p index:%" PRId64 ", blocking msg obtained sec:%d seq:%" PRId64, vgId, pMsg, TMSG_INFO(pMsg->msgType), pMsg->info.handle, pMsg->info.conn.applyIndex, pVnode->blockSec, pVnode->blockSeq); } else { - vGTrace("vgId:%d, msg:%p get from vnode-apply queue, type:%s handle:%p index:%" PRId64, vgId, pMsg, + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, get from vnode-apply queue, type:%s handle:%p index:%" PRId64, vgId, pMsg, TMSG_INFO(pMsg->msgType), pMsg->info.handle, pMsg->info.conn.applyIndex); } @@ -355,7 +348,7 @@ void vnodeApplyWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) { if (rsp.code == 0) { if (vnodeProcessWriteMsg(pVnode, pMsg, pMsg->info.conn.applyIndex, &rsp) < 0) { rsp.code = terrno; - vGError("vgId:%d, msg:%p failed to apply since %s, index:%" PRId64, vgId, pMsg, terrstr(), + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to apply since %s, index:%" PRId64, vgId, pMsg, terrstr(), pMsg->info.conn.applyIndex); } } @@ -369,20 +362,20 @@ void vnodeApplyWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) { } } - vGTrace("vgId:%d, msg:%p is freed, code:0x%x index:%" PRId64, vgId, pMsg, rsp.code, pMsg->info.conn.applyIndex); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, is freed, code:0x%x index:%" PRId64, vgId, pMsg, rsp.code, + pMsg->info.conn.applyIndex); rpcFreeCont(pMsg->pCont); taosFreeQitem(pMsg); } } int32_t vnodeProcessSyncMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) { - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, sync msg:%p will be processed, type:%s", pVnode->config.vgId, pMsg, TMSG_INFO(pMsg->msgType)); + vGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, get from vnode-sync queue, type:%s", pVnode->config.vgId, pMsg, TMSG_INFO(pMsg->msgType)); int32_t code = syncProcessMsg(pVnode->sync, pMsg); if (code != 0) { - vGError("vgId:%d, failed to process sync msg:%p type:%s, reason: %s", pVnode->config.vgId, pMsg, - TMSG_INFO(pMsg->msgType), tstrerror(code)); + vGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to process since %s, type:%s", pVnode->config.vgId, pMsg, tstrerror(code), + TMSG_INFO(pMsg->msgType)); } return code; @@ -444,8 +437,8 @@ static int32_t vnodeSyncApplyMsg(const SSyncFSM *pFsm, SRpcMsg *pMsg, const SFsm pMsg->info.conn.applyIndex = pMeta->index; pMsg->info.conn.applyTerm = pMeta->term; - const STraceId *trace = &pMsg->info.traceId; - vGTrace("vgId:%d, commit-cb is excuted, fsm:%p, index:%" PRId64 ", term:%" PRIu64 ", msg-index:%" PRId64 + vGTrace(&pMsg->info.traceId, + "vgId:%d, commit-cb is excuted, fsm:%p, index:%" PRId64 ", term:%" PRIu64 ", msg-index:%" PRId64 ", weak:%d, code:%d, state:%d %s, type:%s code:0x%x", pVnode->config.vgId, pFsm, pMeta->index, pMeta->term, pMsg->info.conn.applyIndex, pMeta->isWeak, pMeta->code, pMeta->state, syncStr(pMeta->state), TMSG_INFO(pMsg->msgType), pMsg->code); @@ -460,8 +453,7 @@ static int32_t vnodeSyncCommitMsg(const SSyncFSM *pFsm, SRpcMsg *pMsg, SFsmCbMet return vnodeSyncApplyMsg(pFsm, pMsg, pMeta); } - const STraceId *trace = &pMsg->info.traceId; - SVnode *pVnode = pFsm->data; + SVnode *pVnode = pFsm->data; vnodePostBlockMsg(pVnode, pMsg); SRpcMsg rsp = {.code = pMsg->code, .info = pMsg->info}; @@ -469,7 +461,8 @@ static int32_t vnodeSyncCommitMsg(const SSyncFSM *pFsm, SRpcMsg *pMsg, SFsmCbMet tmsgSendRsp(&rsp); } - vGTrace("vgId:%d, msg:%p is freed, code:0x%x index:%" PRId64, TD_VID(pVnode), pMsg, rsp.code, pMeta->index); + vGTrace(&pMsg->info.traceId, "vgId:%d, msg:%p, is freed, code:0x%x index:%" PRId64, TD_VID(pVnode), pMsg, rsp.code, + pMeta->index); rpcFreeCont(pMsg->pCont); pMsg->pCont = NULL; return 0; diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index 09021e4d27..a475cca52c 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -847,19 +847,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(param ", ctg:%p" , __VA_ARGS__, pCtg) +#define ctgError(param, ...) qError(param ", ctg:%p" , __VA_ARGS__, pCtg) +#define ctgWarn(param, ...) qWarn (param ", ctg:%p" , __VA_ARGS__, pCtg) +#define ctgInfo(param, ...) qInfo (param ", ctg:%p" , __VA_ARGS__, pCtg) +#define ctgDebug(param, ...) qDebug(param ", ctg:%p" , __VA_ARGS__, pCtg) +#define ctgTrace(param, ...) qTrace(param ", ctg:%p" , __VA_ARGS__, pCtg) -#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:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) +#define ctgTaskError(param, ...) qError("QID:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) +#define ctgTaskWarn(param, ...) qWarn ("QID:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) +#define ctgTaskInfo(param, ...) qInfo ("QID:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) +#define ctgTaskDebug(param, ...) qDebug("QID:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) +#define ctgTaskTrace(param, ...) qTrace("QID:0x%" PRIx64 ", " param ", ctg:%p", pTask->pJob->queryId, __VA_ARGS__, pCtg) #define CTG_LOCK_DEBUG(...) \ do { \ @@ -889,9 +889,9 @@ typedef struct SCtgCacheItemInfo { qError("invalid lock value before read lock"); \ break; \ } \ - CTG_LOCK_DEBUG("CTG RLOCK%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg rlock:%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ taosRLockLatch(_lock); \ - CTG_LOCK_DEBUG("CTG RLOCK%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg rlock:%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ if (atomic_load_32((_lock)) <= 0) { \ qError("invalid lock value after read lock"); \ break; \ @@ -901,9 +901,9 @@ typedef struct SCtgCacheItemInfo { qError("invalid lock value before write lock"); \ break; \ } \ - CTG_LOCK_DEBUG("CTG WLOCK%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg wlock:%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ taosWLockLatch(_lock); \ - CTG_LOCK_DEBUG("CTG WLOCK%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg wlock:%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ if (atomic_load_32((_lock)) != TD_RWLATCH_WRITE_FLAG_COPY) { \ qError("invalid lock value after write lock"); \ break; \ @@ -918,9 +918,9 @@ typedef struct SCtgCacheItemInfo { qError("invalid lock value before read unlock"); \ break; \ } \ - CTG_LOCK_DEBUG("CTG RULOCK%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg rulock:%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ taosRUnLockLatch(_lock); \ - CTG_LOCK_DEBUG("CTG RULOCK%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg rulock:%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ if (atomic_load_32((_lock)) < 0) { \ qError("invalid lock value after read unlock"); \ break; \ @@ -930,9 +930,9 @@ typedef struct SCtgCacheItemInfo { qError("invalid lock value before write unlock"); \ break; \ } \ - CTG_LOCK_DEBUG("CTG WULOCK%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg wulock:%p:%d, %s:%d B", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ taosWUnLockLatch(_lock); \ - CTG_LOCK_DEBUG("CTG WULOCK%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ + CTG_LOCK_DEBUG("ctg wulock:%p:%d, %s:%d E", (_lock), atomic_load_32(_lock), __FILE__, __LINE__); \ if (atomic_load_32((_lock)) < 0) { \ qError("invalid lock value after write unlock"); \ break; \ @@ -969,20 +969,20 @@ typedef struct SCtgCacheItemInfo { do { \ int32_t __code = c; \ CTG_UNLOCK(CTG_READ, &gCtgMgmt.lock); \ - CTG_API_DEBUG("CTG API leave %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api leave %s", __FUNCTION__); \ CTG_RET(__code); \ } while (0) #define CTG_API_NLEAVE() \ do { \ CTG_UNLOCK(CTG_READ, &gCtgMgmt.lock); \ - CTG_API_DEBUG("CTG API leave %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api leave %s", __FUNCTION__); \ return; \ } while (0) #define CTG_API_ENTER() \ do { \ - CTG_API_DEBUG("CTG API enter %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api enter %s", __FUNCTION__); \ CTG_LOCK(CTG_READ, &gCtgMgmt.lock); \ if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) { \ CTG_API_LEAVE(TSDB_CODE_CTG_OUT_OF_SERVICE); \ @@ -991,7 +991,7 @@ typedef struct SCtgCacheItemInfo { #define CTG_API_NENTER() \ do { \ - CTG_API_DEBUG("CTG API enter %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api enter %s", __FUNCTION__); \ CTG_LOCK(CTG_READ, &gCtgMgmt.lock); \ if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) { \ CTG_API_NLEAVE(); \ @@ -1000,7 +1000,7 @@ typedef struct SCtgCacheItemInfo { #define CTG_API_JENTER() \ do { \ - CTG_API_DEBUG("CTG API enter %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api enter %s", __FUNCTION__); \ CTG_LOCK(CTG_READ, &gCtgMgmt.lock); \ if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) { \ CTG_ERR_JRET(TSDB_CODE_CTG_OUT_OF_SERVICE); \ @@ -1010,13 +1010,13 @@ typedef struct SCtgCacheItemInfo { #define CTG_API_LEAVE_NOLOCK(c) \ do { \ int32_t __code = c; \ - CTG_API_DEBUG("CTG API leave %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api leave %s", __FUNCTION__); \ CTG_RET(__code); \ } while (0) #define CTG_API_ENTER_NOLOCK() \ do { \ - CTG_API_DEBUG("CTG API enter %s", __FUNCTION__); \ + CTG_API_DEBUG("ctg api enter %s", __FUNCTION__); \ if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) { \ CTG_API_LEAVE_NOLOCK(TSDB_CODE_CTG_OUT_OF_SERVICE); \ } \ diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 1673e9977e..c527308598 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -952,7 +952,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); + qTrace("ctg:%p, get catalog handle from cache, clusterId:0x%" PRIx64, *ctg, clusterId); CTG_API_LEAVE(TSDB_CODE_SUCCESS); } @@ -992,11 +992,11 @@ int32_t catalogGetHandle(int64_t clusterId, SCatalog** catalogHandle) { continue; } - qError("taosHashPut CTG to cache failed, clusterId:0x%" PRIx64, clusterId); + qError("taosHashPut catalog to cache failed, clusterId:0x%" PRIx64, clusterId); CTG_ERR_JRET(TSDB_CODE_CTG_INTERNAL_ERROR); } - qDebug("CTG:%p, add CTG to cache, clusterId:0x%" PRIx64, clusterCtg, clusterId); + qDebug("ctg:%p, add catalog to cache, clusterId:0x%" PRIx64, clusterCtg, clusterId); break; } diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index c43c414d1c..cf60437508 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -77,8 +77,8 @@ 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, - ctgTaskTypeStr(task.type), name->tname); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; } @@ -110,8 +110,8 @@ 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, - ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbMetaNum); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbMetaNum); return TSDB_CODE_SUCCESS; } @@ -138,8 +138,8 @@ 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, - ctgTaskTypeStr(task.type), dbFName); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, db:%s", pJob->queryId, pJob->refId, + taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; } @@ -166,8 +166,8 @@ 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, - ctgTaskTypeStr(task.type), dbFName); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, db:%s", pJob->queryId, pJob->refId, + taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; } @@ -194,8 +194,8 @@ 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, - ctgTaskTypeStr(task.type), dbFName); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, db:%s", pJob->queryId, pJob->refId, + taskIdx, ctgTaskTypeStr(task.type), dbFName); return TSDB_CODE_SUCCESS; } @@ -228,8 +228,8 @@ 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, - ctgTaskTypeStr(task.type), name->tname); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, tableName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; } @@ -261,8 +261,8 @@ 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, - ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbHashNum); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbHashNum); return TSDB_CODE_SUCCESS; } @@ -280,7 +280,8 @@ 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 ", job:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, pJob->refId, taskIdx, + ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -298,7 +299,8 @@ 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 ", job:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, pJob->refId, taskIdx, + ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -325,8 +327,8 @@ 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, - ctgTaskTypeStr(task.type), name); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, indexFName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; } @@ -353,8 +355,8 @@ 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, - ctgTaskTypeStr(task.type), name); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, udfName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name); return TSDB_CODE_SUCCESS; } @@ -381,8 +383,8 @@ 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, - ctgTaskTypeStr(task.type), user->user); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, user:%s", pJob->queryId, pJob->refId, + taskIdx, ctgTaskTypeStr(task.type), user->user); return TSDB_CODE_SUCCESS; } @@ -399,7 +401,8 @@ 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 ", job:0x%" PRIx64 ", the %dth task type %s initialized", pJob->queryId, pJob->refId, taskIdx, + ctgTaskTypeStr(task.type)); return TSDB_CODE_SUCCESS; } @@ -431,8 +434,8 @@ 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, - ctgTaskTypeStr(task.type), name->tname); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; } @@ -464,8 +467,8 @@ 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, - ctgTaskTypeStr(task.type), name->tname); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; } @@ -497,8 +500,8 @@ 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, - ctgTaskTypeStr(task.type), name->tname); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, tbName:%s", pJob->queryId, + pJob->refId, taskIdx, ctgTaskTypeStr(task.type), name->tname); return TSDB_CODE_SUCCESS; } @@ -531,8 +534,8 @@ 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, - ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->viewNum); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", the %dth task type %s initialized, dbNum:%lu, viewNum:%d", + pJob->queryId, pJob->refId, taskIdx, ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->viewNum); return TSDB_CODE_SUCCESS; } @@ -1093,7 +1096,8 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const } 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 ", job:0x%" PRIx64 + ", catalog job initialized, task num:%d, forceUpdate:%d, elapsed time:%.2f ms", pJob->queryId, pJob->refId, taskNum, pReq->forceUpdate, el); return TSDB_CODE_SUCCESS; @@ -1542,16 +1546,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 ", catalog start to call user cb with rsp, code:%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 ", catalog 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 ", job:0x%" PRIx64 ", remove catalog job from jobPool failed, error:%s", pJob->queryId, refId, tstrerror(code)); } @@ -1562,7 +1566,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 ", catalog job errCode updated to %s", pJob->queryId, tstrerror(errCode)); return; } @@ -1574,7 +1578,8 @@ int32_t ctgHandleTaskEnd(SCtgTask* pTask, int32_t rspCode) { return TSDB_CODE_SUCCESS; } - qDebug("QID:0x%" PRIx64 ", task:%d end with result:%s", pJob->queryId, pTask->taskId, tstrerror(rspCode)); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", task:%d end with result:%s", pJob->queryId, pJob->refId, pTask->taskId, + tstrerror(rspCode)); pTask->code = rspCode; pTask->status = CTG_TASK_DONE; @@ -1583,7 +1588,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 ", job:0x%" PRIx64 ", task done:%d, total:%d", pJob->queryId, pJob->refId, taskDone, (int32_t)taosArrayGetSize(pJob->pTasks)); ctgUpdateJobErrCode(pJob, rspCode); @@ -1630,7 +1635,7 @@ int32_t ctgHandleGetTbMetaRsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf SVgroupInfo vgInfo = {0}; CTG_ERR_JRET(ctgGetVgInfoFromHashValue(pCtg, &pConn->mgmtEps, pOut->dbVgroup, pName, &vgInfo)); - ctgDebug("will refresh tbmeta, not supposed to be stb, tbName:%s, flag:%d", tNameGetTableName(pName), flag); + ctgDebug("tb:%s, will refresh tbmeta, not supposed to be stb, flag:%d", tNameGetTableName(pName), flag); *vgId = vgInfo.vgId; CTG_ERR_JRET(ctgGetTbMetaFromVnode(pCtg, pConn, pName, &vgInfo, NULL, tReq)); @@ -1837,7 +1842,7 @@ int32_t ctgHandleGetTbMetasRsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBu SVgroupInfo vgInfo = {0}; CTG_ERR_JRET(ctgGetVgInfoFromHashValue(pCtg, &pConn->mgmtEps, pOut->dbVgroup, pName, &vgInfo)); - ctgTaskDebug("will refresh tbmeta, not supposed to be stb, tbName:%s, flag:%d", tNameGetTableName(pName), flag); + ctgTaskDebug("tb:%s, will refresh tbmeta, not supposed to be stb, flag:%d", tNameGetTableName(pName), flag); *vgId = vgInfo.vgId; CTG_ERR_JRET(ctgGetTbMetaFromVnode(pCtg, pConn, pName, &vgInfo, NULL, tReq)); @@ -2094,7 +2099,7 @@ static int32_t ctgHandleGetTbNamesRsp(SCtgTaskReq* tReq, int32_t reqType, const ctgTaskError("fail to get the %dth vgInfo, vgSize:%d", i, vgSize); CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } - ctgTaskDebug("will refresh tbmeta, not supposed to be stb, tbName:%s, flag:%d, vgId:%d", + ctgTaskDebug("tb:%s, will refresh tbmeta, not supposed to be stb, flag:%d, vgId:%d", tNameGetTableName(pName), flag, vgInfo->vgId); // *vgId = vgInfo->vgId; if (i > 0) atomic_add_fetch_32(&ctx->fetchNum, 1); @@ -3192,7 +3197,7 @@ int32_t ctgAsyncRefreshTbMeta(SCtgTaskReq* tReq, int32_t flag, SName* pName, int SVgroupInfo vgInfo = {0}; CTG_ERR_JRET(ctgGetVgInfoFromHashValue(pCtg, &pConn->mgmtEps, dbCache->vgCache.vgInfo, pName, &vgInfo)); - ctgDebug("will refresh tbmeta, not supposed to be stb, tbName:%s, flag:%d", tNameGetTableName(pName), flag); + ctgDebug("tb:%s, will refresh tbmeta, not supposed to be stb, flag:%d", tNameGetTableName(pName), flag); *vgId = vgInfo.vgId; CTG_ERR_JRET(ctgGetTbMetaFromVnode(pCtg, pConn, pName, &vgInfo, NULL, tReq)); @@ -3262,8 +3267,10 @@ int32_t ctgLaunchGetTbMetasTask(SCtgTask* pTask) { } autoCreate = pReq->autoCreate; - ctgDebug("start to check tb metas in db:%s, tbNum:%d", pReq->dbFName, (int32_t)taosArrayGetSize(pReq->pTables)); + ctgDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", check tb metas in db:%s, tbNum:%d", pTask->pJob->queryId, + pTask->pJob->refId, pReq->dbFName, (int32_t)taosArrayGetSize(pReq->pTables)); CTG_ERR_RET(ctgGetTbMetasFromCache(pCtg, pConn, pCtx, i, &fetchIdx, baseResIdx, pReq->pTables, autoCreate)); + baseResIdx += taosArrayGetSize(pReq->pTables); } @@ -3849,8 +3856,8 @@ 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], - rsp.pRawRes->pCond[0], rsp.pRawRes->pCond[1]); + ctgTaskDebug("job:0x%" PRIx64 ", got final res, pass:[%d,%d], pCond:[%p,%p]", pTask->pJob->refId, + rsp.pRawRes->pass[0], rsp.pRawRes->pass[1], rsp.pRawRes->pCond[0], rsp.pRawRes->pCond[1]); CTG_ERR_RET(ctgHandleTaskEnd(pTask, 0)); return TSDB_CODE_SUCCESS; @@ -4677,12 +4684,14 @@ 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 ", job:0x%" PRIx64 ", catalog launch [%dth] task", pJob->queryId, pJob->refId, + pTask->taskId); CTG_ERR_RET((*gCtgAsyncFps[pTask->type].launchFp)(pTask)); pTask = taosArrayGet(pJob->pTasks, i); if (NULL == pTask) { - qError("fail to get the %dth task, taskNum:%d", i, taskNum); + qError("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", failed to get the %dth task, taskNum:%d", pJob->queryId, + pJob->refId, i, taskNum); CTG_ERR_RET(TSDB_CODE_CTG_INTERNAL_ERROR); } @@ -4690,7 +4699,8 @@ 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 ", job:0x%" PRIx64 ", catalog call user callback with rsp %s", pJob->queryId, + pJob->refId, 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 d583aea43d..d5b7203ef3 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("db:%s, get db vgInfo from cache", dbFName); + ctgTrace("db:%s, get db vgInfo from cache", dbFName); return TSDB_CODE_SUCCESS; @@ -287,7 +287,7 @@ int32_t ctgAcquireTbMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha *pDb = dbCache; *pTb = pCache; - ctgDebug("tb:%s, meta get from cache, db:%s", tbName, dbFName); + ctgTrace("tb:%s, meta get from cache, db:%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("tb:%s, get db vgInfo from cache, db:%s", tbName, dbFName); + ctgTrace("tb:%s, get db vgInfo from cache, db:%s", tbName, dbFName); tbCache = taosHashAcquire(dbCache->tbCache, tbName, strlen(tbName)); if (NULL == tbCache) { @@ -345,7 +345,7 @@ int32_t ctgAcquireVgMetaFromCache(SCatalog *pCtg, const char *dbFName, const cha *pTb = tbCache; - ctgDebug("tb:%s, meta get from cache, db:%s", tbName, dbFName); + ctgTrace("tb:%s, meta get from cache, db:%s", tbName, dbFName); CTG_META_HIT_INC(tbCache->pMeta->tableType); @@ -378,7 +378,7 @@ int32_t ctgAcquireStbMetaFromCache(SCatalog *pCtg, char *dbFName, uint64_t suid, SCtgTbCache *pCache = NULL; ctgAcquireDBCache(pCtg, dbFName, &dbCache); if (NULL == dbCache) { - ctgTrace("db:%s, db not in cache", dbFName); + ctgDebug("db:%s, db not in cache", dbFName); goto _return; } @@ -451,7 +451,7 @@ int32_t ctgAcquireStbMetaFromCache(SCtgDBCache *dbCache, SCatalog *pCtg, char *d *pTb = pCache; - ctgDebug("stb:0x%" PRIx64 ", meta get from cache, db:%s", suid, dbFName); + ctgTrace("stb:0x%" PRIx64 ", meta get from cache, db:%s", suid, dbFName); CTG_META_HIT_INC(pCache->pMeta->tableType); @@ -891,13 +891,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:%s, user not in cache", pReq->user); + ctgTrace("user:%s, user not in cache", pReq->user); goto _return; } *inCache = true; - ctgDebug("user:%s, get user from cache", pReq->user); + ctgTrace("user:%s, get user from cache", pReq->user); CTG_CACHE_HIT_INC(CTG_CI_USER, 1); SCtgAuthReq req = {0}; @@ -921,7 +921,7 @@ _return: *inCache = false; CTG_CACHE_NHIT_INC(CTG_CI_USER, 1); - ctgDebug("user:%s, get user from cache failed, metaNotExists:%d, code:%d", pReq->user, pRes->metaNotExists, code); + ctgDebug("user:%s, get user from cache failed, metaNotExists:%d, code:0x%x", pReq->user, pRes->metaNotExists, code); return code; } @@ -1945,7 +1945,7 @@ int32_t ctgWriteTbMetaToCache(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFNam CTG_META_NUM_INC(pCache->pMeta->tableType); - ctgDebug("tbmeta updated to cache, db:%s, tbName:%s, tbType:%d", dbFName, tbName, meta->tableType); + ctgDebug("tb:%s, tbmeta updated to cache, db:%s, tbType:%d", tbName, dbFName, meta->tableType); ctgdShowTableMeta(pCtg, tbName, meta); if (!isStb) { @@ -2332,7 +2332,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); + ctgTrace("db:%s, add dbGroupCacheSize:%" PRIu64 " from db", dbFName, groupCacheSize); dbCache = NULL; @@ -3339,7 +3339,7 @@ void *ctgUpdateThreadFunc(void *param) { while (true) { if (tsem_wait(&gCtgMgmt.queue.reqSem)) { - qError("ctg tsem_wait failed, error:%s", tstrerror(terrno)); + qError("catalog tsem_wait failed, error:%s", tstrerror(terrno)); } if (atomic_load_8((int8_t *)&gCtgMgmt.queue.stopQueue)) { diff --git a/source/libs/catalog/src/ctgRemote.c b/source/libs/catalog/src/ctgRemote.c index 9c052ea144..3695049403 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 ", catalog 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,8 +115,8 @@ 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, - pRsp->msgIdx, TMSG_INFO(taskMsg.msgType + 1), pBatchs); + ctgDebug("QID:0x%" PRIx64 ", catalog task:%d handle rsp:%s, idx:%d pBatchs:%p", pJob->queryId, pTask->taskId, + TMSG_INFO(taskMsg.msgType + 1), pRsp->msgIdx, pBatchs); (void)(*gCtgAsyncFps[pTask->type].handleRspFp)( &tReq, pRsp->reqType, &taskMsg, (pRsp->rspCode ? pRsp->rspCode : rspCode)); // error handled internal @@ -148,7 +148,7 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, CTG_ERR_RET(code); } - qDebug("get qnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(out)); + qDebug("got 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("get dnode list from mnode, listNum:%d", (int32_t)taosArrayGetSize(*(SArray**)out)); + qDebug("got 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("db:%s, get db vgInfo from mnode", target); + qDebug("db:%s, got db vgInfo from mnode", 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("db:%s, get db cfg from mnode", target); + qDebug("db:%s, got db cfg from mnode", 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("index:%s, get index from mnode", target); + qDebug("index:%s, got index from mnode", 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("tb:%s, get table index from mnode", target); + qDebug("tb:%s, got table index from mnode", 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("func:%s, get udf from mnode", target); + qDebug("func:%s, got udf from mnode", 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("user:%s, get user auth from mnode", target); + qDebug("user:%s, got user auth from mnode", 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("tb:%s, get table meta from mnode", target); + qDebug("tb:%s, got table meta from mnode", 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("tb:%s, get table meta from vnode", target); + qDebug("tb:%s, got table meta from vnode", 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("tb:%s, get table meta from vnode", target); + qDebug("tb:%s, got table meta from vnode", 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("tb:%s, get table cfg from vnode", target); + qDebug("tb:%s, got table cfg from vnode", 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("tb:%s, get stb cfg from mnode", target); + qDebug("tb:%s, got stb cfg from mnode", 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("get svr ver from mnode"); + qDebug("got 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("view:%s, get view-meta from mnode", target); + qDebug("view:%s, got view-meta from mnode", target); break; } case TDMT_MND_GET_TSMA: @@ -394,11 +394,11 @@ int32_t ctgProcessRspMsg(void* out, int32_t reqType, char* msg, int32_t msgSize, code = queryProcessMsgRsp[TMSG_INDEX(reqType)](out, msg, msgSize); if (code) { - qError("tb:%s, Process get table tsma rsp failed, error:%s", target, tstrerror(code)); + qError("tb:%s, process get table tsma rsp failed, error:%s", target, tstrerror(code)); CTG_ERR_RET(code); } - qDebug("tb:%s, get table tsma from mnode", target); + qDebug("tb:%s, got table tsma from mnode", target); break; } case TDMT_VND_GET_STREAM_PROGRESS: { @@ -445,7 +445,7 @@ int32_t ctgHandleMsgCallback(void* param, SDataBuf* pMsg, int32_t rspCode) { pJob = taosAcquireRef(gCtgMgmt.jobPool, cbParam->refId); if (NULL == pJob) { - qDebug("ctg job refId 0x%" PRIx64 " already dropped", cbParam->refId); + qDebug("catalog job refId 0x%" PRIx64 " already dropped", cbParam->refId); goto _return; } @@ -466,7 +466,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 ", catalog task:%d handle rsp:%s", pJob->queryId, pTask->taskId, TMSG_INFO(cbParam->reqType + 1)); #if CTG_BATCH_FETCH @@ -505,7 +505,7 @@ _return: if (pJob) { int32_t code2 = taosReleaseRef(gCtgMgmt.jobPool, cbParam->refId); if (code2) { - qError("release ctg job refId:%" PRId64 " failed, error:%s", cbParam->refId, tstrerror(code2)); + qError("release catalog job refId:%" PRId64 " failed, error:%s", cbParam->refId, tstrerror(code2)); } } @@ -573,7 +573,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("QID:0x%" PRIx64 ", catalog req msg sent, type:%s", pJob->queryId, TMSG_INFO(msgType)); return TSDB_CODE_SUCCESS; _return: @@ -688,8 +688,8 @@ 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, - vgId); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", catalog task:%d, %s req added to batch:%d, target vgId:%d", + pTask->pJob->queryId, pTask->pJob->refId, pTask->taskId, TMSG_INFO(msgType), newBatch.batchId, vgId); return TSDB_CODE_SUCCESS; } @@ -762,8 +762,8 @@ 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, - vgId); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", catalog task:%d, %s req added to batch:%d, target vgId:%d", + pTask->pJob->queryId, pTask->pJob->refId, pTask->taskId, TMSG_INFO(msgType), pBatch->batchId, vgId); return TSDB_CODE_SUCCESS; @@ -806,7 +806,7 @@ int32_t ctgBuildBatchReqMsg(SCtgBatch* pBatch, int32_t vgId, void** msg, int32_t *pSize = msgSize; - qDebug("batch:%d, batch req to vgId:%d msg built with %d meta reqs", pBatch->batchId, vgId, num); + qTrace("batch:%d, batch req to vgId:%d msg built with %d meta reqs", pBatch->batchId, vgId, num); return TSDB_CODE_SUCCESS; } @@ -821,7 +821,8 @@ 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); + qDebug("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", catalog start to launch batch:%d", pJob->queryId, pJob->refId, + pBatch->batchId); CTG_ERR_JRET(ctgBuildBatchReqMsg(pBatch, *vgId, &msg, &msgSize)); code = ctgAsyncSendMsg(pCtg, &pBatch->conn, pJob, pBatch->pTaskIds, pBatch->batchId, pBatch->pMsgIdxs, @@ -961,11 +962,11 @@ int32_t ctgGetDBVgInfoFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, SBuildU SCtgTask* pTask = tReq ? tReq->pTask : NULL; void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get db vgInfo from mnode, dbFName:%s", input->db); + ctgDebug("db:%s, try to get db vgInfo from mnode", input->db); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)](input, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build use db msg failed, code:%x, db:%s", code, input->db); + ctgError("db:%s, build use db msg failed, code:%s", input->db, tstrerror(code)); CTG_ERR_RET(code); } @@ -1016,11 +1017,11 @@ int32_t ctgGetDBCfgFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const char int32_t reqType = TDMT_MND_GET_DB_CFG; void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get db cfg from mnode, dbFName:%s", dbFName); + ctgDebug("db:%s, try to get db cfg from mnode", dbFName); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)dbFName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get db cfg msg failed, code:%x, db:%s", code, dbFName); + ctgError("db:%s, build get db cfg msg failed, code:%s", dbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1074,11 +1075,11 @@ int32_t ctgGetIndexInfoFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const int32_t reqType = TDMT_MND_GET_INDEX; void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get index from mnode, indexName:%s", indexName); + ctgDebug("index:%s, try to get index from mnode", indexName); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)indexName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get index msg failed, code:%x, db:%s", code, indexName); + ctgError("index:%s, build get index msg failed, code:%s", indexName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1133,18 +1134,18 @@ int32_t ctgGetTbIndexFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, SName* n void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; char tbFName[TSDB_TABLE_FNAME_LEN]; - ctgDebug("try to get tb index from mnode, tbFName:%s", tbFName); + ctgDebug("tb:%s, try to get tb index from mnode", tbFName); int32_t code = tNameExtractFullName(name, tbFName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), name->type, - name->dbname, name->tname); + ctgError("tb:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", name->tname, tstrerror(code), + name->type, name->dbname); CTG_ERR_RET(code); } code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)tbFName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get index msg failed, code:%s, tbFName:%s", tstrerror(code), tbFName); + ctgError("tb:%s, build get index msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1198,11 +1199,11 @@ int32_t ctgGetUdfInfoFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const ch int32_t reqType = TDMT_MND_RETRIEVE_FUNC; void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get udf info from mnode, funcName:%s", funcName); + ctgDebug("func:%s, try to get udf info from mnode", funcName); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)funcName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get udf msg failed, code:%x, db:%s", code, funcName); + ctgError("func:%s, build get udf msg failed, code:%s", funcName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1256,11 +1257,11 @@ int32_t ctgGetUserDbAuthFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const int32_t reqType = TDMT_MND_GET_USER_AUTH; void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get user auth from mnode, user:%s", user); + ctgDebug("user:%s, try to get user auth from mnode", user); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)user, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get user auth msg failed, code:%x, db:%s", code, user); + ctgError("user:%s, build get user auth msg failed, code:%s", user, tstrerror(code)); CTG_ERR_RET(code); } @@ -1319,11 +1320,11 @@ int32_t ctgGetTbMetaFromMnodeImpl(SCatalog* pCtg, SRequestConnInfo* pConn, const (void)snprintf(tbFName, sizeof(tbFName), "%s.%s", dbFName, tbName); void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; - ctgDebug("try to get table meta from mnode, tbFName:%s", tbFName); + ctgDebug("tb:%s, try to get table meta from mnode", tbFName); int32_t code = queryBuildMsg[TMSG_INDEX(reqType)](&bInput, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build mnode stablemeta msg failed, code:%x", code); + ctgError("tb:%s, build mnode stablemeta msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1387,8 +1388,8 @@ int32_t ctgGetTbMetaFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, const SNa void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; SEp* pEp = &vgroupInfo->epSet.eps[vgroupInfo->epSet.inUse]; - ctgDebug("try to get table meta from vnode, vgId:%d, ep num:%d, ep %s:%d, tbFName:%s", vgroupInfo->vgId, - vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port, tbFName); + ctgDebug("tb:%s, try to get table meta from vnode, vgId:%d, ep num:%d, ep:%s:%u", tbFName, vgroupInfo->vgId, + vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port); SBuildTableInput bInput = {.vgId = vgroupInfo->vgId, .option = reqType == TDMT_VND_TABLE_NAME ? REQ_OPT_TBUID : REQ_OPT_TBNAME, @@ -1400,7 +1401,7 @@ int32_t ctgGetTbMetaFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, const SNa int32_t code = queryBuildMsg[TMSG_INDEX(reqType)](&bInput, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build vnode tablemeta msg failed, code:%x, tbFName:%s", code, tbFName); + ctgError("tb:%s, build vnode tablemeta msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1465,18 +1466,18 @@ int32_t ctgGetTableCfgFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, const S int32_t code = tNameExtractFullName(pTableName, tbFName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), pTableName->type, - pTableName->dbname, pTableName->tname); + ctgError("tb:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", pTableName->tname, tstrerror(code), + pTableName->type, pTableName->dbname); CTG_ERR_RET(code); } SEp* pEp = &vgroupInfo->epSet.eps[vgroupInfo->epSet.inUse]; - ctgDebug("try to get table cfg from vnode, vgId:%d, ep num:%d, ep %s:%d, tbFName:%s", vgroupInfo->vgId, - vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port, tbFName); + ctgDebug("tb:%s, try to get table cfg from vnode, vgId:%d, ep num:%d, ep %s:%d", tbFName, vgroupInfo->vgId, + vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port); code = queryBuildMsg[TMSG_INDEX(reqType)](&bInput, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get tb cfg msg failed, code:%s, tbFName:%s", tstrerror(code), tbFName); + ctgError("tb:%s, build get tb cfg msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1539,16 +1540,16 @@ int32_t ctgGetTableCfgFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const S int32_t code = tNameExtractFullName(pTableName, tbFName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), pTableName->type, - pTableName->dbname, pTableName->tname); + ctgError("tb:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", pTableName->tname, tstrerror(code), + pTableName->type, pTableName->dbname); CTG_ERR_RET(code); } - ctgDebug("try to get table cfg from mnode, tbFName:%s", tbFName); + ctgDebug("tb:%s, try to get table cfg from mnode", tbFName); code = queryBuildMsg[TMSG_INDEX(reqType)](&bInput, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get tb cfg msg failed, code:%s, tbFName:%s", tstrerror(code), tbFName); + ctgError("tb:%s, build get tb cfg msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1600,7 +1601,7 @@ int32_t ctgGetSvrVerFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, char** ou int32_t code = queryBuildMsg[TMSG_INDEX(reqType)](NULL, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get svr ver msg failed, code:%s", tstrerror(code)); + ctgError("build get svr ver msg failed, code:%s", tstrerror(code)); CTG_ERR_RET(code); } @@ -1652,16 +1653,16 @@ int32_t ctgGetViewInfoFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, SName* char fullName[TSDB_TABLE_FNAME_LEN]; int32_t code = tNameExtractFullName(pName, fullName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), pName->type, - pName->dbname, pName->tname); + ctgError("view:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", pName->tname, tstrerror(code), pName->type, + pName->dbname); CTG_ERR_RET(code); } - ctgDebug("try to get view info from mnode, viewFName:%s", fullName); + ctgDebug("view:%s, try to get view info from mnode", fullName); code = queryBuildMsg[TMSG_INDEX(reqType)](fullName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build view-meta msg failed, code:%x, viewFName:%s", code, fullName); + ctgError("view:%s, build view-meta msg failed, code:%s", fullName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1714,16 +1715,16 @@ int32_t ctgGetTbTSMAFromMnode(SCatalog* pCtg, SRequestConnInfo* pConn, const SNa char tbFName[TSDB_TABLE_FNAME_LEN]; int32_t code = tNameExtractFullName(name, tbFName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), name->type, - name->dbname, name->tname); + ctgError("tb:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", name->tname, tstrerror(code), + name->type, name->dbname); CTG_ERR_RET(code); } - ctgDebug("try to get tb index from mnode, tbFName:%s", tbFName); + ctgDebug("tb:%s, try to get tb index from mnode", tbFName); code = queryBuildMsg[TMSG_INDEX(reqType)]((void*)tbFName, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get index msg failed, code:%s, tbFName:%s", tstrerror(code), tbFName); + ctgError("tb:%s, build get index msg failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } @@ -1776,8 +1777,8 @@ int32_t ctgGetStreamProgressFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, c char tbFName[TSDB_TABLE_FNAME_LEN]; int32_t code = tNameExtractFullName(pTbName, tbFName); if (code) { - ctgError("tNameExtractFullName failed, code:%s, type:%d, dbName:%s, tname:%s", tstrerror(code), pTbName->type, - pTbName->dbname, pTbName->tname); + ctgError("tb:%s, tNameExtractFullName failed, code:%s, type:%d, dbName:%s", pTbName->tname, tstrerror(code), + pTbName->type, pTbName->dbname); CTG_ERR_RET(code); } @@ -1785,12 +1786,12 @@ int32_t ctgGetStreamProgressFromVnode(SCatalog* pCtg, SRequestConnInfo* pConn, c void* (*mallocFp)(int64_t) = pTask ? (MallocType)taosMemMalloc : (MallocType)rpcMallocCont; SEp* pEp = &vgroupInfo->epSet.eps[vgroupInfo->epSet.inUse]; - ctgDebug("try to get stream progress from vnode, vgId:%d, ep num:%d, ep %s:%d, target:%s", vgroupInfo->vgId, - vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port, tbFName); + ctgDebug("tb:%s try to get stream progress from vnode, vgId:%d, ep num:%d, ep %s:%d", tbFName, vgroupInfo->vgId, + vgroupInfo->epSet.numOfEps, pEp->fqdn, pEp->port); code = queryBuildMsg[TMSG_INDEX(reqType)](bInput, &msg, 0, &msgLen, mallocFp); if (code) { - ctgError("Build get stream progress failed, code:%s, tbFName:%s", tstrerror(code), tbFName); + ctgError("tb:%s, build get stream progress failed, code:%s", tbFName, tstrerror(code)); CTG_ERR_RET(code); } diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 7e7ee90bbf..c9fdb7a4a6 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -1129,7 +1129,7 @@ void ctgFreeJob(void* job) { taosMemoryFree(job); - qDebug("QID:0x%" PRIx64 ", ctg jobId:0x%" PRIx64 " freed", qid, rid); + qTrace("QID:0x%" PRIx64 ", job:0x%" PRIx64 ", catalog job freed", qid, rid); } int32_t ctgUpdateMsgCtx(SCtgMsgCtx* pCtx, int32_t reqType, void* out, char* target) { @@ -1325,7 +1325,7 @@ int32_t ctgGetVgInfoFromHashValue(SCatalog* pCtg, SEpSet* pMgmtEps, SDBVgInfo* d *pVgroup = *vgInfo; - ctgDebug("tb:%s, get hash vgroup, vgId:%d, epNum %d, current:%s port:%d", tbFullName, vgInfo->vgId, + ctgTrace("tb:%s, get hash vgroup, vgId:%d, epNum:%d, current ep:%s:%u", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); @@ -1469,7 +1469,7 @@ int32_t ctgGetVgInfosFromHashValue(SCatalog* pCtg, SEpSet* pMgmgEpSet, SCtgTaskR *pNewVg = *vgInfo; - ctgDebug("tb:%s, get hash vgroup, vgId:%d, epNum %d, current %s port %d", tbFullName, vgInfo->vgId, + ctgTrace("tb:%s, get hash vgroup, vgId:%d, epNum:%d, current ep:%s:%u", tbFullName, vgInfo->vgId, vgInfo->epSet.numOfEps, vgInfo->epSet.eps[vgInfo->epSet.inUse].fqdn, vgInfo->epSet.eps[vgInfo->epSet.inUse].port); diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index f9f3f5843e..a1113adac5 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -6786,7 +6786,7 @@ int32_t createTableMergeScanOperatorInfo(STableScanPhysiNode* pTableScanNode, SR pInfo->mergeLimit = -1; bool hasLimit = pInfo->limitInfo.limit.limit != -1 || pInfo->limitInfo.limit.offset != -1; if (hasLimit) { - pInfo->mergeLimit = pInfo->limitInfo.limit.limit + pInfo->limitInfo.limit.offset; + pInfo->mergeLimit = pInfo->limitInfo.limit.offset != -1 ? pInfo->limitInfo.limit.limit + pInfo->limitInfo.limit.offset : pInfo->limitInfo.limit.limit; pInfo->mSkipTables = NULL; } diff --git a/source/libs/nodes/inc/nodesUtil.h b/source/libs/nodes/inc/nodesUtil.h index 69b4245d4e..5deb76fba7 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 c71095a42b..8544c64f1e 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 55b45ea471..970751d827 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -3362,7 +3362,7 @@ 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 be inserted before cache miss", pCxt->pComCxt->requestId, + parserDebug("QID:0x%" PRIx64 ", %d rows of %d tables will be inserted before obtain the cache", pCxt->pComCxt->requestId, pStmt->totalRowsNum, pStmt->totalTbNum); pQuery->execStage = QUERY_EXEC_STAGE_PARSE; diff --git a/source/libs/planner/inc/planInt.h b/source/libs/planner/inc/planInt.h index 461ccb8b42..bad1a88e06 100644 --- a/source/libs/planner/inc/planInt.h +++ b/source/libs/planner/inc/planInt.h @@ -35,14 +35,13 @@ typedef struct SPhysiPlanContext { bool hasSysScan; } SPhysiPlanContext; - -#define planFatal(param, ...) qFatal("PLAN: " param, ##__VA_ARGS__) -#define planError(param, ...) qError("PLAN: " param, ##__VA_ARGS__) -#define planWarn(param, ...) qWarn("PLAN: " param, ##__VA_ARGS__) -#define planInfo(param, ...) qInfo("PLAN: " param, ##__VA_ARGS__) -#define planDebug(param, ...) qDebug("PLAN: " param, ##__VA_ARGS__) -#define planDebugL(param, ...) qDebugL("PLAN: " param, ##__VA_ARGS__) -#define planTrace(param, ...) qTrace("PLAN: " param, ##__VA_ARGS__) +#define planFatal(param, ...) qFatal ("plan " param, ##__VA_ARGS__) +#define planError(param, ...) qError ("plan " param, ##__VA_ARGS__) +#define planWarn(param, ...) qWarn ("plan " param, ##__VA_ARGS__) +#define planInfo(param, ...) qInfo ("plan " param, ##__VA_ARGS__) +#define planDebug(param, ...) qDebug ("plan " param, ##__VA_ARGS__) +#define planDebugL(param, ...) qDebugL("plan " param, ##__VA_ARGS__) +#define planTrace(param, ...) qTrace ("plan " param, ##__VA_ARGS__) #define PLAN_ERR_RET(c) \ do { \ diff --git a/source/libs/qcom/src/querymsg.c b/source/libs/qcom/src/querymsg.c index 73a87e0389..2191208c30 100644 --- a/source/libs/qcom/src/querymsg.c +++ b/source/libs/qcom/src/querymsg.c @@ -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:%u", i, pVgInfo->vgId, pVgInfo->epSet.numOfEps, + qDebug("db:%s, vgId:%d, epNum:%d, current ep:%s:%u", usedbRsp->db, 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; diff --git a/source/libs/scheduler/inc/schInt.h b/source/libs/scheduler/inc/schInt.h index 4e44c52d70..2899dc959c 100644 --- a/source/libs/scheduler/inc/schInt.h +++ b/source/libs/scheduler/inc/schInt.h @@ -464,6 +464,7 @@ extern SSchedulerMgmt schMgmt; #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_TLOG(param, ...) qTrace("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), \ @@ -579,10 +580,10 @@ extern SSchedulerMgmt schMgmt; } \ } while (0) -#define SCH_RESET_JOB_LEVEL_IDX(_job) \ - do { \ - (_job)->levelIdx = (_job)->levelNum - 1; \ - SCH_JOB_DLOG("set job levelIdx to %d", (_job)->levelIdx); \ +#define SCH_RESET_JOB_LEVEL_IDX(_job) \ + do { \ + (_job)->levelIdx = (_job)->levelNum - 1; \ + qTrace("QID:0x%" PRIx64 ", job levelIdx set to %d", (_job)->queryId, (_job)->levelIdx); \ } while (0) void schDeregisterTaskHb(SSchJob *pJob, SSchTask *pTask); diff --git a/source/libs/scheduler/src/schFlowCtrl.c b/source/libs/scheduler/src/schFlowCtrl.c index c66f1dafe6..6bdf8124e5 100644 --- a/source/libs/scheduler/src/schFlowCtrl.c +++ b/source/libs/scheduler/src/schFlowCtrl.c @@ -42,7 +42,7 @@ void schFreeFlowCtrl(SSchJob *pJob) { int32_t schChkJobNeedFlowCtrl(SSchJob *pJob, SSchLevel *pLevel) { if (!SCH_IS_QUERY_JOB(pJob)) { - SCH_JOB_DLOG("job no need flow ctrl, queryJob:%d", SCH_IS_QUERY_JOB(pJob)); + SCH_JOB_TLOG("job no need flow ctrl, queryJob:%d", SCH_IS_QUERY_JOB(pJob)); return TSDB_CODE_SUCCESS; } @@ -54,7 +54,7 @@ int32_t schChkJobNeedFlowCtrl(SSchJob *pJob, SSchLevel *pLevel) { } if (schMgmt.cfg.maxNodeTableNum <= 0 || sum < schMgmt.cfg.maxNodeTableNum) { - SCH_JOB_DLOG("job no need flow ctrl, totalTableNum:%" PRId64, sum); + SCH_JOB_TLOG("job no need flow ctrl, totalTableNum:%" PRId64, sum); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index 0b90c7b7ff..476f9f7154 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -266,7 +266,7 @@ int32_t schBuildTaskRalation(SSchJob *pJob, SHashObj *planToTask) { SCH_TASK_DLOG("parents info, the %d parent TID 0x%" PRIx64, n, (*parentTask)->taskId); } - SCH_TASK_DLOG("level:%d, parentNum:%d, childNum:%d", i, parentNum, childNum); + SCH_TASK_TLOG("level:%d, parentNum:%d, childNum:%d", i, parentNum, childNum); } } @@ -345,9 +345,10 @@ int32_t schValidateAndBuildJob(SQueryPlan *pDag, SSchJob *pJob) { pJob->levelNum = levelNum; SCH_RESET_JOB_LEVEL_IDX(pJob); - + (void)atomic_add_fetch_64(&pJob->seriousId, 1); - SCH_JOB_DLOG("job seriousId set to 0x%" PRIx64, pJob->seriousId); + qDebug("QID:0x%" PRIx64 ", job seriousId set to SID:%" PRId64 ", levelIdx:%d", pJob->queryId, pJob->seriousId, + pJob->levelIdx); SSchLevel level = {0}; SNodeListNode *plans = NULL; @@ -435,7 +436,7 @@ int32_t schValidateAndBuildJob(SQueryPlan *pDag, SSchJob *pJob) { ++pJob->taskNum; } - SCH_JOB_DLOG("level %d initialized, taskNum:%d", i, taskNum); + SCH_JOB_TLOG("level %d initialized, taskNum:%d", i, taskNum); } if (totalTaskNum != pDag->numOfSubplans) { @@ -465,7 +466,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("exec result dumped, code:%s", tstrerror(pRes->code)); } int32_t schDumpJobFetchRes(SSchJob *pJob, void **pData) { @@ -519,9 +520,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_TLOG("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_TLOG("sch end from exec cb, code:%s", tstrerror(pJob->errCode)); return TSDB_CODE_SUCCESS; } @@ -546,7 +547,7 @@ void schPostJobRes(SSchJob *pJob, SCH_OP_TYPE op) { SCH_LOCK(SCH_WRITE, &pJob->opStatus.lock); if (SCH_OP_NULL == pJob->opStatus.op) { - SCH_JOB_DLOG("job not in any operation, no need to post job res, status:%s", jobTaskStatusStr(pJob->status)); + SCH_JOB_TLOG("job not in any operation, no need to post job res, status:%s", jobTaskStatusStr(pJob->status)); goto _return; } @@ -758,7 +759,7 @@ void schFreeJobImpl(void *job) { uint64_t queryId = pJob->queryId; int64_t refId = pJob->refId; - qDebug("QID:0x%" PRIx64 ", begin to free sch job, jobId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qTrace("QID:0x%" PRIx64 ", begin to free sch job, jobId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); schDropJobAllTasks(pJob); @@ -818,7 +819,7 @@ void schFreeJobImpl(void *job) { } } - qDebug("QID:0x%" PRIx64 ", sch job freed, refId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); + qTrace("QID:0x%" PRIx64 ", sch job freed, jobId:0x%" PRIx64 ", pointer:%p", queryId, refId, pJob); } int32_t schJobFetchRows(SSchJob *pJob) { @@ -883,7 +884,7 @@ 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); + qTrace("QID:0x%" PRIx64 ", input exec nodeList is empty", pReq->pDag->queryId); } else { pJob->nodeList = taosArrayDup(pReq->pNodeList, NULL); if (NULL == pJob->nodeList) { @@ -928,7 +929,7 @@ int32_t schInitJob(int64_t *pJobId, SSchedulerReq *pReq) { *pJobId = pJob->refId; - SCH_JOB_DLOG("jobId:0x%" PRIx64 ", job created", pJob->refId); + SCH_JOB_TLOG("jobId:0x%" PRIx64 ", job created", pJob->refId); return TSDB_CODE_SUCCESS; @@ -950,7 +951,7 @@ _return: int32_t schExecJob(SSchJob *pJob, SSchedulerReq *pReq) { int32_t code = 0; - qDebug("QID:0x%" PRIx64 ", jobId:0x%" PRIx64 ", sch job started", pReq->pDag->queryId, pJob->refId); + qTrace("QID:0x%" PRIx64 ", jobId:0x%" PRIx64 ", sch job started", pReq->pDag->queryId, pJob->refId); SCH_ERR_RET(schLaunchJob(pJob)); @@ -1063,7 +1064,7 @@ int32_t schResetJobForRetry(SSchJob *pJob, SSchTask *pTask, int32_t rspCode, boo SCH_RESET_JOB_LEVEL_IDX(pJob); - SCH_JOB_DLOG("update job sId to %" PRId64, pJob->seriousId); + SCH_JOB_DLOG("update job sId to %" PRId64 ", levelIdx:%d", pJob->seriousId, pJob->levelIdx); return TSDB_CODE_SUCCESS; } @@ -1153,7 +1154,7 @@ void schProcessOnOpEnd(SSchJob *pJob, SCH_OP_TYPE type, SSchedulerReq *pReq, int (void)schHandleJobFailure(pJob, errCode); // handle internal } - SCH_JOB_DLOG("job end %s operation with code %s", schGetOpStr(type), tstrerror(errCode)); + SCH_JOB_TLOG("job end %s operation with code:%s", schGetOpStr(type), tstrerror(errCode)); } int32_t schProcessOnOpBegin(SSchJob *pJob, SCH_OP_TYPE type, SSchedulerReq *pReq) { diff --git a/source/libs/scheduler/src/schRemote.c b/source/libs/scheduler/src/schRemote.c index f6b7c5fefa..d7c5eb0c84 100644 --- a/source/libs/scheduler/src/schRemote.c +++ b/source/libs/scheduler/src/schRemote.c @@ -490,7 +490,7 @@ int32_t schHandleCallback(void *param, SDataBuf *pMsg, int32_t rspCode) { SSchJob *pJob = NULL; 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, + qDebug("QID:0x%" PRIx64 ", 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)); @@ -504,7 +504,7 @@ _return: taosMemoryFreeClear(pMsg->pData); taosMemoryFreeClear(pMsg->pEpSet); - qDebug("QID:0x%" PRIx64 ", end to handle rsp msg, type:%s, handle:%p, code:%s", qid, TMSG_INFO(pMsg->msgType), pMsg->handle, + qTrace("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); @@ -1026,9 +1026,9 @@ int32_t schAsyncSendMsg(SSchJob *pJob, SSchTask *pTask, SSchTrans *trans, SQuery } if (pJob) { - SCH_TASK_DLOG("req msg sent, type:%d, %s", msgType, TMSG_INFO(msgType)); + SCH_TASK_TLOG("req msg sent, type:%d, %s", msgType, TMSG_INFO(msgType)); } else { - qDebug("req msg sent, type:%d, %s", msgType, TMSG_INFO(msgType)); + qTrace("req msg sent, type:%d, %s", msgType, TMSG_INFO(msgType)); } return TSDB_CODE_SUCCESS; @@ -1126,7 +1126,7 @@ int32_t schBuildAndSendMsg(SSchJob *pJob, SSchTask *pTask, SQueryNodeAddr *addr, } isCandidateAddr = true; - SCH_TASK_DLOG("target candidateIdx %d, epInUse %d/%d", pTask->candidateIdx, addr->epSet.inUse, + SCH_TASK_TLOG("target candidateIdx %d, epInUse %d/%d", pTask->candidateIdx, addr->epSet.inUse, addr->epSet.numOfEps); } diff --git a/source/libs/scheduler/src/schStatus.c b/source/libs/scheduler/src/schStatus.c index 1bd91093b5..7a83b7aefd 100644 --- a/source/libs/scheduler/src/schStatus.c +++ b/source/libs/scheduler/src/schStatus.c @@ -50,7 +50,7 @@ int32_t schSwitchJobStatus(SSchJob* pJob, int32_t status, void* param) { if (taosRemoveRef(schMgmt.jobRef, pJob->refId)) { SCH_JOB_ELOG("remove job from job list failed, refId:0x%" PRIx64, pJob->refId); } else { - SCH_JOB_DLOG("job removed from jobRef list, refId:0x%" PRIx64, pJob->refId); + SCH_JOB_TLOG("job removed from jobRef list, refId:0x%" PRIx64, pJob->refId); } break; default: { diff --git a/source/libs/scheduler/src/schTask.c b/source/libs/scheduler/src/schTask.c index a81ca1becd..fe566762b1 100644 --- a/source/libs/scheduler/src/schTask.c +++ b/source/libs/scheduler/src/schTask.c @@ -82,7 +82,7 @@ int32_t schInitTask(SSchJob *pJob, SSchTask *pTask, SSubplan *pPlan, SSchLevel * SCH_SET_TASK_STATUS(pTask, JOB_TASK_STATUS_INIT); - SCH_TASK_DLOG("task initialized, max times %d:%d", pTask->maxRetryTimes, pTask->maxExecTimes); + SCH_TASK_TLOG("task initialized, max times %d:%d", pTask->maxRetryTimes, pTask->maxExecTimes); return TSDB_CODE_SUCCESS; @@ -249,7 +249,7 @@ int32_t schProcessOnTaskSuccess(SSchJob *pJob, SSchTask *pTask) { bool moved = false; int32_t code = 0; - SCH_TASK_DLOG("taskOnSuccess, status:%s", SCH_GET_TASK_STATUS_STR(pTask)); + SCH_TASK_TLOG("taskOnSuccess, status:%s", SCH_GET_TASK_STATUS_STR(pTask)); SCH_LOG_TASK_END_TS(pTask); @@ -275,7 +275,7 @@ int32_t schProcessOnTaskSuccess(SSchJob *pJob, SSchTask *pTask) { return TSDB_CODE_SUCCESS; } - SCH_TASK_DLOG("taskDone number reach level task number, done:%d, total:%d", taskDone, pTask->level->taskNum); + SCH_TASK_TLOG("taskDone number reach level task number, done:%d, total:%d", taskDone, pTask->level->taskNum); if (pTask->level->taskFailed > 0) { SCH_RET(schHandleJobFailure(pJob, pJob->errCode)); @@ -333,7 +333,7 @@ int32_t schProcessOnTaskSuccess(SSchJob *pJob, SSchTask *pTask) { parent->seriousId = pJob->seriousId; TSWAP(pTask, parent); - SCH_TASK_DLOG("task seriousId set to 0x%" PRIx64, pTask->seriousId); + SCH_TASK_TLOG("task seriousId set to 0x%" PRIx64, pTask->seriousId); TSWAP(pTask, parent); SCH_ERR_RET(schDelayLaunchTask(pJob, parent)); @@ -608,7 +608,7 @@ int32_t schPushTaskToExecList(SSchJob *pJob, SSchTask *pTask) { SCH_ERR_RET(code); } - SCH_TASK_DLOG("task added to execTask list, numOfTasks:%d", taosHashGetSize(pJob->execTasks)); + SCH_TASK_TLOG("task added to execTask list, numOfTasks:%d", taosHashGetSize(pJob->execTasks)); return TSDB_CODE_SUCCESS; } @@ -840,7 +840,7 @@ int32_t schSetTaskCandidateAddrs(SSchJob *pJob, SSchTask *pTask) { SCH_ERR_RET(terrno); } - SCH_TASK_DLOG("use execNode in plan as candidate addr, numOfEps:%d", pTask->plan->execNode.epSet.numOfEps); + SCH_TASK_TLOG("use execNode in plan as candidate addr, numOfEps:%d", pTask->plan->execNode.epSet.numOfEps); return TSDB_CODE_SUCCESS; } @@ -1222,7 +1222,7 @@ int32_t schLaunchTaskImpl(void *param) { (void)atomic_add_fetch_32(&pTask->level->taskLaunchedNum, 1); - SCH_TASK_DLOG("start to launch %s task, execId %d, retry %d", + SCH_TASK_TLOG("start to launch %s task, execId %d, retry %d", SCH_IS_LOCAL_EXEC_TASK(pJob, pTask) ? "LOCAL" : "REMOTE", pTask->execId, pTask->retryTimes); SCH_LOG_TASK_START_TS(pTask); @@ -1378,7 +1378,7 @@ int32_t schLaunchLevelTasks(SSchJob *pJob, SSchLevel *level) { pTask->failedSeriousId = pJob->seriousId - 1; pTask->seriousId = pJob->seriousId; - SCH_TASK_DLOG("task seriousId set to 0x%" PRIx64, pTask->seriousId); + SCH_TASK_TLOG("task seriousId set to 0x%" PRIx64, pTask->seriousId); SCH_ERR_RET(schDelayLaunchTask(pJob, pTask)); } diff --git a/source/libs/scheduler/src/scheduler.c b/source/libs/scheduler/src/scheduler.c index e1affae73d..a1b2cd0975 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("QID:0x%" PRIx64 ", scheduler %s exec job will start", pReq->pConn->requestId, pReq->syncReq ? "SYNC" : "ASYNC"); + qDebug("QID:0x%" PRIx64 ", scheduler job will start, exec:%s", pReq->pConn->requestId, pReq->syncReq ? "SYNC" : "ASYNC"); int32_t code = 0; SSchJob *pJob = NULL; @@ -168,11 +168,11 @@ void schedulerFreeJob(int64_t *jobId, int32_t errCode) { SSchJob *pJob = NULL; (void)schAcquireJob(*jobId, &pJob); if (NULL == pJob) { - qDebug("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", *jobId); + qTrace("jobId:0x%" PRIx64 ", acquire sch job failed, may be dropped", *jobId); return; } - SCH_JOB_DLOG("jobId:0x%" PRIx64 ", start to free, code:%s", *jobId, tstrerror(errCode)); + SCH_JOB_TLOG("jobId:0x%" PRIx64 ", start to free, code:%s", *jobId, tstrerror(errCode)); (void)schHandleJobDrop(pJob, errCode); // ignore any error int32_t released = false; diff --git a/source/libs/stream/src/streamCheckStatus.c b/source/libs/stream/src/streamCheckStatus.c index 0526c0b65c..e1fc05bc31 100644 --- a/source/libs/stream/src/streamCheckStatus.c +++ b/source/libs/stream/src/streamCheckStatus.c @@ -503,7 +503,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:0x%" PRIx64 " discarded", id, taskId, reqId); return TSDB_CODE_FAILED; } diff --git a/source/libs/sync/inc/syncPipeline.h b/source/libs/sync/inc/syncPipeline.h index 147f8a67ae..f96eb7fb88 100644 --- a/source/libs/sync/inc/syncPipeline.h +++ b/source/libs/sync/inc/syncPipeline.h @@ -108,7 +108,7 @@ bool syncLogBufferIsEmpty(SSyncLogBuffer* pBuf); int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry); int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry, SyncTerm prevTerm); -int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm, char *str); +int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm, char *str, const SRpcMsg *pMsg); int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t commitIndex); int32_t syncLogBufferReset(SSyncLogBuffer* pBuf, SSyncNode* pNode); diff --git a/source/libs/sync/inc/syncRaftEntry.h b/source/libs/sync/inc/syncRaftEntry.h index 7f8cb78ea1..7e617adf4b 100644 --- a/source/libs/sync/inc/syncRaftEntry.h +++ b/source/libs/sync/inc/syncRaftEntry.h @@ -28,6 +28,7 @@ typedef struct SSyncRaftEntry { uint32_t bytes; uint32_t msgType; // TDMT_SYNC_CLIENT_REQUEST uint32_t originalRpcType; // origin RpcMsg msgType + STraceId originRpcTraceId; uint64_t seqNum; bool isWeak; SyncTerm term; @@ -38,7 +39,7 @@ typedef struct SSyncRaftEntry { } SSyncRaftEntry; SSyncRaftEntry* syncEntryBuild(int32_t dataLen); -SSyncRaftEntry* syncEntryBuildFromClientRequest(const SyncClientRequest* pMsg, SyncTerm term, SyncIndex index); +SSyncRaftEntry* syncEntryBuildFromClientRequest(const SyncClientRequest* pMsg, SyncTerm term, SyncIndex index, const STraceId *traceId); SSyncRaftEntry* syncEntryBuildFromRpcMsg(const SRpcMsg* pMsg, SyncTerm term, SyncIndex index); SSyncRaftEntry* syncEntryBuildFromAppendEntries(const SyncAppendEntries* pMsg); SSyncRaftEntry* syncEntryBuildNoop(SyncTerm term, SyncIndex index, int32_t vgId); diff --git a/source/libs/sync/inc/syncUtil.h b/source/libs/sync/inc/syncUtil.h index e82c36e8e6..418b04a3cd 100644 --- a/source/libs/sync/inc/syncUtil.h +++ b/source/libs/sync/inc/syncUtil.h @@ -32,12 +32,12 @@ extern "C" { #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 sGTrace(trace, param, ...) do { if (sDebugFlag & DEBUG_TRACE) { sTrace(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define sGFatal(trace, param, ...) do { if (sDebugFlag & DEBUG_FATAL) { sFatal(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define sGError(trace, param, ...) do { if (sDebugFlag & DEBUG_ERROR) { sError(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define sGWarn(trace, param, ...) do { if (sDebugFlag & DEBUG_WARN) { sWarn(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define sGInfo(ptrace, aram, ...) do { if (sDebugFlag & DEBUG_INFO) { sInfo(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define sGDebug(trace, param, ...) do { if (sDebugFlag & DEBUG_DEBUG) { sDebug(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} 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__); } @@ -101,34 +101,46 @@ void syncPrintSnapshotSenderLog(const char* flags, ELogLevel level, int32_t dfla void syncPrintSnapshotReceiverLog(const char* flags, ELogLevel level, int32_t dflag, SSyncSnapshotReceiver* pReceiver, const char* format, ...); -void syncLogRecvTimer(SSyncNode* pSyncNode, const SyncTimeout* pMsg, const char* s); -void syncLogRecvLocalCmd(SSyncNode* pSyncNode, const SyncLocalCmd* pMsg, const char* s); +void syncLogRecvTimer(SSyncNode* pSyncNode, const SyncTimeout* pMsg, const STraceId* trace); +void syncLogRecvLocalCmd(SSyncNode* pSyncNode, const SyncLocalCmd* pMsg, const STraceId* trace); -void syncLogSendAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s); -void syncLogRecvAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s); +void syncLogSendAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s, + const STraceId* trace); +void syncLogRecvAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s, + const STraceId* trace); void syncLogSendHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, bool printX, int64_t timerElapsed, int64_t execTime); -void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64_t timeDiff, const char* s); +void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64_t timeDiff, const STraceId* trace); -void syncLogSendHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, const char* s); -void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, int64_t timeDiff, const char* s); +void syncLogSendHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, const char* s, + const STraceId* trace); +void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, int64_t timeDiff, + const STraceId* trace); -void syncLogSendSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s); -void syncLogRecvSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s); +void syncLogSendSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s, + const STraceId* trace); +void syncLogRecvSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s, + const STraceId* trace); -void syncLogSendSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s); -void syncLogRecvSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s); +void syncLogSendSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s, + const STraceId* trace); +void syncLogRecvSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s, + const STraceId* trace); -void syncLogRecvAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s); -void syncLogSendAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s); +void syncLogRecvAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s, + const STraceId* trace); +void syncLogSendAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s, + const STraceId* trace); void syncLogRecvRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, int32_t voteGranted, const char* s, - const char* opt); -void syncLogSendRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, const char* s); + const char* opt, const STraceId* trace); +void syncLogSendRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, const char* s, const STraceId* trace); -void syncLogRecvRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s); -void syncLogSendRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s); +void syncLogRecvRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s, + const STraceId* trace); +void syncLogSendRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s, + const STraceId* trace); #ifdef __cplusplus } diff --git a/source/libs/sync/src/syncAppendEntries.c b/source/libs/sync/src/syncAppendEntries.c index 13ce8c0bf0..8afface863 100644 --- a/source/libs/sync/src/syncAppendEntries.c +++ b/source/libs/sync/src/syncAppendEntries.c @@ -95,12 +95,10 @@ int32_t syncNodeOnAppendEntries(SSyncNode* ths, const SRpcMsg* pRpcMsg) { bool accepted = false; SSyncRaftEntry* pEntry = NULL; bool resetElect = false; - const STraceId* trace = &pRpcMsg->info.traceId; - char tbuf[40] = {0}; // if already drop replica, do not process if (!syncNodeInRaftGroup(ths, &(pMsg->srcId))) { - syncLogRecvAppendEntries(ths, pMsg, "not in my config"); + syncLogRecvAppendEntries(ths, pMsg, "not in my config", &pRpcMsg->info.traceId); goto _IGNORE; } @@ -111,7 +109,7 @@ int32_t syncNodeOnAppendEntries(SSyncNode* ths, const SRpcMsg* pRpcMsg) { int32_t code = syncBuildAppendEntriesReply(&rpcRsp, ths->vgId); if (code != 0) { - syncLogRecvAppendEntries(ths, pMsg, "build rsp error"); + syncLogRecvAppendEntries(ths, pMsg, "build rsp error", &pRpcMsg->info.traceId); goto _IGNORE; } @@ -157,7 +155,7 @@ int32_t syncNodeOnAppendEntries(SSyncNode* ths, const SRpcMsg* pRpcMsg) { goto _IGNORE; } - sGTrace("vgId:%d, recv append entries msg. index:%" PRId64 ", term:%" PRId64 ", preLogIndex:%" PRId64 + sGTrace(&pRpcMsg->info.traceId, "vgId:%d, recv append entries msg. index:%" PRId64 ", term:%" PRId64 ", preLogIndex:%" PRId64 ", prevLogTerm:%" PRId64 " commitIndex:%" PRId64 " entryterm:%" PRId64, pMsg->vgId, pMsg->prevLogIndex + 1, pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, pMsg->commitIndex, pEntry->term); @@ -177,20 +175,22 @@ int32_t syncNodeOnAppendEntries(SSyncNode* ths, const SRpcMsg* pRpcMsg) { _SEND_RESPONSE: pEntry = NULL; - pReply->matchIndex = syncLogBufferProceed(ths->pLogBuf, ths, &pReply->lastMatchTerm, "OnAppn"); + pReply->matchIndex = syncLogBufferProceed(ths->pLogBuf, ths, &pReply->lastMatchTerm, "OnAppn", pRpcMsg); bool matched = (pReply->matchIndex >= pReply->lastSendIndex); if (accepted && matched) { pReply->success = true; // update commit index only after matching SyncIndex returnIndex = syncNodeUpdateCommitIndex(ths, TMIN(pMsg->commitIndex, pReply->lastSendIndex)); - sTrace("vgId:%d, update commit return index %" PRId64 "", ths->vgId, returnIndex); + sTrace("vgId:%d, update commit return index:%" PRId64, ths->vgId, returnIndex); } TRACE_SET_MSGID(&(rpcRsp.info.traceId), tGenIdPI64()); - trace = &(rpcRsp.info.traceId); - sGTrace("vgId:%d, send append reply matchIndex:%" PRId64 " term:%" PRId64 " lastSendIndex:%" PRId64 - " to dest: 0x%016" PRIx64, - ths->vgId, pReply->matchIndex, pReply->term, pReply->lastSendIndex, pReply->destId.addr); + { + sGTrace(&rpcRsp.info.traceId, + "vgId:%d, send append reply matchIndex:%" PRId64 " term:%" PRId64 " lastSendIndex:%" PRId64 + " to dest:0x%016" PRIx64, + ths->vgId, pReply->matchIndex, pReply->term, pReply->lastSendIndex, pReply->destId.addr); + } // ack, i.e. send response TAOS_CHECK_RETURN(syncNodeSendMsgById(&pReply->destId, ths, &rpcRsp)); diff --git a/source/libs/sync/src/syncAppendEntriesReply.c b/source/libs/sync/src/syncAppendEntriesReply.c index 9b2a7c46ff..14988b0eee 100644 --- a/source/libs/sync/src/syncAppendEntriesReply.c +++ b/source/libs/sync/src/syncAppendEntriesReply.c @@ -42,30 +42,28 @@ int32_t syncNodeOnAppendEntriesReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { int32_t code = 0; SyncAppendEntriesReply* pMsg = (SyncAppendEntriesReply*)pRpcMsg->pCont; - int32_t ret = 0; - const STraceId* trace = &pRpcMsg->info.traceId; - char tbuf[40] = {0}; + int32_t ret = 0; // if already drop replica, do not process if (!syncNodeInRaftGroup(ths, &(pMsg->srcId))) { - syncLogRecvAppendEntriesReply(ths, pMsg, "not in my config"); + syncLogRecvAppendEntriesReply(ths, pMsg, "not in my config", &pRpcMsg->info.traceId); return 0; } // drop stale response if (pMsg->term < raftStoreGetTerm(ths)) { - syncLogRecvAppendEntriesReply(ths, pMsg, "drop stale response"); + syncLogRecvAppendEntriesReply(ths, pMsg, "drop stale response", &pRpcMsg->info.traceId); return 0; } if (ths->state == TAOS_SYNC_STATE_LEADER || ths->state == TAOS_SYNC_STATE_ASSIGNED_LEADER) { if (pMsg->term != raftStoreGetTerm(ths)) { - syncLogRecvAppendEntriesReply(ths, pMsg, "error term"); + syncLogRecvAppendEntriesReply(ths, pMsg, "error term", &pRpcMsg->info.traceId); syncNodeStepDown(ths, pMsg->term, pMsg->srcId); return TSDB_CODE_SYN_WRONG_TERM; } - sGTrace("vgId:%d, received append entries reply. srcId:0x%016" PRIx64 ", term:%" PRId64 ", matchIndex:%" PRId64 "", + sGDebug(&pRpcMsg->info.traceId, "vgId:%d, received append entries reply, srcId:0x%016" PRIx64 ", term:%" PRId64 ", matchIndex:%" PRId64, pMsg->vgId, pMsg->srcId.addr, pMsg->term, pMsg->matchIndex); if (pMsg->success) { diff --git a/source/libs/sync/src/syncCommit.c b/source/libs/sync/src/syncCommit.c index b3560f9283..702a51ce44 100644 --- a/source/libs/sync/src/syncCommit.c +++ b/source/libs/sync/src/syncCommit.c @@ -86,7 +86,7 @@ int64_t syncNodeCheckCommitIndex(SSyncNode* ths, SyncIndex indexLikely) { if (indexLikely > ths->commitIndex && syncNodeAgreedUpon(ths, indexLikely)) { SyncIndex commitIndex = indexLikely; SyncIndex returnIndex = syncNodeUpdateCommitIndex(ths, commitIndex); - sTrace("vgId:%d, agreed upon. role:%d, term:%" PRId64 ", index:%" PRId64 ", return:%" PRId64, ths->vgId, ths->state, + sTrace("vgId:%d, agreed upon, role:%d, term:%" PRId64 ", index:%" PRId64 ", return:%" PRId64, ths->vgId, ths->state, raftStoreGetTerm(ths), commitIndex, returnIndex); } return ths->commitIndex; diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 587ba6c72a..a0d76aade6 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -943,14 +943,13 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ // after raft member change, need to handle 1->2 switching point // at this point, need to switch entry handling thread if (pSyncNode->replicaNum == 1) { - sTrace("vgId:%d, propose optimized msg, index:%" PRId64 " type:%s", pSyncNode->vgId, retIndex, - TMSG_INFO(pMsg->msgType)); + sGDebug(&pMsg->info.traceId, "vgId:%d, index:%" PRId64 ", propose optimized msg type:%s", pSyncNode->vgId, + retIndex, TMSG_INFO(pMsg->msgType)); return 1; } else { - sTrace("vgId:%d, propose optimized msg, return to normal, index:%" PRId64 - " type:%s, " - "handle:%p", - pSyncNode->vgId, retIndex, TMSG_INFO(pMsg->msgType), pMsg->info.handle); + sGDebug(&pMsg->info.traceId, + "vgId:%d, index:%" PRId64 ", propose optimized msg, return to normal, type:%s, handle:%p", + pSyncNode->vgId, retIndex, TMSG_INFO(pMsg->msgType), pMsg->info.handle); return 0; } } else { @@ -962,7 +961,7 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ } else { SRespStub stub = {.createTime = taosGetTimestampMs(), .rpcMsg = *pMsg}; uint64_t seqNum = syncRespMgrAdd(pSyncNode->pSyncRespMgr, &stub); - SRpcMsg rpcMsg = {0}; + SRpcMsg rpcMsg = {.info.traceId = pMsg->info.traceId}; int32_t code = syncBuildClientRequest(&rpcMsg, pMsg, seqNum, isWeak, pSyncNode->vgId); if (code != 0) { sError("vgId:%d, failed to propose msg while serialize since %s", pSyncNode->vgId, terrstr()); @@ -970,7 +969,7 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ TAOS_RETURN(code); } - sNTrace(pSyncNode, "propose msg, type:%s", TMSG_INFO(pMsg->msgType)); + sGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, propose msg, type:%s", pSyncNode->vgId, pMsg, TMSG_INFO(pMsg->msgType)); code = (*pSyncNode->syncEqMsg)(pSyncNode->msgcb, &rpcMsg); if (code != 0) { sWarn("vgId:%d, failed to propose msg while enqueue since %s", pSyncNode->vgId, terrstr()); @@ -1465,7 +1464,7 @@ int32_t syncNodeRestore(SSyncNode* pSyncNode) { if (lastVer != -1 && endIndex != lastVer + 1) { code = TSDB_CODE_WAL_LOG_INCOMPLETE; - sWarn("vgId:%d, failed to restore sync node since %s. expected lastLogIndex:%" PRId64 ", lastVer:%" PRId64 "", + sWarn("vgId:%d, failed to restore sync node since %s. expected lastLogIndex:%" PRId64 ", lastVer:%" PRId64, pSyncNode->vgId, terrstr(), endIndex - 1, lastVer); // TAOS_RETURN(code); } @@ -2366,7 +2365,7 @@ void syncNodeCandidate2Leader(SSyncNode* pSyncNode) { SyncIndex lastIndex = pSyncNode->pLogStore->syncLogLastIndex(pSyncNode->pLogStore); - sInfo("vgId:%d, become leader. term:%" PRId64 ", commit index:%" PRId64 ", last index:%" PRId64 "", pSyncNode->vgId, + sInfo("vgId:%d, become leader. term:%" PRId64 ", commit index:%" PRId64 ", last index:%" PRId64, pSyncNode->vgId, raftStoreGetTerm(pSyncNode), pSyncNode->commitIndex, lastIndex); } @@ -2791,8 +2790,8 @@ static void syncNodeEqPeerHeartbeatTimer(void* param, void* tmrId) { // send msg TRACE_SET_MSGID(&(rpcMsg.info.traceId), tGenIdPI64()); - STraceId* trace = &(rpcMsg.info.traceId); - sGTrace("vgId:%d, send sync-heartbeat to dnode:%d", pSyncNode->vgId, DID(&(pSyncMsg->destId))); + sGTrace(&rpcMsg.info.traceId, "vgId:%d, send sync-heartbeat to dnode:%d", pSyncNode->vgId, + DID(&(pSyncMsg->destId))); syncLogSendHeartbeat(pSyncNode, pSyncMsg, false, timerElapsed, pData->execTime); int ret = syncNodeSendHeartbeat(pSyncNode, &pSyncMsg->destId, &rpcMsg); if (ret != 0) { @@ -2811,7 +2810,7 @@ static void syncNodeEqPeerHeartbeatTimer(void* param, void* tmrId) { } } else { - sTrace("vgId:%d, do not send hb, timerLogicClock:%" PRId64 ", msgLogicClock:%" PRId64 "", pSyncNode->vgId, + sTrace("vgId:%d, do not send hb, timerLogicClock:%" PRId64 ", msgLogicClock:%" PRId64, pSyncNode->vgId, timerLogicClock, msgLogicClock); } } @@ -3404,12 +3403,12 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) TAOS_RETURN(code); } -int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry) { +int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry, SRpcMsg* pMsg) { int32_t code = -1; if (pEntry->dataLen < sizeof(SMsgHead)) { code = TSDB_CODE_SYN_INTERNAL_ERROR; - sError("vgId:%d, cannot append an invalid client request with no msg head. type:%s, dataLen:%d", ths->vgId, - TMSG_INFO(pEntry->originalRpcType), pEntry->dataLen); + sError("vgId:%d, msg:%p, cannot append an invalid client request with no msg head, type:%s dataLen:%d", ths->vgId, + pMsg, TMSG_INFO(pEntry->originalRpcType), pEntry->dataLen); syncEntryDestroy(pEntry); pEntry = NULL; goto _out; @@ -3417,10 +3416,10 @@ int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry) { // append to log buffer if ((code = syncLogBufferAppend(ths->pLogBuf, ths, pEntry)) < 0) { - sError("vgId:%d, failed to enqueue sync log buffer, index:%" PRId64, ths->vgId, pEntry->index); + sError("vgId:%d, index:%" PRId64 ", failed to enqueue sync log buffer", ths->vgId, pEntry->index); int32_t ret = 0; if ((ret = syncFsmExecute(ths, ths->pFsm, ths->state, raftStoreGetTerm(ths), pEntry, terrno, false)) != 0) { - sError("vgId:%d, failed to execute fsm, since %s", ths->vgId, tstrerror(ret)); + sError("vgId:%d, index:%" PRId64 ", failed to execute fsm since %s", ths->vgId, pEntry->index, tstrerror(ret)); } syncEntryDestroy(pEntry); pEntry = NULL; @@ -3430,21 +3429,26 @@ int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry) { code = 0; _out:; // proceed match index, with replicating on needed - SyncIndex matchIndex = syncLogBufferProceed(ths->pLogBuf, ths, NULL, "Append"); + SyncIndex matchIndex = syncLogBufferProceed(ths->pLogBuf, ths, NULL, "Append", pMsg); - if (pEntry != NULL) - sTrace("vgId:%d, append raft entry. index:%" PRId64 ", term:%" PRId64 " pBuf: [%" PRId64 " %" PRId64 " %" PRId64 - ", %" PRId64 ")", - ths->vgId, pEntry->index, pEntry->term, ths->pLogBuf->startIndex, ths->pLogBuf->commitIndex, - ths->pLogBuf->matchIndex, ths->pLogBuf->endIndex); + if (pEntry != NULL) { + sGDebug(&pEntry->originRpcTraceId, + "vgId:%d, index:%" PRId64 ", append raft entry, msg:%p term:%" PRId64 " buf:[%" PRId64 " %" PRId64 + " %" PRId64 ", %" PRId64 ")", + ths->vgId, pEntry->index, pMsg, pEntry->term, ths->pLogBuf->startIndex, ths->pLogBuf->commitIndex, + ths->pLogBuf->matchIndex, ths->pLogBuf->endIndex); + } if (code == 0 && ths->state == TAOS_SYNC_STATE_ASSIGNED_LEADER) { int64_t index = syncNodeUpdateAssignedCommitIndex(ths, matchIndex); - sTrace("vgId:%d, update assigned commit index %" PRId64 "", ths->vgId, index); + sGTrace(pEntry ? &pEntry->originRpcTraceId : NULL, "vgId:%d, index:%" PRId64 ", update assigned commit, msg:%p", + ths->vgId, index, pMsg); if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && syncLogBufferCommit(ths->pLogBuf, ths, ths->assignedCommitIndex) < 0) { - sError("vgId:%d, failed to commit until commitIndex:%" PRId64 "", ths->vgId, ths->commitIndex); + sGError(pEntry ? &pEntry->originRpcTraceId : NULL, + "vgId:%d, index:%" PRId64 ", failed to commit, msg:%p commit index:%" PRId64, ths->vgId, index, pMsg, + ths->commitIndex); code = TSDB_CODE_SYN_INTERNAL_ERROR; } } @@ -3456,11 +3460,15 @@ _out:; // single replica SyncIndex returnIndex = syncNodeUpdateCommitIndex(ths, matchIndex); - sTrace("vgId:%d, update commit return index %" PRId64 "", ths->vgId, returnIndex); + sGTrace(pEntry ? &pEntry->originRpcTraceId : NULL, + "vgId:%d, index:%" PRId64 ", raft entry update commit, msg:%p return index:%" PRId64, ths->vgId, matchIndex, + pMsg, returnIndex); if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && (code = syncLogBufferCommit(ths->pLogBuf, ths, ths->commitIndex)) < 0) { - sError("vgId:%d, failed to commit until commitIndex:%" PRId64 "", ths->vgId, ths->commitIndex); + sGError(pEntry ? &pEntry->originRpcTraceId : NULL, + "vgId:%d, index:%" PRId64 ", failed to commit, msg:%p commit index:%" PRId64 " return index:%" PRId64, + ths->vgId, matchIndex, pMsg, ths->commitIndex, returnIndex); } TAOS_RETURN(code); @@ -3522,7 +3530,7 @@ static int32_t syncNodeAppendNoop(SSyncNode* ths) { TAOS_RETURN(code); } - code = syncNodeAppend(ths, pEntry); + code = syncNodeAppend(ths, pEntry, NULL); TAOS_RETURN(code); } @@ -3561,13 +3569,9 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncHeartbeat* pMsg = pRpcMsg->pCont; bool resetElect = false; - const STraceId* trace = &pRpcMsg->info.traceId; - char tbuf[40] = {0}; - TRACE_TO_STR(trace, tbuf); - int64_t tsMs = taosGetTimestampMs(); int64_t timeDiff = tsMs - pMsg->timeStamp; - syncLogRecvHeartbeat(ths, pMsg, timeDiff, tbuf); + syncLogRecvHeartbeat(ths, pMsg, timeDiff, &pRpcMsg->info.traceId); if (!syncNodeInRaftGroup(ths, &pMsg->srcId)) { sWarn( @@ -3591,14 +3595,14 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { // reply TRACE_SET_MSGID(&(rpcMsg.info.traceId), tGenIdPI64()); - trace = &(rpcMsg.info.traceId); - sGTrace("vgId:%d, send sync-heartbeat-reply to dnode:%d term:%" PRId64 " timestamp:%" PRId64, ths->vgId, - DID(&(pMsgReply->destId)), pMsgReply->term, pMsgReply->timeStamp); + sGTrace(&rpcMsg.info.traceId, "vgId:%d, send sync-heartbeat-reply to dnode:%d term:%" PRId64 " timestamp:%" PRId64, + ths->vgId, DID(&(pMsgReply->destId)), pMsgReply->term, pMsgReply->timeStamp); TAOS_CHECK_RETURN(syncNodeSendMsgById(&pMsgReply->destId, ths, &rpcMsg)); if (currentTerm == 0) currentTerm = raftStoreGetTerm(ths); - sGTrace("vgId:%d, process sync-heartbeat msg from dnode:%d, cluster:%d, Msgterm:%" PRId64 " currentTerm:%" PRId64, + sGTrace(&rpcMsg.info.traceId, + "vgId:%d, process sync-heartbeat msg from dnode:%d, cluster:%d, Msgterm:%" PRId64 " currentTerm:%" PRId64, ths->vgId, DID(&(pMsg->srcId)), CID(&(pMsg->srcId)), pMsg->term, currentTerm); if (pMsg->term > currentTerm && ths->state == TAOS_SYNC_STATE_LEARNER) { @@ -3662,22 +3666,19 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } int32_t syncNodeOnHeartbeatReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { - int32_t code = 0; - const STraceId* trace = &pRpcMsg->info.traceId; - char tbuf[40] = {0}; - TRACE_TO_STR(trace, tbuf); + int32_t code = 0; SyncHeartbeatReply* pMsg = pRpcMsg->pCont; SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(ths, &pMsg->srcId); if (pMgr == NULL) { code = TSDB_CODE_SYN_RETURN_VALUE_NULL; if (terrno != 0) code = terrno; - sError("vgId:%d, failed to get log repl mgr for the peer at addr 0x016%" PRIx64 "", ths->vgId, pMsg->srcId.addr); + sError("vgId:%d, failed to get log repl mgr for the peer at addr 0x016%" PRIx64, ths->vgId, pMsg->srcId.addr); TAOS_RETURN(code); } int64_t tsMs = taosGetTimestampMs(); - syncLogRecvHeartbeatReply(ths, pMsg, tsMs - pMsg->timeStamp, tbuf); + syncLogRecvHeartbeatReply(ths, pMsg, tsMs - pMsg->timeStamp, &pRpcMsg->info.traceId); syncIndexMgrSetRecvTime(ths->pMatchIndex, &pMsg->srcId, tsMs); @@ -3688,13 +3689,9 @@ int32_t syncNodeOnHeartbeatReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { int32_t syncNodeOnHeartbeatReplyOld(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncHeartbeatReply* pMsg = pRpcMsg->pCont; - const STraceId* trace = &pRpcMsg->info.traceId; - char tbuf[40] = {0}; - TRACE_TO_STR(trace, tbuf); - int64_t tsMs = taosGetTimestampMs(); int64_t timeDiff = tsMs - pMsg->timeStamp; - syncLogRecvHeartbeatReply(ths, pMsg, timeDiff, tbuf); + syncLogRecvHeartbeatReply(ths, pMsg, timeDiff, &pRpcMsg->info.traceId); // update last reply time, make decision whether the other node is alive or not syncIndexMgrSetRecvTime(ths->pMatchIndex, &pMsg->srcId, tsMs); @@ -3704,7 +3701,7 @@ int32_t syncNodeOnHeartbeatReplyOld(SSyncNode* ths, const SRpcMsg* pRpcMsg) { int32_t syncNodeOnLocalCmd(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncLocalCmd* pMsg = pRpcMsg->pCont; - syncLogRecvLocalCmd(ths, pMsg, ""); + syncLogRecvLocalCmd(ths, pMsg, &pRpcMsg->info.traceId); if (pMsg->cmd == SYNC_LOCAL_CMD_STEP_DOWN) { SRaftId id = EMPTY_RAFT_ID; @@ -3712,7 +3709,7 @@ int32_t syncNodeOnLocalCmd(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } else if (pMsg->cmd == SYNC_LOCAL_CMD_FOLLOWER_CMT || pMsg->cmd == SYNC_LOCAL_CMD_LEARNER_CMT) { if (syncLogBufferIsEmpty(ths->pLogBuf)) { - sError("vgId:%d, sync log buffer is empty.", ths->vgId); + sError("vgId:%d, sync log buffer is empty", ths->vgId); return 0; } SyncTerm matchTerm = syncLogBufferGetLastMatchTerm(ths->pLogBuf); @@ -3721,10 +3718,10 @@ int32_t syncNodeOnLocalCmd(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } if (pMsg->currentTerm == matchTerm) { SyncIndex returnIndex = syncNodeUpdateCommitIndex(ths, pMsg->commitIndex); - sTrace("vgId:%d, update commit return index %" PRId64 "", ths->vgId, returnIndex); + sTrace("vgId:%d, raft entry update commit return index:%" PRId64, ths->vgId, returnIndex); } if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && syncLogBufferCommit(ths->pLogBuf, ths, ths->commitIndex) < 0) { - sError("vgId:%d, failed to commit raft log since %s. commit index:%" PRId64 "", ths->vgId, terrstr(), + sError("vgId:%d, failed to commit raft log since %s. commit index:%" PRId64, ths->vgId, terrstr(), ths->commitIndex); } } else { @@ -3746,21 +3743,20 @@ int32_t syncNodeOnLocalCmd(SSyncNode* ths, const SRpcMsg* pRpcMsg) { // int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIndex) { - sNTrace(ths, "on client request"); - + sGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, process client request", ths->vgId, pMsg); int32_t code = 0; SyncIndex index = syncLogBufferGetEndIndex(ths->pLogBuf); SyncTerm term = raftStoreGetTerm(ths); SSyncRaftEntry* pEntry = NULL; if (pMsg->msgType == TDMT_SYNC_CLIENT_REQUEST) { - pEntry = syncEntryBuildFromClientRequest(pMsg->pCont, term, index); + pEntry = syncEntryBuildFromClientRequest(pMsg->pCont, term, index, &pMsg->info.traceId); } else { pEntry = syncEntryBuildFromRpcMsg(pMsg, term, index); } if (pEntry == NULL) { - sError("vgId:%d, failed to process client request since %s.", ths->vgId, terrstr()); + sGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to process client request since %s", ths->vgId, pMsg, terrstr()); return TSDB_CODE_SYN_INTERNAL_ERROR; } @@ -3780,7 +3776,7 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn if (pEntry->originalRpcType == TDMT_SYNC_CONFIG_CHANGE) { int32_t code = syncNodeCheckChangeConfig(ths, pEntry); if (code < 0) { - sError("vgId:%d, failed to check change config since %s.", ths->vgId, terrstr()); + sGError(&pMsg->info.traceId, "vgId:%d, msg:%p, failed to check change config since %s", ths->vgId, pMsg, terrstr()); syncEntryDestroy(pEntry); pEntry = NULL; TAOS_RETURN(code); @@ -3789,8 +3785,8 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn if (code > 0) { SRpcMsg rsp = {.code = pMsg->code, .info = pMsg->info}; int32_t num = syncRespMgrGetAndDel(ths->pSyncRespMgr, pEntry->seqNum, &rsp.info); - sDebug("vgId:%d, get response stub for config change, seqNum:%" PRIu64 ", num:%d", ths->vgId, pEntry->seqNum, - num); + sGDebug(&pMsg->info.traceId, "vgId:%d, msg:%p, get response stub for config change, seqNum:%" PRIu64 " num:%d", + ths->vgId, pMsg, pEntry->seqNum, num); if (rsp.info.handle != NULL) { tmsgSendRsp(&rsp); } @@ -3800,7 +3796,7 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn } } - code = syncNodeAppend(ths, pEntry); + code = syncNodeAppend(ths, pEntry, pMsg); return code; } else { syncEntryDestroy(pEntry); diff --git a/source/libs/sync/src/syncMessage.c b/source/libs/sync/src/syncMessage.c index e4caf69845..9ba6df0632 100644 --- a/source/libs/sync/src/syncMessage.c +++ b/source/libs/sync/src/syncMessage.c @@ -152,6 +152,7 @@ int32_t syncBuildAppendEntriesFromRaftEntry(SSyncNode* pNode, SSyncRaftEntry* pE SRpcMsg* pRpcMsg) { uint32_t dataLen = pEntry->bytes; uint32_t bytes = sizeof(SyncAppendEntries) + dataLen; + pRpcMsg->info.traceId = pEntry->originRpcTraceId; pRpcMsg->contLen = bytes; pRpcMsg->pCont = rpcMallocCont(pRpcMsg->contLen); if (pRpcMsg->pCont == NULL) { diff --git a/source/libs/sync/src/syncPipeline.c b/source/libs/sync/src/syncPipeline.c index 0759b3f97c..ead69f00ac 100644 --- a/source/libs/sync/src/syncPipeline.c +++ b/source/libs/sync/src/syncPipeline.c @@ -54,7 +54,7 @@ int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt if (index - pBuf->startIndex >= pBuf->size) { code = TSDB_CODE_SYN_BUFFER_FULL; - sError("vgId:%d, failed to append since %s. index:%" PRId64 "", pNode->vgId, tstrerror(code), index); + sError("vgId:%d, failed to append since %s, index:%" PRId64, pNode->vgId, tstrerror(code), index); goto _err; } @@ -68,7 +68,7 @@ int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt SyncIndex appliedIndex = pNode->pFsm->FpAppliedIndexCb(pNode->pFsm); if (pNode->restoreFinish && pBuf->commitIndex - appliedIndex >= TSDB_SYNC_APPLYQ_SIZE_LIMIT) { code = TSDB_CODE_SYN_WRITE_STALL; - sError("vgId:%d, failed to append since %s. index:%" PRId64 ", commit-index:%" PRId64 ", applied-index:%" PRId64, + sError("vgId:%d, failed to append since %s, index:%" PRId64 ", commit-index:%" PRId64 ", applied-index:%" PRId64, pNode->vgId, tstrerror(code), index, pBuf->commitIndex, appliedIndex); goto _err; } @@ -84,7 +84,7 @@ int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt goto _err; } - // initial log buffer with at least one item, e.g. commitIndex + // initial log buffer with at least one item, e.g, commitIndex SSyncRaftEntry* pMatch = pBuf->entries[(index - 1 + pBuf->size) % pBuf->size].pItem; if (pMatch == NULL) { sError("vgId:%d, no matched log entry", pNode->vgId); @@ -184,7 +184,7 @@ int32_t syncLogReplGetPrevLogTerm(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncI } *pSyncTerm = -1; - sInfo("vgId:%d, failed to get log term since %s. index:%" PRId64, pNode->vgId, tstrerror(code), prevIndex); + sInfo("vgId:%d, failed to get log term since %s, index:%" PRId64, pNode->vgId, tstrerror(code), prevIndex); TAOS_RETURN(code); } @@ -195,16 +195,16 @@ SSyncRaftEntry* syncEntryBuildDummy(SyncTerm term, SyncIndex index, int32_t vgId int32_t syncLogValidateAlignmentOfCommit(SSyncNode* pNode, SyncIndex commitIndex) { SyncIndex firstVer = pNode->pLogStore->syncLogBeginIndex(pNode->pLogStore); if (firstVer > commitIndex + 1) { - sError("vgId:%d, firstVer of WAL log greater than tsdb commit version + 1. firstVer:%" PRId64 - ", tsdb commit version:%" PRId64 "", + sError("vgId:%d, firstVer of WAL log greater than tsdb commit version + 1, firstVer:%" PRId64 + ", tsdb commit version:%" PRId64, pNode->vgId, firstVer, commitIndex); return TSDB_CODE_WAL_LOG_INCOMPLETE; } SyncIndex lastVer = pNode->pLogStore->syncLogLastIndex(pNode->pLogStore); if (lastVer < commitIndex) { - sError("vgId:%d, lastVer of WAL log less than tsdb commit version. lastVer:%" PRId64 - ", tsdb commit version:%" PRId64 "", + sError("vgId:%d, lastVer of WAL log less than tsdb commit version, lastVer:%" PRId64 + ", tsdb commit version:%" PRId64, pNode->vgId, lastVer, commitIndex); return TSDB_CODE_WAL_LOG_INCOMPLETE; } @@ -257,7 +257,7 @@ int32_t syncLogBufferInitWithoutLock(SSyncLogBuffer* pBuf, SSyncNode* pNode) { } if (pLogStore->syncLogGetEntry(pLogStore, index, &pEntry) < 0) { - sWarn("vgId:%d, failed to get log entry since %s. index:%" PRId64 "", pNode->vgId, tstrerror(code), index); + sWarn("vgId:%d, failed to get log entry since %s, index:%" PRId64, pNode->vgId, tstrerror(code), index); break; } @@ -312,7 +312,7 @@ int32_t syncLogBufferInitWithoutLock(SSyncLogBuffer* pBuf, SSyncNode* pNode) { pBuf->isCatchup = false; - sInfo("vgId:%d, init sync log buffer. buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, + sInfo("vgId:%d, init sync log buffer, buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); // validate @@ -396,7 +396,7 @@ int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt } if (index <= pBuf->commitIndex) { - sTrace("vgId:%d, already committed. index:%" PRId64 ", term:%" PRId64 ". log buffer: [%" PRId64 " %" PRId64 + sTrace("vgId:%d, already committed, index:%" PRId64 ", term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pEntry->index, pEntry->term, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -416,14 +416,14 @@ int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt if (pNode->raftCfg.cfg.nodeInfo[pNode->raftCfg.cfg.myIndex].nodeRole == TAOS_SYNC_ROLE_LEARNER && index > 0 && index > pBuf->totalIndex) { pBuf->totalIndex = index; - sTrace("vgId:%d, update learner progress. index:%" PRId64 ", term:%" PRId64 ": prevterm:%" PRId64 - " != lastmatch:%" PRId64 ". log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", + sTrace("vgId:%d, update learner progress, index:%" PRId64 ", term:%" PRId64 ": prevterm:%" PRId64 + " != lastmatch:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pEntry->index, pEntry->term, prevTerm, lastMatchTerm, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); } if (index - pBuf->startIndex >= pBuf->size) { - sWarn("vgId:%d, out of buffer range. index:%" PRId64 ", term:%" PRId64 ". log buffer: [%" PRId64 " %" PRId64 + sWarn("vgId:%d, out of buffer range, index:%" PRId64 ", term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pEntry->index, pEntry->term, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -432,8 +432,8 @@ int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt } if (index > pBuf->matchIndex && lastMatchTerm != prevTerm) { - sWarn("vgId:%d, not ready to accept. index:%" PRId64 ", term:%" PRId64 ": prevterm:%" PRId64 - " != lastmatch:%" PRId64 ". log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", + sWarn("vgId:%d, not ready to accept, index:%" PRId64 ", term:%" PRId64 ": prevterm:%" PRId64 + " != lastmatch:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pEntry->index, pEntry->term, prevTerm, lastMatchTerm, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); code = TSDB_CODE_ACTION_IN_PROGRESS; @@ -452,7 +452,7 @@ int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEnt if (pEntry->term != pExist->term) { TAOS_CHECK_GOTO(syncLogBufferRollback(pBuf, pNode, index), NULL, _out); } else { - sTrace("vgId:%d, duplicate log entry received. index:%" PRId64 ", term:%" PRId64 ". log buffer: [%" PRId64 + sTrace("vgId:%d, duplicate log entry received, index:%" PRId64 ", term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pEntry->index, pEntry->term, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -518,7 +518,7 @@ int32_t syncLogStorePersist(SSyncLogStore* pLogStore, SSyncNode* pNode, SSyncRaf if (pEntry->index < 0) return TSDB_CODE_SYN_INTERNAL_ERROR; SyncIndex lastVer = pLogStore->syncLogLastIndex(pLogStore); if (lastVer >= pEntry->index && (code = pLogStore->syncLogTruncate(pLogStore, pEntry->index)) < 0) { - sError("failed to truncate log store since %s. from index:%" PRId64 "", tstrerror(code), pEntry->index); + sError("failed to truncate log store since %s, from index:%" PRId64, tstrerror(code), pEntry->index); TAOS_RETURN(code); } lastVer = pLogStore->syncLogLastIndex(pLogStore); @@ -526,7 +526,7 @@ int32_t syncLogStorePersist(SSyncLogStore* pLogStore, SSyncNode* pNode, SSyncRaf bool doFsync = syncLogStoreNeedFlush(pEntry, pNode->replicaNum); if ((code = pLogStore->syncLogAppendEntry(pLogStore, pEntry, doFsync)) < 0) { - sError("failed to append sync log entry since %s. index:%" PRId64 ", term:%" PRId64 "", tstrerror(code), + sError("failed to append sync log entry since %s, index:%" PRId64 ", term:%" PRId64, tstrerror(code), pEntry->index, pEntry->term); TAOS_RETURN(code); } @@ -536,7 +536,7 @@ int32_t syncLogStorePersist(SSyncLogStore* pLogStore, SSyncNode* pNode, SSyncRaf return 0; } -int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm, char* str) { +int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm, char* str, const SRpcMsg *pMsg) { TAOS_CHECK_RETURN(syncLogBufferValidate(pBuf)); (void)taosThreadMutexLock(&pBuf->mutex); @@ -558,13 +558,13 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p SyncTerm prevLogTerm = pBufEntry->prevLogTerm; SSyncRaftEntry* pEntry = pBufEntry->pItem; if (pEntry == NULL) { - sTrace("vgId:%d, cannot proceed match index in log buffer. no raft entry at next pos of matchIndex:%" PRId64, - pNode->vgId, pBuf->matchIndex); + sTrace("vgId:%d, msg:%p, cannot proceed match index in log buffer, no raft entry at next pos of matchIndex:%" PRId64, + pNode->vgId, pMsg, pBuf->matchIndex); goto _out; } if (index != pEntry->index) { - sError("vgId:%d, failed to proceed index:%" PRId64 ", pEntry->index:%" PRId64, pNode->vgId, index, pEntry->index); + sError("vgId:%d, msg:%p, failed to proceed index:%" PRId64 ", pEntry->index:%" PRId64, pNode->vgId, pMsg, index, pEntry->index); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } @@ -572,49 +572,50 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p // match SSyncRaftEntry* pMatch = pBuf->entries[(pBuf->matchIndex + pBuf->size) % pBuf->size].pItem; if (pMatch == NULL) { - sError("vgId:%d, failed to proceed since pMatch is null", pNode->vgId); + sError("vgId:%d, msg:%p, failed to proceed since pMatch is null", pNode->vgId, pMsg); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } if (pMatch->index != pBuf->matchIndex) { - sError("vgId:%d, failed to proceed, pMatch->index:%" PRId64 ", pBuf->matchIndex:%" PRId64, pNode->vgId, - pMatch->index, pBuf->matchIndex); + sError("vgId:%d, msg:%p, failed to proceed, pMatch->index:%" PRId64 ", pBuf->matchIndex:%" PRId64, pNode->vgId, + pMsg, pMatch->index, pBuf->matchIndex); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } if (pMatch->index + 1 != pEntry->index) { - sError("vgId:%d, failed to proceed, pMatch->index:%" PRId64 ", pEntry->index:%" PRId64, pNode->vgId, + sError("vgId:%d, msg:%p, failed to proceed, pMatch->index:%" PRId64 ", pEntry->index:%" PRId64, pNode->vgId, pMsg, pMatch->index, pEntry->index); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } if (prevLogIndex != pMatch->index) { - sError("vgId:%d, failed to proceed, prevLogIndex:%" PRId64 ", pMatch->index:%" PRId64, pNode->vgId, prevLogIndex, - pMatch->index); + sError("vgId:%d, msg:%p, failed to proceed, prevLogIndex:%" PRId64 ", pMatch->index:%" PRId64, pNode->vgId, pMsg, + prevLogIndex, pMatch->index); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } if (pMatch->term != prevLogTerm) { sInfo( - "vgId:%d, mismatching sync log entries encountered. " + "vgId:%d, msg:%p, mismatching sync log entries encountered, " "{ index:%" PRId64 ", term:%" PRId64 " } " "{ index:%" PRId64 ", term:%" PRId64 ", prevLogIndex:%" PRId64 ", prevLogTerm:%" PRId64 " } ", - pNode->vgId, pMatch->index, pMatch->term, pEntry->index, pEntry->term, prevLogIndex, prevLogTerm); + pNode->vgId, pMsg, pMatch->index, pMatch->term, pEntry->index, pEntry->term, prevLogIndex, prevLogTerm); goto _out; } // increase match index pBuf->matchIndex = index; - sTrace("vgId:%d, log buffer proceed. start index:%" PRId64 ", match index:%" PRId64 ", end index:%" PRId64, - pNode->vgId, pBuf->startIndex, pBuf->matchIndex, pBuf->endIndex); + sGDebug(pMsg ? &pMsg->info.traceId : NULL, + "vgId:%d, msg:%p, log buffer proceed, start index:%" PRId64 ", match index:%" PRId64 ", end index:%" PRId64, + pNode->vgId, pMsg, pBuf->startIndex, pBuf->matchIndex, pBuf->endIndex); // persist if ((code = syncLogStorePersist(pLogStore, pNode, pEntry)) < 0) { - sError("vgId:%d, failed to persist sync log entry from buffer since %s. index:%" PRId64, pNode->vgId, - tstrerror(code), pEntry->index); + sError("vgId:%d, msg:%p, failed to persist sync log entry from buffer since %s, index:%" PRId64, pNode->vgId, + pMsg, tstrerror(code), pEntry->index); taosMsleep(1); goto _out; } @@ -622,28 +623,28 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p if (pEntry->originalRpcType == TDMT_SYNC_CONFIG_CHANGE) { if (pNode->pLogBuf->commitIndex == pEntry->index - 1) { sInfo( - "vgId:%d, to change config at %s. " + "vgId:%d, msg:%p, to change config at %s, " "current entry, index:%" PRId64 ", term:%" PRId64 ", " "node, restore:%d, commitIndex:%" PRId64 ", " "cond: (pre entry index:%" PRId64 "== buf commit index:%" PRId64 ")", - pNode->vgId, str, pEntry->index, pEntry->term, pNode->restoreFinish, pNode->commitIndex, pEntry->index - 1, - pNode->pLogBuf->commitIndex); + pNode->vgId, pMsg, str, pEntry->index, pEntry->term, pNode->restoreFinish, pNode->commitIndex, + pEntry->index - 1, pNode->pLogBuf->commitIndex); if ((code = syncNodeChangeConfig(pNode, pEntry, str)) != 0) { - sError("vgId:%d, failed to change config from Append since %s. index:%" PRId64, pNode->vgId, tstrerror(code), + sError("vgId:%d, failed to change config from Append since %s, index:%" PRId64, pNode->vgId, tstrerror(code), pEntry->index); goto _out; } } else { sInfo( - "vgId:%d, delay change config from Node %s. " + "vgId:%d, msg:%p, delay change config from Node %s, " "curent entry, index:%" PRId64 ", term:%" PRId64 ", " "node, commitIndex:%" PRId64 ", pBuf: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 "), " "cond:( pre entry index:%" PRId64 " != buf commit index:%" PRId64 ")", - pNode->vgId, str, pEntry->index, pEntry->term, pNode->commitIndex, pNode->pLogBuf->startIndex, + pNode->vgId, pMsg, str, pEntry->index, pEntry->term, pNode->commitIndex, pNode->pLogBuf->startIndex, pNode->pLogBuf->commitIndex, pNode->pLogBuf->matchIndex, pNode->pLogBuf->endIndex, pEntry->index - 1, pNode->pLogBuf->commitIndex); } @@ -651,13 +652,14 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p // replicate on demand if ((code = syncNodeReplicateWithoutLock(pNode)) != 0) { - sError("vgId:%d, failed to replicate since %s. index:%" PRId64, pNode->vgId, tstrerror(code), pEntry->index); + sError("vgId:%d, msg:%p, failed to replicate since %s, index:%" PRId64, pNode->vgId, pMsg, tstrerror(code), + pEntry->index); goto _out; } if (pEntry->index != pBuf->matchIndex) { - sError("vgId:%d, failed to proceed, pEntry->index:%" PRId64 ", pBuf->matchIndex:%" PRId64, pNode->vgId, - pEntry->index, pBuf->matchIndex); + sError("vgId:%d, msg:%p, failed to proceed, pEntry->index:%" PRId64 ", pBuf->matchIndex:%" PRId64, pNode->vgId, + pMsg, pEntry->index, pBuf->matchIndex); code = TSDB_CODE_SYN_INTERNAL_ERROR; goto _out; } @@ -683,21 +685,21 @@ int32_t syncFsmExecute(SSyncNode* pNode, SSyncFSM* pFsm, ESyncState role, SyncTe // if force is true, keep all contition check to execute fsm if (pNode->replicaNum == 1 && pNode->restoreFinish && pNode->vgId != 1 && pNode->raftCfg.cfg.nodeInfo[pNode->raftCfg.cfg.myIndex].nodeRole != TAOS_SYNC_ROLE_LEARNER && force == false) { - sDebug("vgId:%d, not to execute fsm, index:%" PRId64 ", term:%" PRId64 - ", type:%s code:0x%x, replicaNum:%d," - "role:%d, restoreFinish:%d", - pNode->vgId, pEntry->index, pEntry->term, TMSG_INFO(pEntry->originalRpcType), applyCode, pNode->replicaNum, - pNode->raftCfg.cfg.nodeInfo[pNode->raftCfg.cfg.myIndex].nodeRole, pNode->restoreFinish); + sGDebug(&pEntry->originRpcTraceId, + "vgId:%d, index:%" PRId64 ", raft fsm no need to execute, term:%" PRId64 + ", type:%s code:0x%x, replica:%d, role:%d, restoreFinish:%d", + pNode->vgId, pEntry->index, pEntry->term, TMSG_INFO(pEntry->originalRpcType), applyCode, pNode->replicaNum, + pNode->raftCfg.cfg.nodeInfo[pNode->raftCfg.cfg.myIndex].nodeRole, pNode->restoreFinish); return 0; } if (pNode->vgId != 1 && syncIsMsgBlock(pEntry->originalRpcType)) { - sTrace("vgId:%d, blocking msg ready to execute, index:%" PRId64 ", term:%" PRId64 ", type:%s code:0x%x", + sTrace("vgId:%d, index:%" PRId64 ", blocking msg ready to execute, term:%" PRId64 ", type:%s code:0x%x", pNode->vgId, pEntry->index, pEntry->term, TMSG_INFO(pEntry->originalRpcType), applyCode); } if (pEntry->originalRpcType == TDMT_VND_COMMIT) { - sInfo("vgId:%d, fsm execute vnode commit. index:%" PRId64 ", term:%" PRId64 "", pNode->vgId, pEntry->index, + sInfo("vgId:%d, index:%" PRId64 ", fsm execute vnode commit, term:%" PRId64, pNode->vgId, pEntry->index, pEntry->term); } @@ -725,7 +727,7 @@ int32_t syncFsmExecute(SSyncNode* pNode, SSyncFSM* pFsm, ESyncState role, SyncTe cbMeta.flag = -1; int32_t num = syncRespMgrGetAndDel(pNode->pSyncRespMgr, cbMeta.seqNum, &rpcMsg.info); - sDebug("vgId:%d, get response info, seqNum:%" PRId64 ", num:%d", pNode->vgId, cbMeta.seqNum, num); + sDebug("vgId:%d, get response info, seqNum:%" PRId64 ", num:%d", pNode->vgId, cbMeta.seqNum, num); code = pFsm->FpCommitCb(pFsm, &rpcMsg, &cbMeta); retry = (code != 0) && (terrno == TSDB_CODE_OUT_OF_RPC_MEMORY_QUEUE); sDebug("vgId:%d, fsm execute, index:%" PRId64 ", term:%" PRId64 ", type:%s, code:%d, retry:%d", pNode->vgId, @@ -733,10 +735,10 @@ int32_t syncFsmExecute(SSyncNode* pNode, SSyncFSM* pFsm, ESyncState role, SyncTe if (retry) { taosMsleep(10); if (code == TSDB_CODE_OUT_OF_RPC_MEMORY_QUEUE) { - sError("vgId:%d, will retry to execute fsm after 10ms, last error is %s. index:%" PRId64, pNode->vgId, + sError("vgId:%d, will retry to execute fsm after 10ms, last error is %s, index:%" PRId64, pNode->vgId, tstrerror(code), pEntry->index); } else { - sDebug("vgId:%d, will retry to execute fsm after 10ms, last error is %s. index:%" PRId64, pNode->vgId, + sDebug("vgId:%d, will retry to execute fsm after 10ms, last error is %s, index:%" PRId64, pNode->vgId, tstrerror(code), pEntry->index); } } @@ -744,7 +746,7 @@ int32_t syncFsmExecute(SSyncNode* pNode, SSyncFSM* pFsm, ESyncState role, SyncTe _exit: if (code < 0) { - sError("vgId:%d, failed to execute fsm at line %d since %s. index:%" PRId64 ", term:%" PRId64 ", type:%s", + sError("vgId:%d, failed to execute fsm at line %d since %s, index:%" PRId64 ", term:%" PRId64 ", type:%s", pNode->vgId, lino, tstrerror(code), pEntry->index, pEntry->term, TMSG_INFO(pEntry->originalRpcType)); } return code; @@ -796,12 +798,12 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm bool restoreFinishAtThisCommit = false; if (commitIndex <= pBuf->commitIndex) { - sDebug("vgId:%d, stale commit index. current:%" PRId64 ", notified:%" PRId64 "", vgId, pBuf->commitIndex, + sDebug("vgId:%d, stale commit index, current:%" PRId64 ", notified:%" PRId64, vgId, pBuf->commitIndex, commitIndex); goto _out; } - sTrace("vgId:%d, commit. log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 "), role:%d, term:%" PRId64, + sTrace("vgId:%d, log commit, buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 "), role:%d, term:%" PRId64, pNode->vgId, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex, role, currentTerm); // execute in fsm @@ -814,26 +816,27 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm // execute it if (!syncUtilUserCommit(pEntry->originalRpcType)) { - sInfo("vgId:%d, commit sync barrier. index:%" PRId64 ", term:%" PRId64 ", type:%s", vgId, pEntry->index, + sInfo("vgId:%d, log commit sync barrier, index:%" PRId64 ", term:%" PRId64 ", type:%s", vgId, pEntry->index, pEntry->term, TMSG_INFO(pEntry->originalRpcType)); } if ((code = syncFsmExecute(pNode, pFsm, role, currentTerm, pEntry, 0, false)) != 0) { - sError("vgId:%d, failed to execute sync log entry. index:%" PRId64 ", term:%" PRId64 + sError("vgId:%d, failed to execute sync log entry, index:%" PRId64 ", term:%" PRId64 ", role:%d, current term:%" PRId64, vgId, pEntry->index, pEntry->term, role, currentTerm); goto _out; } pBuf->commitIndex = index; - sTrace("vgId:%d, committed index:%" PRId64 ", term:%" PRId64 ", role:%d, current term:%" PRId64 "", pNode->vgId, - pEntry->index, pEntry->term, role, currentTerm); + sGDebug(&pEntry->originRpcTraceId, + "vgId:%d, index:%" PRId64 ", raft entry committed, term:%" PRId64 ", role:%d, current term:%" PRId64, + pNode->vgId, pEntry->index, pEntry->term, role, currentTerm); code = syncLogBufferGetOneEntry(pBuf, pNode, index + 1, &nextInBuf, &pNextEntry); if (pNextEntry != NULL) { if (pNextEntry->originalRpcType == TDMT_SYNC_CONFIG_CHANGE) { sInfo( - "vgId:%d, to change config at Commit. " + "vgId:%d, to change config at commit, " "current entry, index:%" PRId64 ", term:%" PRId64 ", " "node, role:%d, current term:%" PRId64 @@ -843,7 +846,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm TMSG_INFO(pNextEntry->originalRpcType)); if ((code = syncNodeChangeConfig(pNode, pNextEntry, "Commit")) != 0) { - sError("vgId:%d, failed to change config from Commit. index:%" PRId64 ", term:%" PRId64 + sError("vgId:%d, failed to change config from Commit, index:%" PRId64 ", term:%" PRId64 ", role:%d, current term:%" PRId64, vgId, pNextEntry->index, pNextEntry->term, role, currentTerm); goto _out; @@ -852,7 +855,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm // for 2->1, need to apply config change entry in sync thread, if (pNode->replicaNum == 1) { if ((code = syncFsmExecute(pNode, pFsm, role, currentTerm, pNextEntry, 0, true)) != 0) { - sError("vgId:%d, failed to execute sync log entry. index:%" PRId64 ", term:%" PRId64 + sError("vgId:%d, failed to execute sync log entry, index:%" PRId64 ", term:%" PRId64 ", role:%d, current term:%" PRId64, vgId, pNextEntry->index, pNextEntry->term, role, currentTerm); goto _out; @@ -861,8 +864,9 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm index++; pBuf->commitIndex = index; - sTrace("vgId:%d, committed index:%" PRId64 ", term:%" PRId64 ", role:%d, current term:%" PRId64 "", - pNode->vgId, pNextEntry->index, pNextEntry->term, role, currentTerm); + sGDebug(&pNextEntry->originRpcTraceId, + "vgId:%d, index:%" PRId64 ", raft entry committed, term:%" PRId64 ", role:%d, current term:%" PRId64, + pNode->vgId, pNextEntry->index, pNextEntry->term, role, currentTerm); } } if (!nextInBuf) { @@ -888,7 +892,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm } SSyncRaftEntry* pEntry = pBuf->entries[(pBuf->startIndex + pBuf->size) % pBuf->size].pItem; if (pEntry == NULL) { - sError("vgId:%d, invalid log entry to recycle. index:%" PRId64 ", startIndex:%" PRId64 ", until:%" PRId64 + sError("vgId:%d, invalid log entry to recycle, index:%" PRId64 ", startIndex:%" PRId64 ", until:%" PRId64 ", commitIndex:%" PRId64 ", endIndex:%" PRId64 ", term:%" PRId64, pNode->vgId, pEntry->index, pBuf->startIndex, until, pBuf->commitIndex, pBuf->endIndex, pEntry->term); return TSDB_CODE_SYN_INTERNAL_ERROR; @@ -897,7 +901,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm pBuf->bytes -= pEntry->bytes; (void)atomic_sub_fetch_64(&tsLogBufferMemoryUsed, (int64_t)pEntry->bytes); } - sDebug("vgId:%d, recycle log entry. index:%" PRId64 ", startIndex:%" PRId64 ", until:%" PRId64 + sDebug("vgId:%d, recycle log entry, index:%" PRId64 ", startIndex:%" PRId64 ", until:%" PRId64 ", commitIndex:%" PRId64 ", endIndex:%" PRId64 ", term:%" PRId64 ", entry bytes:%u, buf bytes:%" PRId64 ", used:%" PRId64 ", allowed:%" PRId64, pNode->vgId, pEntry->index, pBuf->startIndex, until, pBuf->commitIndex, pBuf->endIndex, pEntry->term, @@ -915,7 +919,7 @@ _out: pNode->pFsm->FpRestoreFinishCb(pNode->pFsm, pBuf->commitIndex); pNode->restoreFinish = true; restoreFinishAtThisCommit = true; - sInfo("vgId:%d, restore finished. term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", + sInfo("vgId:%d, restore finished, term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, currentTerm, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); } @@ -963,7 +967,7 @@ int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; if (pMgr->retryBackoff == SYNC_MAX_RETRY_BACKOFF) { syncLogReplReset(pMgr); - sWarn("vgId:%d, reset sync log repl since retry backoff exceeding limit. peer:%" PRIx64, pNode->vgId, + sWarn("vgId:%d, reset sync log repl since retry backoff exceeding limit, peer:%" PRIx64, pNode->vgId, pDestId->addr); return TSDB_CODE_OUT_OF_RANGE; } @@ -991,7 +995,7 @@ int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { if (pMgr->states[pos].acked) { if (pMgr->matchIndex < index && pMgr->states[pos].timeMs + (syncGetRetryMaxWaitMs() << 3) < nowMs) { syncLogReplReset(pMgr); - sWarn("vgId:%d, reset sync log repl since stagnation. index:%" PRId64 ", peer:%" PRIx64, pNode->vgId, index, + sWarn("vgId:%d, reset sync log repl since stagnation, index:%" PRId64 ", peer:%" PRIx64, pNode->vgId, index, pDestId->addr); code = TSDB_CODE_ACTION_IN_PROGRESS; goto _out; @@ -1001,7 +1005,7 @@ int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { bool barrier = false; if ((code = syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier)) < 0) { - sError("vgId:%d, failed to replicate sync log entry since %s. index:%" PRId64 ", dest:%" PRIx64 "", pNode->vgId, + sError("vgId:%d, failed to replicate sync log entry since %s, index:%" PRId64 ", dest:%" PRIx64, pNode->vgId, tstrerror(code), index, pDestId->addr); goto _out; } @@ -1025,7 +1029,7 @@ _out: if (retried) { pMgr->retryBackoff = syncLogReplGetNextRetryBackoff(pMgr); SSyncLogBuffer* pBuf = pNode->pLogBuf; - sInfo("vgId:%d, resend %d sync log entries. dest:%" PRIx64 ", indexes:%" PRId64 " ..., terms: ... %" PRId64 + sInfo("vgId:%d, resend %d sync log entries, dest:%" PRIx64 ", indexes:%" PRId64 " ..., terms: .., %" PRId64 ", retryWaitMs:%" PRId64 ", repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, count, pDestId->addr, firstIndex, term, retryWaitMs, pMgr->startIndex, pMgr->matchIndex, @@ -1040,7 +1044,7 @@ int32_t syncLogReplRecover(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEn int32_t code = 0; if (pMgr->restored != false) return TSDB_CODE_SYN_INTERNAL_ERROR; - sTrace("vgId:%d, begin to recover sync log repl. peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 ", %" PRId64 + sTrace("vgId:%d, begin to recover sync log repl, peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 ", %" PRId64 ", %" PRId64 ") restore:%d, buffer: [%" PRId64 ", %" PRId64 ", %" PRId64 ", %" PRId64 "), msg: {lastSendIndex:%" PRId64 ", matchIndex:%" PRId64 ", fsmState:%d, success:%d, lastMatchTerm:%" PRId64 "}", @@ -1053,7 +1057,7 @@ int32_t syncLogReplRecover(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEn if (pMgr->matchIndex != 0) return TSDB_CODE_SYN_INTERNAL_ERROR; if (pMsg->matchIndex < 0) { pMgr->restored = true; - sInfo("vgId:%d, sync log repl restored. peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 + sInfo("vgId:%d, sync log repl restored, peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, DID(&destId), destId.addr, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -1070,7 +1074,7 @@ int32_t syncLogReplRecover(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEn if (pMsg->success && pMsg->matchIndex == pMsg->lastSendIndex) { pMgr->matchIndex = pMsg->matchIndex; pMgr->restored = true; - sInfo("vgId:%d, sync log repl restored. peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 + sInfo("vgId:%d, sync log repl restored, peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, DID(&destId), destId.addr, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -1080,7 +1084,7 @@ int32_t syncLogReplRecover(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEn if (pMsg->fsmState == SYNC_FSM_STATE_INCOMPLETE || (!pMsg->success && pMsg->matchIndex >= pMsg->lastSendIndex)) { char* msg1 = " rollback match index failure"; char* msg2 = " incomplete fsm state"; - sInfo("vgId:%d, snapshot replication to dnode:%d. reason:%s, match index:%" PRId64 ", last sent:%" PRId64, + sInfo("vgId:%d, snapshot replication to dnode:%d, reason:%s, match index:%" PRId64 ", last sent:%" PRId64, pNode->vgId, DID(&destId), (pMsg->fsmState == SYNC_FSM_STATE_INCOMPLETE ? msg2 : msg1), pMsg->matchIndex, pMsg->lastSendIndex); if ((code = syncNodeStartSnapshot(pNode, &destId)) < 0) { @@ -1100,13 +1104,13 @@ int32_t syncLogReplRecover(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEn if (pMsg->matchIndex < pNode->pLogBuf->matchIndex) { code = syncLogReplGetPrevLogTerm(pMgr, pNode, index + 1, &term); if (term < 0 && (ERRNO == ENFILE || ERRNO == EMFILE || ERRNO == ENOENT)) { - sError("vgId:%d, failed to get prev log term since %s. index:%" PRId64, pNode->vgId, tstrerror(code), index + 1); + sError("vgId:%d, failed to get prev log term since %s, index:%" PRId64, pNode->vgId, tstrerror(code), index + 1); TAOS_RETURN(code); } if (pMsg->matchIndex == -1) { // first time to restore - sInfo("vgId:%d, first time to restore sync log repl. peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 + sInfo("vgId:%d, first time to restore sync log repl, peer: dnode:%d (%" PRIx64 "), repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 "), index:%" PRId64 ", firstVer:%" PRId64 ", term:%" PRId64 ", lastMatchTerm:%" PRId64, pNode->vgId, DID(&destId), destId.addr, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, @@ -1144,7 +1148,7 @@ int32_t syncLogReplProcessHeartbeatReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode SSyncLogBuffer* pBuf = pNode->pLogBuf; (void)taosThreadMutexLock(&pMgr->mutex); if (pMsg->startTime != 0 && pMsg->startTime != pMgr->peerStartTime) { - sInfo("vgId:%d, reset sync log repl in heartbeat. peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64 "", + sInfo("vgId:%d, reset sync log repl in heartbeat, peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64, pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime); syncLogReplReset(pMgr); pMgr->peerStartTime = pMsg->startTime; @@ -1157,7 +1161,7 @@ int32_t syncLogReplProcessReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncApp SSyncLogBuffer* pBuf = pNode->pLogBuf; (void)taosThreadMutexLock(&pMgr->mutex); if (pMsg->startTime != pMgr->peerStartTime) { - sInfo("vgId:%d, reset sync log repl in appendlog reply. peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64, + sInfo("vgId:%d, reset sync log repl in appendlog reply, peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64, pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime); syncLogReplReset(pMgr); pMgr->peerStartTime = pMsg->startTime; @@ -1196,7 +1200,7 @@ int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex inde int64_t nowMs = taosGetMonoTimestampMs(); int32_t code = 0; - sTrace("vgId:%d, begin to probe peer:%" PRIx64 " with msg of index:%" PRId64 ". repl-mgr:[%" PRId64 ", %" PRId64 + sTrace("vgId:%d, begin to probe peer:%" PRIx64 " with msg of index:%" PRId64 ", repl-mgr:[%" PRId64 ", %" PRId64 ", %" PRId64 "), restored:%d", pNode->vgId, pNode->replicasId[pMgr->peerId].addr, index, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pMgr->restored); @@ -1211,7 +1215,7 @@ int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex inde bool barrier = false; SyncTerm term = -1; if ((code = syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier)) < 0) { - sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId, + sError("vgId:%d, failed to replicate log entry since %s, index:%" PRId64 ", dest:0x%016" PRIx64, pNode->vgId, tstrerror(code), index, pDestId->addr); TAOS_RETURN(code); } @@ -1226,7 +1230,7 @@ int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex inde pMgr->endIndex = index + 1; SSyncLogBuffer* pBuf = pNode->pLogBuf; - sTrace("vgId:%d, probe peer:%" PRIx64 " with msg of index:%" PRId64 " term:%" PRId64 ". repl-mgr:[%" PRId64 + sTrace("vgId:%d, probe peer:%" PRIx64 " with msg of index:%" PRId64 " term:%" PRId64 ", repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pDestId->addr, index, term, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -1236,8 +1240,8 @@ int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex inde int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { if (!pMgr->restored) return TSDB_CODE_SYN_INTERNAL_ERROR; - sTrace("vgId:%d, begin to attempt replicate log entries from end to match. repl-mgr:[%" PRId64 ", %" PRId64 - ", %" PRId64 "), restore:%d", + sTrace("vgId:%d, replicate log entries from end to match, repl-mgr:[%" PRId64 ", %" PRId64 ", %" PRId64 + "), restore:%d", pNode->vgId, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pMgr->restored); SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; @@ -1260,8 +1264,10 @@ int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; bool barrier = false; SyncTerm term = -1; - if ((code = syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier)) < 0) { - sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId, + + code = syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier); + if (code < 0) { + sError("vgId:%d, failed to replicate log entry since %s, index:%" PRId64 ", dest:0x%016" PRIx64, pNode->vgId, tstrerror(code), index, pDestId->addr); TAOS_RETURN(code); } @@ -1270,12 +1276,15 @@ int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { pMgr->states[pos].term = term; pMgr->states[pos].acked = false; - if (firstIndex == -1) firstIndex = index; + if (firstIndex == -1) { + firstIndex = index; + } + count++; pMgr->endIndex = index + 1; if (barrier) { - sInfo("vgId:%d, replicated sync barrier to dnode:%d. index:%" PRId64 ", term:%" PRId64 ", repl-mgr:[%" PRId64 + sInfo("vgId:%d, replicated sync barrier to dnode:%d, index:%" PRId64 ", term:%" PRId64 ", repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, DID(pDestId), index, term, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex); break; @@ -1285,7 +1294,7 @@ int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { TAOS_CHECK_RETURN(syncLogReplRetryOnNeed(pMgr, pNode)); SSyncLogBuffer* pBuf = pNode->pLogBuf; - sTrace("vgId:%d, replicated %d msgs to peer:%" PRIx64 ". indexes:%" PRId64 "..., terms: ...%" PRId64 + sTrace("vgId:%d, replicated %d msgs to peer:%" PRIx64 ", indexes:%" PRId64 "..., terms: ...%" PRId64 ", repl-mgr:[%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, count, pDestId->addr, firstIndex, term, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, @@ -1438,7 +1447,7 @@ int32_t syncLogBufferRollback(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncIndex return 0; } - sInfo("vgId:%d, rollback sync log buffer. toindex:%" PRId64 ", buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 + sInfo("vgId:%d, rollback sync log buffer, toindex:%" PRId64 ", buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, toIndex, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); @@ -1460,7 +1469,7 @@ int32_t syncLogBufferRollback(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncIndex // trunc wal SyncIndex lastVer = pNode->pLogStore->syncLogLastIndex(pNode->pLogStore); if (lastVer >= toIndex && (code = pNode->pLogStore->syncLogTruncate(pNode->pLogStore, toIndex)) < 0) { - sError("vgId:%d, failed to truncate log store since %s. from index:%" PRId64 "", pNode->vgId, tstrerror(code), + sError("vgId:%d, failed to truncate log store since %s, from index:%" PRId64, pNode->vgId, tstrerror(code), toIndex); TAOS_RETURN(code); } @@ -1492,7 +1501,7 @@ int32_t syncLogBufferReset(SSyncLogBuffer* pBuf, SSyncNode* pNode) { sError("vgId:%d, failed to rollback sync log buffer since %s", pNode->vgId, tstrerror(code)); } - sInfo("vgId:%d, reset sync log buffer. buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, + sInfo("vgId:%d, reset sync log buffer, buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); pBuf->endIndex = pBuf->matchIndex + 1; @@ -1524,7 +1533,7 @@ int32_t syncLogBufferGetOneEntry(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncInd *pInBuf = false; if ((code = pNode->pLogStore->syncLogGetEntry(pNode->pLogStore, index, ppEntry)) < 0) { - sWarn("vgId:%d, failed to get log entry since %s. index:%" PRId64 "", pNode->vgId, tstrerror(code), index); + sWarn("vgId:%d, failed to get log entry since %s, index:%" PRId64, pNode->vgId, tstrerror(code), index); } } TAOS_RETURN(code); @@ -1542,11 +1551,11 @@ int32_t syncLogReplSendTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex ind code = syncLogBufferGetOneEntry(pBuf, pNode, index, &inBuf, &pEntry); if (pEntry == NULL) { - sWarn("vgId:%d, failed to get raft entry for index:%" PRId64 "", pNode->vgId, index); + sWarn("vgId:%d, failed to get raft entry for index:%" PRId64, pNode->vgId, index); if (code == TSDB_CODE_WAL_LOG_NOT_EXIST) { SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(pNode, pDestId); if (pMgr) { - sInfo("vgId:%d, reset sync log repl of peer:%" PRIx64 " since %s. index:%" PRId64, pNode->vgId, pDestId->addr, + sInfo("vgId:%d, reset sync log repl of peer:%" PRIx64 " since %s, index:%" PRId64, pNode->vgId, pDestId->addr, tstrerror(code), index); syncLogReplReset(pMgr); } @@ -1557,20 +1566,20 @@ int32_t syncLogReplSendTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex ind code = syncLogReplGetPrevLogTerm(pMgr, pNode, index, &prevLogTerm); if (prevLogTerm < 0) { - sError("vgId:%d, failed to get prev log term since %s. index:%" PRId64 "", pNode->vgId, tstrerror(code), index); + sError("vgId:%d, failed to get prev log term since %s, index:%" PRId64, pNode->vgId, tstrerror(code), index); goto _err; } if (pTerm) *pTerm = pEntry->term; code = syncBuildAppendEntriesFromRaftEntry(pNode, pEntry, prevLogTerm, &msgOut); if (code < 0) { - sError("vgId:%d, failed to get append entries for index:%" PRId64 "", pNode->vgId, index); + sError("vgId:%d, failed to get append entries for index:%" PRId64, pNode->vgId, index); goto _err; } TRACE_SET_MSGID(&(msgOut.info.traceId), tGenIdPI64()); - STraceId* trace = &(msgOut.info.traceId); - sGTrace("vgId:%d, replicate one msg index:%" PRId64 " term:%" PRId64 " prevterm:%" PRId64 " to dest: 0x%016" PRIx64, + sGDebug(&msgOut.info.traceId, + "vgId:%d, replicate one msg index:%" PRId64 " term:%" PRId64 " prevterm:%" PRId64 " to dest:0x%016" PRIx64, pNode->vgId, pEntry->index, pEntry->term, prevLogTerm, pDestId->addr); TAOS_CHECK_GOTO(syncNodeSendAppendEntries(pNode, pDestId, &msgOut), &lino, _err); diff --git a/source/libs/sync/src/syncRaftEntry.c b/source/libs/sync/src/syncRaftEntry.c index f4301fa167..c64376220e 100644 --- a/source/libs/sync/src/syncRaftEntry.c +++ b/source/libs/sync/src/syncRaftEntry.c @@ -33,12 +33,13 @@ SSyncRaftEntry* syncEntryBuild(int32_t dataLen) { return pEntry; } -SSyncRaftEntry* syncEntryBuildFromClientRequest(const SyncClientRequest* pMsg, SyncTerm term, SyncIndex index) { +SSyncRaftEntry* syncEntryBuildFromClientRequest(const SyncClientRequest* pMsg, SyncTerm term, SyncIndex index, const STraceId *traceId) { SSyncRaftEntry* pEntry = syncEntryBuild(pMsg->dataLen); if (pEntry == NULL) return NULL; pEntry->msgType = pMsg->msgType; pEntry->originalRpcType = pMsg->originalRpcType; + pEntry->originRpcTraceId = *traceId; pEntry->seqNum = pMsg->seqNum; pEntry->isWeak = pMsg->isWeak; pEntry->term = term; @@ -54,6 +55,7 @@ SSyncRaftEntry* syncEntryBuildFromRpcMsg(const SRpcMsg* pMsg, SyncTerm term, Syn pEntry->msgType = TDMT_SYNC_CLIENT_REQUEST; pEntry->originalRpcType = pMsg->msgType; + pEntry->originRpcTraceId = pMsg->info.traceId; pEntry->seqNum = 0; pEntry->isWeak = 0; pEntry->term = term; diff --git a/source/libs/sync/src/syncRaftLog.c b/source/libs/sync/src/syncRaftLog.c index 657282efe1..92c98ab821 100644 --- a/source/libs/sync/src/syncRaftLog.c +++ b/source/libs/sync/src/syncRaftLog.c @@ -226,7 +226,8 @@ static int32_t raftLogAppendEntry(struct SSyncLogStore* pLogStore, SSyncRaftEntr syncMeta.term = pEntry->term; int64_t tsWriteBegin = taosGetTimestampNs(); - int32_t code = walAppendLog(pWal, pEntry->index, pEntry->originalRpcType, syncMeta, pEntry->data, pEntry->dataLen); + int32_t code = walAppendLog(pWal, pEntry->index, pEntry->originalRpcType, syncMeta, pEntry->data, pEntry->dataLen, + &pEntry->originRpcTraceId); int64_t tsWriteEnd = taosGetTimestampNs(); int64_t tsElapsed = tsWriteEnd - tsWriteBegin; @@ -248,7 +249,7 @@ static int32_t raftLogAppendEntry(struct SSyncLogStore* pLogStore, SSyncRaftEntr TAOS_RETURN(code); } - sNTrace(pData->pSyncNode, "write index:%" PRId64 ", type:%s, origin type:%s, elapsed:%" PRId64, pEntry->index, + sNTrace(pData->pSyncNode, "index:%" PRId64 ", append raft log, type:%s origin type:%s elapsed:%" PRId64, pEntry->index, TMSG_INFO(pEntry->msgType), TMSG_INFO(pEntry->originalRpcType), tsElapsed); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -401,7 +402,7 @@ int32_t raftLogUpdateCommitIndex(SSyncLogStore* pLogStore, SyncIndex index) { const char* errStr = tstrerror(err); int32_t sysErr = ERRNO; const char* sysErrStr = strerror(ERRNO); - sError("vgId:%d, wal update commit index error, index:%" PRId64 ", err:0x%x, msg:%s, syserr:%d, sysmsg:%s", + sError("vgId:%d, index:%" PRId64 ", raft entry update commit index error, code:0x%x msg:%s syserr:%d sysmsg:%s", pData->pSyncNode->vgId, index, err, errStr, sysErr, sysErrStr); TAOS_RETURN(code); diff --git a/source/libs/sync/src/syncReplication.c b/source/libs/sync/src/syncReplication.c index 7b5b40f327..e713862dcf 100644 --- a/source/libs/sync/src/syncReplication.c +++ b/source/libs/sync/src/syncReplication.c @@ -139,8 +139,7 @@ int32_t syncNodeHeartbeatPeers(SSyncNode* pSyncNode) { // send msg TRACE_SET_MSGID(&(rpcMsg.info.traceId), tGenIdPI64()); - STraceId* trace = &(rpcMsg.info.traceId); - sGTrace("vgId:%d, send sync-heartbeat to dnode:%d", pSyncNode->vgId, DID(&(pSyncMsg->destId))); + sGTrace(&rpcMsg.info.traceId, "vgId:%d, send sync-heartbeat to dnode:%d", pSyncNode->vgId, DID(&(pSyncMsg->destId))); syncLogSendHeartbeat(pSyncNode, pSyncMsg, true, 0, 0); int32_t ret = syncNodeSendHeartbeat(pSyncNode, &pSyncMsg->destId, &rpcMsg); if (ret != 0) { diff --git a/source/libs/sync/src/syncRequestVote.c b/source/libs/sync/src/syncRequestVote.c index 88a97e55f3..334ce60df5 100644 --- a/source/libs/sync/src/syncRequestVote.c +++ b/source/libs/sync/src/syncRequestVote.c @@ -91,11 +91,11 @@ int32_t syncNodeOnRequestVote(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncRequestVote* pMsg = pRpcMsg->pCont; bool resetElect = false; - syncLogRecvRequestVote(ths, pMsg, -1, "", "recv"); + syncLogRecvRequestVote(ths, pMsg, -1, "", "recv", &pRpcMsg->info.traceId); // if already drop replica, do not process if (!syncNodeInRaftGroup(ths, &pMsg->srcId)) { - syncLogRecvRequestVote(ths, pMsg, -1, "not in my config", "process"); + syncLogRecvRequestVote(ths, pMsg, -1, "not in my config", "process", &pRpcMsg->info.traceId); TAOS_RETURN(TSDB_CODE_SYN_MISMATCHED_SIGNATURE); } @@ -136,8 +136,8 @@ int32_t syncNodeOnRequestVote(SSyncNode* ths, const SRpcMsg* pRpcMsg) { if (!(!grant || pMsg->term == pReply->term)) return TSDB_CODE_SYN_INTERNAL_ERROR; // trace log - syncLogRecvRequestVote(ths, pMsg, pReply->voteGranted, "", "proceed"); - syncLogSendRequestVoteReply(ths, pReply, ""); + syncLogRecvRequestVote(ths, pMsg, pReply->voteGranted, "", "proceed", &pRpcMsg->info.traceId); + syncLogSendRequestVoteReply(ths, pReply, "", &pRpcMsg->info.traceId); TAOS_CHECK_RETURN(syncNodeSendMsgById(&pReply->destId, ths, &rpcMsg)); if (resetElect) syncNodeResetElectTimer(ths); diff --git a/source/libs/sync/src/syncRequestVoteReply.c b/source/libs/sync/src/syncRequestVoteReply.c index b2222a1fe7..8a7b45253d 100644 --- a/source/libs/sync/src/syncRequestVoteReply.c +++ b/source/libs/sync/src/syncRequestVoteReply.c @@ -44,26 +44,26 @@ int32_t syncNodeOnRequestVoteReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { // if already drop replica, do not process if (!syncNodeInRaftGroup(ths, &(pMsg->srcId))) { - syncLogRecvRequestVoteReply(ths, pMsg, "not in my config"); + syncLogRecvRequestVoteReply(ths, pMsg, "not in my config", &pRpcMsg->info.traceId); TAOS_RETURN(TSDB_CODE_SYN_MISMATCHED_SIGNATURE); } SyncTerm currentTerm = raftStoreGetTerm(ths); // drop stale response if (pMsg->term < currentTerm) { - syncLogRecvRequestVoteReply(ths, pMsg, "drop stale response"); + syncLogRecvRequestVoteReply(ths, pMsg, "drop stale response", &pRpcMsg->info.traceId); TAOS_RETURN(TSDB_CODE_SYN_WRONG_TERM); } if (pMsg->term > currentTerm) { - syncLogRecvRequestVoteReply(ths, pMsg, "error term"); + syncLogRecvRequestVoteReply(ths, pMsg, "error term", &pRpcMsg->info.traceId); syncNodeStepDown(ths, pMsg->term, pMsg->destId); TAOS_RETURN(TSDB_CODE_SYN_WRONG_TERM); } - syncLogRecvRequestVoteReply(ths, pMsg, ""); + syncLogRecvRequestVoteReply(ths, pMsg, "", &pRpcMsg->info.traceId); if (pMsg->term != currentTerm) return TSDB_CODE_SYN_INTERNAL_ERROR; // This tallies votes even when the current state is not Candidate, diff --git a/source/libs/sync/src/syncSnapshot.c b/source/libs/sync/src/syncSnapshot.c index 33cc543b09..79fde55fe0 100644 --- a/source/libs/sync/src/syncSnapshot.c +++ b/source/libs/sync/src/syncSnapshot.c @@ -1012,7 +1012,7 @@ _SEND_REPLY:; pRspMsg->snapBeginIndex = pReceiver->snapshotParam.start; // send msg - syncLogSendSyncSnapshotRsp(pSyncNode, pRspMsg, "snapshot receiver end"); + syncLogSendSyncSnapshotRsp(pSyncNode, pRspMsg, "snapshot receiver end", &rpcMsg.info.traceId); if ((code = syncNodeSendMsgById(&pRspMsg->destId, pSyncNode, &rpcMsg)) != 0) { sRError(pReceiver, "snapshot receiver send rsp failed since %s", tstrerror(code)); TAOS_RETURN(code); @@ -1029,7 +1029,7 @@ int32_t syncNodeOnSnapshot(SSyncNode *pSyncNode, SRpcMsg *pRpcMsg) { // if already drop replica, do not process if (!syncNodeInRaftGroup(pSyncNode, &pMsg->srcId)) { - syncLogRecvSyncSnapshotSend(pSyncNode, pMsg, "not in my config"); + syncLogRecvSyncSnapshotSend(pSyncNode, pMsg, "not in my config", &pRpcMsg->info.traceId); code = TSDB_CODE_SYN_MISMATCHED_SIGNATURE; TAOS_RETURN(code); } @@ -1256,14 +1256,14 @@ int32_t syncNodeOnSnapshotRsp(SSyncNode *pSyncNode, SRpcMsg *pRpcMsg) { // if already drop replica, do not process if (!syncNodeInRaftGroup(pSyncNode, &pMsg->srcId)) { - syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "maybe replica already dropped"); + syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "maybe replica already dropped", &pRpcMsg->info.traceId); TAOS_RETURN(TSDB_CODE_SYN_MISMATCHED_SIGNATURE); } // get sender SSyncSnapshotSender *pSender = syncNodeGetSnapshotSender(pSyncNode, &pMsg->srcId); if (pSender == NULL) { - syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "sender is null"); + syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "sender is null", &pRpcMsg->info.traceId); TAOS_RETURN(TSDB_CODE_SYN_INTERNAL_ERROR); } diff --git a/source/libs/sync/src/syncTimeout.c b/source/libs/sync/src/syncTimeout.c index c073c2c1bb..aefe2f3a73 100644 --- a/source/libs/sync/src/syncTimeout.c +++ b/source/libs/sync/src/syncTimeout.c @@ -106,7 +106,7 @@ int32_t syncNodeOnTimeout(SSyncNode* ths, const SRpcMsg* pRpc) { int32_t ret = 0; SyncTimeout* pMsg = pRpc->pCont; - syncLogRecvTimer(ths, pMsg, ""); + syncLogRecvTimer(ths, pMsg, &pRpc->info.traceId); if (pMsg->timeoutType == SYNC_TIMEOUT_PING) { if (atomic_load_64(&ths->pingTimerLogicClockUser) <= pMsg->logicClock) { diff --git a/source/libs/sync/src/syncUtil.c b/source/libs/sync/src/syncUtil.c index b20f0d8aeb..1dd7f723a4 100644 --- a/source/libs/sync/src/syncUtil.c +++ b/source/libs/sync/src/syncUtil.c @@ -174,7 +174,7 @@ static void syncLogBufferStates2Str(SSyncNode* pSyncNode, char* buf, int32_t buf } int32_t len = 0; len += tsnprintf(buf + len, bufLen - len, "[%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pBuf->startIndex, - pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); + pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); } static void syncLogReplStates2Str(SSyncNode* pSyncNode, char* buf, int32_t bufLen) { @@ -200,7 +200,7 @@ static void syncPeerState2Str(SSyncNode* pSyncNode, char* buf, int32_t bufLen) { SPeerState* pState = syncNodeGetPeerState(pSyncNode, &(pSyncNode->replicasId[i])); if (pState == NULL) break; len += tsnprintf(buf + len, bufLen - len, "%d:%" PRId64 " %" PRId64 "%s", i, pState->lastSendIndex, - pState->lastSendTime, (i < pSyncNode->replicaNum - 1) ? ", " : ""); + pState->lastSendTime, (i < pSyncNode->replicaNum - 1) ? ", " : ""); } len += tsnprintf(buf + len, bufLen - len, "%s", "}"); } @@ -436,33 +436,42 @@ void syncPrintSnapshotReceiverLog(const char* flags, ELogLevel level, int32_t df cfgStr); } -void syncLogRecvTimer(SSyncNode* pSyncNode, const SyncTimeout* pMsg, const char* s) { +void syncLogRecvTimer(SSyncNode* pSyncNode, const SyncTimeout* pMsg, const STraceId* trace) { if (!(sDebugFlag & DEBUG_TRACE)) return; int64_t tsNow = taosGetTimestampMs(); int64_t timeDIff = tsNow - pMsg->timeStamp; - sNTrace( - pSyncNode, "recv sync-timer {type:%s, lc:%" PRId64 ", ms:%d, ts:%" PRId64 ", elapsed:%" PRId64 ", data:%p}, %s", - syncTimerTypeStr(pMsg->timeoutType), pMsg->logicClock, pMsg->timerMS, pMsg->timeStamp, timeDIff, pMsg->data, s); + sNTrace(pSyncNode, + "recv sync-timer {type:%s, lc:%" PRId64 ", ms:%d, ts:%" PRId64 ", elapsed:%" PRId64 + ", data:%p}, QID:0x%" PRIx64 ":0x%" PRIx64, + syncTimerTypeStr(pMsg->timeoutType), pMsg->logicClock, pMsg->timerMS, pMsg->timeStamp, timeDIff, pMsg->data, + trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvLocalCmd(SSyncNode* pSyncNode, const SyncLocalCmd* pMsg, const char* s) { - sNTrace(pSyncNode, "recv sync-local-cmd {cmd:%d-%s, sd-new-term:%" PRId64 ", fc-index:%" PRId64 "}, %s", pMsg->cmd, - syncLocalCmdGetStr(pMsg->cmd), pMsg->currentTerm, pMsg->commitIndex, s); +void syncLogRecvLocalCmd(SSyncNode* pSyncNode, const SyncLocalCmd* pMsg, const STraceId* trace) { + sNTrace(pSyncNode, + "recv sync-local-cmd {cmd:%d-%s, sd-new-term:%" PRId64 ", fc-index:%" PRId64 "}, QID:0x%" PRIx64 + ":0x%" PRIx64, + pMsg->cmd, syncLocalCmdGetStr(pMsg->cmd), pMsg->currentTerm, pMsg->commitIndex, trace ? trace->rootId : 0, + trace ? trace->msgId : 0); } -void syncLogSendAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s) { +void syncLogSendAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s, + const STraceId* trace) { sNTrace(pSyncNode, "send sync-append-entries-reply to dnode:%d, {term:%" PRId64 ", pterm:%" PRId64 - ", success:%d, lsend-index:%" PRId64 ", match:%" PRId64 "}, %s", - DID(&pMsg->destId), pMsg->term, pMsg->lastMatchTerm, pMsg->success, pMsg->lastSendIndex, pMsg->matchIndex, s); + ", success:%d, lsend-index:%" PRId64 ", match:%" PRId64 "}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->destId), pMsg->term, pMsg->lastMatchTerm, pMsg->success, pMsg->lastSendIndex, pMsg->matchIndex, s, + trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s) { +void syncLogRecvAppendEntriesReply(SSyncNode* pSyncNode, const SyncAppendEntriesReply* pMsg, const char* s, + const STraceId* trace) { sNTrace(pSyncNode, "recv sync-append-entries-reply from dnode:%d {term:%" PRId64 ", pterm:%" PRId64 - ", success:%d, lsend-index:%" PRId64 ", match:%" PRId64 "}, %s", - DID(&pMsg->srcId), pMsg->term, pMsg->lastMatchTerm, pMsg->success, pMsg->lastSendIndex, pMsg->matchIndex, s); + ", success:%d, lsend-index:%" PRId64 ", match:%" PRId64 "}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), pMsg->term, pMsg->lastMatchTerm, pMsg->success, pMsg->lastSendIndex, pMsg->matchIndex, s, + trace ? trace->rootId : 0, trace ? trace->msgId : 0); } void syncLogSendHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, bool printX, int64_t timerElapsed, @@ -488,7 +497,7 @@ void syncLogSendHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, bool } } -void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64_t timeDiff, const char* s) { +void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64_t timeDiff, const STraceId* trace) { if (timeDiff > SYNC_HEARTBEAT_SLOW_MS) { pSyncNode->hbSlowNum++; @@ -501,9 +510,9 @@ void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64 sHError(pSyncNode, "recv sync-heartbeat from dnode:%d slow(%d ms) {term:%" PRId64 ", commit-index:%" PRId64 - ", min-match:%" PRId64 ", ts:%s}, QID:%s, net elapsed:%" PRId64 "ms", - DID(&pMsg->srcId), SYNC_HEARTBEAT_SLOW_MS, pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pBuf, s, - timeDiff); + ", min-match:%" PRId64 ", ts:%s}, net elapsed:%" PRId64 "ms, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), SYNC_HEARTBEAT_SLOW_MS, pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pBuf, + timeDiff, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } else { if (sDebugFlag & DEBUG_TRACE) { char pBuf[TD_TIME_STR_LEN] = {0}; @@ -514,18 +523,23 @@ void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64 } sHTrace(pSyncNode, "recv sync-heartbeat from dnode:%d {term:%" PRId64 ", commit-index:%" PRId64 ", min-match:%" PRId64 - ", ts:%s}, QID:%s, net elapsed:%" PRId64 "ms", - DID(&pMsg->srcId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pBuf, s, timeDiff); + ", ts:%s}, net elapsed:%" PRId64 "ms, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pBuf, timeDiff, trace->rootId, + trace->msgId); } } } -void syncLogSendHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, const char* s) { - sHTrace(pSyncNode, "send sync-heartbeat-reply from dnode:%d {term:%" PRId64 ", ts:%" PRId64 "}, %s", - DID(&pMsg->destId), pMsg->term, pMsg->timeStamp, s); +void syncLogSendHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, const char* s, + const STraceId* trace) { + sHTrace(pSyncNode, + "send sync-heartbeat-reply from dnode:%d {term:%" PRId64 ", ts:%" PRId64 "}, %s, QID:0x%" PRIx64 + ":0x%" PRIx64, + DID(&pMsg->destId), pMsg->term, pMsg->timeStamp, s, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, int64_t timeDiff, const char* s) { +void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* pMsg, int64_t timeDiff, + const STraceId* trace) { if (timeDiff > SYNC_HEARTBEAT_REPLY_SLOW_MS) { pSyncNode->hbrSlowNum++; @@ -537,8 +551,9 @@ void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* p } sHError(pSyncNode, - "recv sync-heartbeat-reply from dnode:%d slow(%d ms) {term:%" PRId64 ", ts:%s}, %s, net elapsed:%" PRId64, - DID(&pMsg->srcId), SYNC_HEARTBEAT_REPLY_SLOW_MS, pMsg->term, pBuf, s, timeDiff); + "recv sync-heartbeat-reply from dnode:%d slow(%d ms) {term:%" PRId64 ", ts:%s}, net elapsed:%" PRId64 + ", QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), SYNC_HEARTBEAT_REPLY_SLOW_MS, pMsg->term, pBuf, timeDiff, trace->rootId, trace->msgId); } else { if (sDebugFlag & DEBUG_TRACE) { char pBuf[TD_TIME_STR_LEN] = {0}; @@ -548,83 +563,100 @@ void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* p } } sHTrace(pSyncNode, - "recv sync-heartbeat-reply from dnode:%d {term:%" PRId64 ", ts:%" PRId64 "}, %s, net elapsed:%" PRId64, - DID(&pMsg->srcId), pMsg->term, pMsg->timeStamp, s, timeDiff); + "recv sync-heartbeat-reply from dnode:%d {term:%" PRId64 ", ts:%" PRId64 "}, net elapsed:%" PRId64 + ", QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), pMsg->term, pMsg->timeStamp, timeDiff, trace ? trace->rootId : 0, + trace ? trace->msgId : 0); } } } -void syncLogSendSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s) { +void syncLogSendSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s, + const STraceId* trace) { sNDebug(pSyncNode, "send sync-snapshot-send to dnode:%d, %s, seq:%d, term:%" PRId64 ", begin-index:%" PRId64 - ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", QID:0x%" PRIx64 ":0x%" PRIx64, DID(&pMsg->destId), s, pMsg->seq, pMsg->term, pMsg->beginIndex, pMsg->lastIndex, pMsg->lastTerm, - pMsg->startTime); + pMsg->startTime, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s) { +void syncLogRecvSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s, + const STraceId* trace) { sNDebug(pSyncNode, "recv sync-snapshot-send from dnode:%d, %s, seq:%d, term:%" PRId64 ", begin-index:%" PRId64 - ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", data-len:%u", + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", data-len:%u, QID:0x%" PRIx64 + ":0x%" PRIx64, DID(&pMsg->srcId), s, pMsg->seq, pMsg->term, pMsg->beginIndex, pMsg->lastIndex, pMsg->lastTerm, - pMsg->startTime, pMsg->dataLen); + pMsg->startTime, pMsg->dataLen, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogSendSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s) { +void syncLogSendSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s, + const STraceId* trace) { sNDebug(pSyncNode, "send sync-snapshot-rsp to dnode:%d, %s, acked:%d, term:%" PRId64 ", begin-index:%" PRId64 - ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", QID:0x%" PRIx64 ":0x%" PRIx64, DID(&pMsg->destId), s, pMsg->ack, pMsg->term, pMsg->snapBeginIndex, pMsg->lastIndex, pMsg->lastTerm, - pMsg->startTime); + pMsg->startTime, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s) { +void syncLogRecvSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s, + const STraceId* trace) { sNDebug(pSyncNode, "recv sync-snapshot-rsp from dnode:%d, %s, ack:%d, term:%" PRId64 ", begin-index:%" PRId64 - ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", QID:0x%" PRIx64 ":0x%" PRIx64, DID(&pMsg->srcId), s, pMsg->ack, pMsg->term, pMsg->snapBeginIndex, pMsg->lastIndex, pMsg->lastTerm, - pMsg->startTime); + pMsg->startTime, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogRecvAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s) { +void syncLogRecvAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s, + const STraceId* trace) { sNTrace(pSyncNode, "recv sync-append-entries from dnode:%d {term:%" PRId64 ", prev-log:{index:%" PRId64 ", term:%" PRId64 - "}, commit-index:%" PRId64 ", datalen:%d}, %s", - DID(&pMsg->srcId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, pMsg->commitIndex, pMsg->dataLen, s); + "}, commit-index:%" PRId64 ", datalen:%d}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, pMsg->commitIndex, pMsg->dataLen, s, + trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogSendAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s) { +void syncLogSendAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s, + const STraceId* trace) { sNTrace(pSyncNode, "send sync-append-entries to dnode:%d, {term:%" PRId64 ", prev-log:{index:%" PRId64 ", term:%" PRId64 - "}, index:%" PRId64 ", commit-index:%" PRId64 ", datalen:%d}, %s", + "}, index:%" PRId64 ", commit-index:%" PRId64 ", datalen:%d}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, DID(&pMsg->destId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, (pMsg->prevLogIndex + 1), - pMsg->commitIndex, pMsg->dataLen, s); + pMsg->commitIndex, pMsg->dataLen, s, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } void syncLogRecvRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, int32_t voteGranted, const char* errmsg, - const char* opt) { + const char* opt, const STraceId* trace) { char statusMsg[64]; snprintf(statusMsg, sizeof(statusMsg), "granted:%d", voteGranted); sNInfo(pSyncNode, - "%s sync-request-vote from dnode:%d, {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 "}, %s", + "%s sync-request-vote from dnode:%d, {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 + "}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, opt, DID(&pMsg->srcId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, - (voteGranted != -1) ? statusMsg : errmsg); + (voteGranted != -1) ? statusMsg : errmsg, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogSendRequestVote(SSyncNode* pNode, const SyncRequestVote* pMsg, const char* s) { +void syncLogSendRequestVote(SSyncNode* pNode, const SyncRequestVote* pMsg, const char* s, const STraceId* trace) { sNInfo(pNode, - "send sync-request-vote to dnode:%d {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 "}, %s", - DID(&pMsg->destId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, s); + "send sync-request-vote to dnode:%d {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 + "}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->destId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, s, trace ? trace->rootId : 0, + trace ? trace->msgId : 0); } -void syncLogRecvRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s) { - sNInfo(pSyncNode, "recv sync-request-vote-reply from dnode:%d {term:%" PRId64 ", grant:%d}, %s", DID(&pMsg->srcId), - pMsg->term, pMsg->voteGranted, s); +void syncLogRecvRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s, + const STraceId* trace) { + sNInfo(pSyncNode, + "recv sync-request-vote-reply from dnode:%d {term:%" PRId64 ", grant:%d}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->srcId), pMsg->term, pMsg->voteGranted, s, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } -void syncLogSendRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s) { - sNInfo(pSyncNode, "send sync-request-vote-reply to dnode:%d {term:%" PRId64 ", grant:%d}, %s", DID(&pMsg->destId), - pMsg->term, pMsg->voteGranted, s); +void syncLogSendRequestVoteReply(SSyncNode* pSyncNode, const SyncRequestVoteReply* pMsg, const char* s, + const STraceId* trace) { + sNInfo(pSyncNode, + "send sync-request-vote-reply to dnode:%d {term:%" PRId64 ", grant:%d}, %s, QID:0x%" PRIx64 ":0x%" PRIx64, + DID(&pMsg->destId), pMsg->term, pMsg->voteGranted, s, trace ? trace->rootId : 0, trace ? trace->msgId : 0); } int32_t syncSnapInfoDataRealloc(SSnapshot* pSnap, int32_t size) { diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index bcbf498141..7f0f1bb301 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -402,7 +402,7 @@ 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); + tTrace("%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) { @@ -521,7 +521,7 @@ 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); + tTrace("%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); @@ -901,7 +901,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); + tTrace("conn:%p, get from pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); *ppConn = conn; return 0; @@ -943,7 +943,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); + tTrace("conn:%p, added to pool, pool size:%d, dst:%s", conn, conn->list->size, conn->dstAddr); conn->heapMissHit = 0; @@ -1437,7 +1437,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); + tTrace("%s conn:%p, batch send later", pInst->label, pConn); return 0; } @@ -1445,7 +1445,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); + tTrace("%s conn:%p, msg is sent", pInst->label, pConn); return 0; } uv_buf_t* wb = NULL; @@ -1552,7 +1552,7 @@ 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); + tTrace("%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) { @@ -3684,7 +3684,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); + tTrace("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); diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index f28ad3e6b6..50dd3b41a9 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -542,7 +542,7 @@ static bool uvHandleReq(SSvrConn* pConn) { 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); + tTrace("%s conn:%p, no need get user info", transLabel(pInst), pConn); } if (resetBuf == 0) { @@ -684,7 +684,8 @@ void uvOnSendCb(uv_write_t* req, int status) { freeWReqToWQ(&conn->wq, wrapper); - tDebug("%s conn:%p, send data out ", transLabel(conn->pInst), conn); + tTrace("%s conn:%p, send data out", transLabel(conn->pInst), conn); + if (status == 0) { while (!QUEUE_IS_EMPTY(&src)) { queue* head = QUEUE_HEAD(&src); @@ -778,10 +779,11 @@ static int32_t uvPrepareSendData(SSvrRespMsg* smsg, uv_buf_t* wb) { wb->len = len; return 0; } + 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); + tTrace("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); if (size == 0) { return 0; } @@ -829,7 +831,7 @@ 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); + tTrace("%s conn:%p, has %d msg to send", transLabel(pConn->pInst), pConn, size); return; } @@ -1719,7 +1721,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); + tTrace("%s conn:%p, start to send resp (2/2)", transLabel(thrd->pInst), msg->pConn); uvStartSendResp(msg); } @@ -1959,7 +1961,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); + tGTrace("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); diff --git a/source/libs/wal/inc/walInt.h b/source/libs/wal/inc/walInt.h index 3d6708956e..624e7c9bbf 100644 --- a/source/libs/wal/inc/walInt.h +++ b/source/libs/wal/inc/walInt.h @@ -34,6 +34,15 @@ extern "C" { #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__); }} + +#define wGTrace(trace, param, ...) do { if (wDebugFlag & DEBUG_TRACE) { wTrace(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define wGFatal(trace, param, ...) do { if (wDebugFlag & DEBUG_FATAL) { wFatal(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define wGError(trace, param, ...) do { if (wDebugFlag & DEBUG_ERROR) { wError(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define wGWarn(trace, param, ...) do { if (wDebugFlag & DEBUG_WARN) { wWarn(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define wGInfo(trace, param, ...) do { if (wDebugFlag & DEBUG_INFO) { wInfo(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) +#define wGDebug(trace, param, ...) do { if (wDebugFlag & DEBUG_DEBUG) { wDebug(param ", QID:0x%" PRIx64 ":0x%" PRIx64, __VA_ARGS__, (trace) ? (trace)->rootId : 0, (trace) ? (trace)->msgId : 0);}} while(0) + + // clang-format on // meta section begin diff --git a/source/libs/wal/src/walMeta.c b/source/libs/wal/src/walMeta.c index fdf89e7414..0b693e41e9 100644 --- a/source/libs/wal/src/walMeta.c +++ b/source/libs/wal/src/walMeta.c @@ -80,12 +80,12 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* // check recover size if (2 * tsWalFsyncDataSizeLimit + offset < end) { - wWarn("vgId:%d, possibly corrupted WAL range exceeds size limit (i.e. %" PRId64 " bytes). offset:%" PRId64 + wWarn("vgId:%d, possibly corrupted WAL range exceeds size limit (i.e, %" PRId64 " bytes), offset:%" PRId64 ", end:%" PRId64 ", file:%s", pWal->cfg.vgId, 2 * tsWalFsyncDataSizeLimit, offset, end, fnameStr); } - // search for the valid last WAL entry, e.g. block by block + // search for the valid last WAL entry, e.g, block by block while (1) { offset = (lastEntryEndOffset > 0) ? offset : TMAX(0, offset - stepSize + walCkHeadSz - 1); end = TMIN(offset + stepSize, fileSize); @@ -99,13 +99,13 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* int64_t ret = taosLSeekFile(pFile, offset, SEEK_SET); if (ret < 0) { - wError("vgId:%d, failed to lseek file due to %s. offset:%" PRId64 "", pWal->cfg.vgId, strerror(ERRNO), offset); + wError("vgId:%d, failed to lseek file since %s, offset:%" PRId64, pWal->cfg.vgId, strerror(ERRNO), offset); TAOS_CHECK_GOTO(terrno, &lino, _err); } if (readSize != taosReadFile(pFile, buf, readSize)) { - wError("vgId:%d, failed to read file due to %s. readSize:%" PRId64 ", file:%s", pWal->cfg.vgId, strerror(ERRNO), - readSize, fnameStr); + wError("vgId:%d, failed to read file %s since %s, readSize:%" PRId64, pWal->cfg.vgId, fnameStr, strerror(ERRNO), + readSize); TAOS_CHECK_GOTO(terrno, &lino, _err); } @@ -135,7 +135,7 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* logContent = (SWalCkHead*)(buf + pos); if (walValidHeadCksum(logContent) != 0) { code = TSDB_CODE_WAL_CHKSUM_MISMATCH; - wWarn("vgId:%d, failed to validate checksum of wal entry header. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, + wWarn("vgId:%d, failed to validate checksum of wal entry header, offset:%" PRId64 ", file:%s", pWal->cfg.vgId, offset + pos, fnameStr); haystack = buf + pos + 1; if (forwardStage) { @@ -161,14 +161,14 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* } int64_t ret = taosLSeekFile(pFile, offset + readSize, SEEK_SET); if (ret < 0) { - wError("vgId:%d, failed to lseek file due to %s. offset:%" PRId64 "", pWal->cfg.vgId, strerror(terrno), - offset); + wError("vgId:%d, failed to lseek file %s since %s, offset:%" PRId64, pWal->cfg.vgId, fnameStr, + strerror(terrno), offset); code = terrno; break; } if (extraSize != taosReadFile(pFile, buf + readSize, extraSize)) { - wError("vgId:%d, failed to read file due to %s. offset:%" PRId64 ", extraSize:%" PRId64 ", file:%s", - pWal->cfg.vgId, strerror(ERRNO), offset + readSize, extraSize, fnameStr); + wError("vgId:%d, failed to read file %s since %s, offset:%" PRId64 ", extraSize:%" PRId64, + pWal->cfg.vgId, fnameStr, strerror(ERRNO), offset + readSize, extraSize); code = terrno; break; } @@ -179,7 +179,7 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* if (walValidBodyCksum(logContent) != 0) { code = TSDB_CODE_WAL_CHKSUM_MISMATCH; - wWarn("vgId:%d, failed to validate checksum of wal entry body. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, + wWarn("vgId:%d, failed to validate checksum of wal entry body, offset:%" PRId64 ", file:%s", pWal->cfg.vgId, offset + pos, fnameStr); haystack = buf + pos + 1; if (forwardStage) { @@ -212,12 +212,12 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* lastEntryEndOffset, fileSize); if (taosFtruncateFile(pFile, lastEntryEndOffset) < 0) { - wError("failed to truncate file due to %s. file:%s", strerror(terrno), fnameStr); + wError("vgId:%d, failed to truncate file %s since %s", pWal->cfg.vgId, fnameStr, strerror(terrno)); TAOS_CHECK_GOTO(terrno, &lino, _err); } if (pWal->cfg.level != TAOS_WAL_SKIP && taosFsyncFile(pFile) < 0) { - wError("failed to fsync file due to %s. file:%s", strerror(ERRNO), fnameStr); + wError("failed to fsync file %s since %s", fnameStr, strerror(ERRNO)); TAOS_CHECK_GOTO(terrno, &lino, _err); } } @@ -226,7 +226,7 @@ FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, int64_t* _err: if (code != 0) { - wError("vgId:%d, failed at line %d to scan log file due to %s, file:%s", pWal->cfg.vgId, lino, tstrerror(code), fnameStr); + wError("vgId:%d, failed at line %d to scan log file %s since %s", pWal->cfg.vgId, lino, fnameStr, tstrerror(code)); } TAOS_UNUSED(taosCloseFile(&pFile)); taosMemoryFree(buf); @@ -271,23 +271,23 @@ static int32_t walRebuildFileInfoSet(SArray* metaLogList, SArray* actualLogList) static void walAlignVersions(SWal* pWal) { if (pWal->cfg.committed > 0 && pWal->cfg.committed != pWal->vers.snapshotVer) { - wWarn("vgId:%d, snapshotVer:%" PRId64 " in wal is different from commited:%" PRId64 - ". in vnode/mnode. align with it.", + wWarn("vgId:%d, snapshot index:%" PRId64 " in wal is different from commited index:%" PRId64 + ", in vnode/mnode, align with it", pWal->cfg.vgId, pWal->vers.snapshotVer, pWal->cfg.committed); pWal->vers.snapshotVer = pWal->cfg.committed; } if (pWal->vers.snapshotVer < 0 && pWal->vers.firstVer > 0) { - wWarn("vgId:%d, snapshotVer:%" PRId64 " in wal is an invalid value. align it with firstVer:%" PRId64 ".", + wWarn("vgId:%d, snapshot index:%" PRId64 " in wal is an invalid value, align it with first index:%" PRId64, pWal->cfg.vgId, pWal->vers.snapshotVer, pWal->vers.firstVer); pWal->vers.snapshotVer = pWal->vers.firstVer; } if (pWal->vers.firstVer > pWal->vers.snapshotVer + 1) { - wWarn("vgId:%d, firstVer:%" PRId64 " is larger than snapshotVer:%" PRId64 " + 1. align with it.", pWal->cfg.vgId, - pWal->vers.firstVer, pWal->vers.snapshotVer); + wWarn("vgId:%d, first index:%" PRId64 " is larger than snapshot index:%" PRId64 " + 1, align with it", + pWal->cfg.vgId, pWal->vers.firstVer, pWal->vers.snapshotVer); pWal->vers.firstVer = pWal->vers.snapshotVer + 1; } if (pWal->vers.lastVer < pWal->vers.snapshotVer) { - wWarn("vgId:%d, lastVer:%" PRId64 " is less than snapshotVer:%" PRId64 ". align with it.", pWal->cfg.vgId, + wWarn("vgId:%d, last index:%" PRId64 " is less than snapshot index:%" PRId64 ", align with it", pWal->cfg.vgId, pWal->vers.lastVer, pWal->vers.snapshotVer); if (pWal->vers.lastVer < pWal->vers.firstVer) { pWal->vers.firstVer = pWal->vers.snapshotVer + 1; @@ -316,7 +316,7 @@ static int32_t walRepairLogFileTs(SWal* pWal, bool* updateMeta) { walBuildLogName(pWal, pFileInfo->firstVer, fnameStr); int64_t mtime = 0; if (taosStatFile(fnameStr, NULL, &mtime, NULL) < 0) { - wError("vgId:%d, failed to stat file due to %s, file:%s", pWal->cfg.vgId, strerror(ERRNO), fnameStr); + wError("vgId:%d, failed to stat file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); TAOS_RETURN(terrno); } @@ -350,7 +350,7 @@ static int32_t walLogEntriesComplete(const SWal* pWal) { if (!complete) { wError("vgId:%d, WAL log entries incomplete in range [%" PRId64 ", %" PRId64 "], index:%" PRId64 - ", snaphotVer:%" PRId64, + ", snaphot index:%" PRId64, pWal->cfg.vgId, pWal->vers.firstVer, pWal->vers.lastVer, index, pWal->vers.snapshotVer); TAOS_RETURN(TSDB_CODE_WAL_LOG_INCOMPLETE); } else { @@ -380,14 +380,14 @@ static int32_t walTrimIdxFile(SWal* pWal, int32_t fileIdx) { pFile = taosOpenFile(fnameStr, TD_FILE_READ | TD_FILE_WRITE); TSDB_CHECK_NULL(pFile, code, lino, _exit, terrno); - wInfo("vgId:%d, trim idx file. file: %s, size: %" PRId64 ", offset: %" PRId64, pWal->cfg.vgId, fnameStr, fileSize, + wInfo("vgId:%d, trim idx file %s, size:%" PRId64 ", offset:%" PRId64, pWal->cfg.vgId, fnameStr, fileSize, lastEndOffset); TAOS_CHECK_EXIT(taosFtruncateFile(pFile, lastEndOffset)); _exit: if (code != TSDB_CODE_SUCCESS) { - wError("vgId:%d, failed to trim idx file %s due to %s", pWal->cfg.vgId, fnameStr, tstrerror(code)); + wError("vgId:%d, failed to trim idx file %s since %s", pWal->cfg.vgId, fnameStr, tstrerror(code)); } (void)taosCloseFile(&pFile); @@ -398,8 +398,8 @@ static void printFileSet(int32_t vgId, SArray* fileSet, const char* str) { int32_t sz = taosArrayGetSize(fileSet); for (int32_t i = 0; i < sz; i++) { SWalFileInfo* pFileInfo = taosArrayGet(fileSet, i); - wTrace("vgId:%d, %s-%d, firstVer:%" PRId64 ", lastVer:%" PRId64 ", fileSize:%" PRId64 ", syncedOffset:%" PRId64 - ", createTs:%" PRId64 ", closeTs:%" PRId64, + wTrace("vgId:%d, %s-%d, first index:%" PRId64 ", last index:%" PRId64 ", fileSize:%" PRId64 + ", syncedOffset:%" PRId64 ", createTs:%" PRId64 ", closeTs:%" PRId64, vgId, str, i, pFileInfo->firstVer, pFileInfo->lastVer, pFileInfo->fileSize, pFileInfo->syncedOffset, pFileInfo->createTs, pFileInfo->closeTs); } @@ -422,7 +422,8 @@ int32_t walCheckAndRepairMeta(SWal* pWal) { TdDirPtr pDir = NULL; SArray* actualLog = NULL; - wInfo("vgId:%d, begin to repair meta, wal path:%s, firstVer:%" PRId64 ", lastVer:%" PRId64 ", snapshotVer:%" PRId64, + wInfo("vgId:%d, begin to repair meta, wal path:%s, first index:%" PRId64 ", last index:%" PRId64 + ", snapshot index:%" PRId64, pWal->cfg.vgId, pWal->path, pWal->vers.firstVer, pWal->vers.lastVer, pWal->vers.snapshotVer); TAOS_CHECK_EXIT_SET_CODE(regcomp(&logRegPattern, logPattern, REG_EXTENDED), code, terrno); @@ -492,8 +493,7 @@ int32_t walCheckAndRepairMeta(SWal* pWal) { code = walScanLogGetLastVer(pWal, fileIdx, &lastVer); if (lastVer < 0) { if (code != TSDB_CODE_WAL_LOG_NOT_EXIST) { - wError("failed to scan wal last ver since %s", terrstr()); - + wError("vgId:%d, failed to scan wal last index since %s", pWal->cfg.vgId, terrstr()); TAOS_RETURN(code); } // empty log file @@ -531,11 +531,12 @@ int32_t walCheckAndRepairMeta(SWal* pWal) { TAOS_CHECK_RETURN(walLogEntriesComplete(pWal)); - wInfo("vgId:%d, success to repair meta, wal path:%s, firstVer:%" PRId64 ", lastVer:%" PRId64 ", snapshotVer:%" PRId64, + wInfo("vgId:%d, success to repair meta, wal path:%s, first index:%" PRId64 ", last index:%" PRId64 + ", snapshot index:%" PRId64, pWal->cfg.vgId, pWal->path, pWal->vers.firstVer, pWal->vers.lastVer, pWal->vers.snapshotVer); _exit: if (code != TSDB_CODE_SUCCESS) { - wError("vgId:%d, failed to repair meta due to %s, at line:%d", pWal->cfg.vgId, tstrerror(code), lino); + wError("vgId:%d, failed to repair meta since %s, at line:%d", pWal->cfg.vgId, tstrerror(code), lino); } taosArrayDestroy(actualLog); TAOS_UNUSED(taosCloseDir(&pDir)); @@ -566,7 +567,7 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { int64_t fileSize = 0; if (taosStatFile(fnameStr, &fileSize, NULL, NULL) < 0 && ERRNO != ENOENT) { - wError("vgId:%d, failed to stat file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), fnameStr); + wError("vgId:%d, failed to stat file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); TAOS_RETURN(terrno); } @@ -586,30 +587,27 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { pIdxFile = taosOpenFile(fnameStr, TD_FILE_READ | TD_FILE_WRITE | TD_FILE_CREATE); if (pIdxFile == NULL) { - wError("vgId:%d, failed to open file due to %s. file:%s", pWal->cfg.vgId, terrstr(), fnameStr); - + wError("vgId:%d, failed to open file %s since %s", pWal->cfg.vgId, fnameStr, terrstr()); TAOS_CHECK_GOTO(terrno, &lino, _err); } pLogFile = taosOpenFile(fLogNameStr, TD_FILE_READ); if (pLogFile == NULL) { - wError("vgId:%d, cannot open file %s, since %s", pWal->cfg.vgId, fLogNameStr, terrstr()); - + wError("vgId:%d, cannot open file %s since %s", pWal->cfg.vgId, fLogNameStr, terrstr()); TAOS_CHECK_GOTO(terrno, &lino, _err); } - // determine the last valid entry end, i.e. offset + // determine the last valid entry end, i.e, offset while ((offset -= sizeof(SWalIdxEntry)) >= 0) { if (taosLSeekFile(pIdxFile, offset, SEEK_SET) < 0) { - wError("vgId:%d, failed to seek file due to %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, strerror(terrno), - offset, fnameStr); - + wError("vgId:%d, failed to seek file %s since %s, offset:%" PRId64, pWal->cfg.vgId, fnameStr, strerror(terrno), + offset); TAOS_CHECK_GOTO(terrno, &lino, _err); } if (taosReadFile(pIdxFile, &idxEntry, sizeof(SWalIdxEntry)) != sizeof(SWalIdxEntry)) { - wError("vgId:%d, failed to read file due to %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, strerror(terrno), - offset, fnameStr); + wError("vgId:%d, failed to read file %s since %s, offset:%" PRId64, pWal->cfg.vgId, fnameStr, strerror(terrno), + offset); TAOS_CHECK_GOTO(terrno, &lino, _err); } @@ -623,8 +621,8 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { } if (walReadLogHead(pLogFile, idxEntry.offset, &ckHead) < 0) { - wWarn("vgId:%d, failed to read log file since %s. file:%s, offset:%" PRId64 ", idx entry ver:%" PRId64 "", - pWal->cfg.vgId, terrstr(), fLogNameStr, idxEntry.offset, idxEntry.ver); + wWarn("vgId:%d, failed to read log file %s since %s, offset:%" PRId64 ", idx entry index:%" PRId64, + pWal->cfg.vgId, fLogNameStr, terrstr(), idxEntry.offset, idxEntry.ver); continue; } @@ -639,18 +637,15 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { // ftruncate idx file if (offset < fileSize) { if (taosFtruncateFile(pIdxFile, offset) < 0) { - wError("vgId:%d, failed to ftruncate file since %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, terrstr(), - offset, fnameStr); - + wError("vgId:%d, failed to ftruncate file %s since %s, offset:%" PRId64, pWal->cfg.vgId, fnameStr, terrstr(), + offset); TAOS_CHECK_GOTO(terrno, &lino, _err); } } // rebuild idx file if (taosLSeekFile(pIdxFile, 0, SEEK_END) < 0) { - wError("vgId:%d, failed to seek file since %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, terrstr(), offset, - fnameStr); - + wError("vgId:%d, failed to seek file %s since %s, offset:%" PRId64, pWal->cfg.vgId, fnameStr, terrstr(), offset); TAOS_CHECK_GOTO(terrno, &lino, _err); } @@ -669,27 +664,24 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { code = walReadLogHead(pLogFile, idxEntry.offset, &ckHead); if (code) { - wError("vgId:%d, failed to read wal log head since %s. index:%" PRId64 ", offset:%" PRId64 ", file:%s", + wError("vgId:%d, failed to read wal log head since %s, index:%" PRId64 ", offset:%" PRId64 ", file:%s", pWal->cfg.vgId, terrstr(), idxEntry.ver, idxEntry.offset, fLogNameStr); - TAOS_CHECK_GOTO(code, &lino, _err); } if (pWal->cfg.level != TAOS_WAL_SKIP && taosWriteFile(pIdxFile, &idxEntry, sizeof(SWalIdxEntry)) < 0) { - wError("vgId:%d, failed to append file since %s. file:%s", pWal->cfg.vgId, terrstr(), fnameStr); - + wError("vgId:%d, failed to append file %s since %s", pWal->cfg.vgId, fnameStr, terrstr()); TAOS_CHECK_GOTO(terrno, &lino, _err); } count++; } if (pWal->cfg.level != TAOS_WAL_SKIP && taosFsyncFile(pIdxFile) < 0) { - wError("vgId:%d, faild to fsync file since %s. file:%s", pWal->cfg.vgId, terrstr(), fnameStr); - + wError("vgId:%d, faild to fsync file %s since %s", pWal->cfg.vgId, fnameStr, terrstr()); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(ERRNO), &lino, _err); } if (count > 0) { - wInfo("vgId:%d, rebuilt %" PRId64 " wal idx entries until lastVer: %" PRId64, pWal->cfg.vgId, count, + wInfo("vgId:%d, rebuilt %" PRId64 " wal idx entries until last index:%" PRId64, pWal->cfg.vgId, count, pFileInfo->lastVer); } @@ -733,7 +725,7 @@ int32_t walCheckAndRepairIdx(SWal* pWal) { while (--fileIdx >= 0) { code = walCheckAndRepairIdxFile(pWal, fileIdx); if (code) { - wError("vgId:%d, failed to repair idx file since %s. fileIdx:%d", pWal->cfg.vgId, terrstr(), fileIdx); + wError("vgId:%d, failed to repair idx file since %s, fileIdx:%d", pWal->cfg.vgId, terrstr(), fileIdx); TAOS_RETURN(code); } @@ -931,13 +923,13 @@ static int walFindCurMetaVer(SWal* pWal, int64_t* pMetaVer) { int code = regexec(&walMetaRegexPattern, name, 0, NULL, 0); if (code == 0) { (void)sscanf(name, "meta-ver%" PRIi64, &metaVer); - wDebug("vgId:%d, wal find current meta: %s is the meta file, ver %" PRIi64, pWal->cfg.vgId, name, metaVer); + wDebug("vgId:%d, wal find current meta:%s is the meta file, index:%" PRIi64, pWal->cfg.vgId, name, metaVer); break; } - wDebug("vgId:%d, wal find current meta: %s is not meta file", pWal->cfg.vgId, name); + wDebug("vgId:%d, wal find current meta:%s is not meta file", pWal->cfg.vgId, name); } if (taosCloseDir(&pDir) != 0) { - wError("failed to close dir, ret:%s", tstrerror(terrno)); + wError("vgId:%d, failed to close dir, ret:%s", pWal->cfg.vgId, tstrerror(terrno)); regfree(&walMetaRegexPattern); return terrno; } @@ -962,14 +954,12 @@ int32_t walSaveMeta(SWal* pWal) { TAOS_CHECK_GOTO(walFindCurMetaVer(pWal, &metaVer), &lino, _err); // fsync the idx and log file at first to ensure validity of meta if (pWal->cfg.level != TAOS_WAL_SKIP && taosFsyncFile(pWal->pIdxFile) < 0) { - wError("vgId:%d, failed to sync idx file due to %s", pWal->cfg.vgId, strerror(ERRNO)); - + wError("vgId:%d, failed to sync idx file since %s", pWal->cfg.vgId, strerror(ERRNO)); TAOS_RETURN(TAOS_SYSTEM_ERROR(ERRNO)); } if (pWal->cfg.level != TAOS_WAL_SKIP && taosFsyncFile(pWal->pLogFile) < 0) { - wError("vgId:%d, failed to sync log file due to %s", pWal->cfg.vgId, strerror(ERRNO)); - + wError("vgId:%d, failed to sync log file since %s", pWal->cfg.vgId, strerror(ERRNO)); TAOS_RETURN(TAOS_SYSTEM_ERROR(ERRNO)); } @@ -985,7 +975,7 @@ int32_t walSaveMeta(SWal* pWal) { TdFilePtr pMetaFile = taosOpenFile(tmpFnameStr, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_TRUNC | TD_FILE_WRITE_THROUGH); if (pMetaFile == NULL) { - wError("vgId:%d, failed to open file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), tmpFnameStr); + wError("vgId:%d, failed to open file %s since %s", pWal->cfg.vgId, tmpFnameStr, strerror(ERRNO)); TAOS_RETURN(terrno); } @@ -994,23 +984,21 @@ int32_t walSaveMeta(SWal* pWal) { TAOS_CHECK_RETURN(walMetaSerialize(pWal, &serialized)); int len = strlen(serialized); if (pWal->cfg.level != TAOS_WAL_SKIP && len != taosWriteFile(pMetaFile, serialized, len)) { - wError("vgId:%d, failed to write file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), tmpFnameStr); + wError("vgId:%d, failed to write file %s since %s", pWal->cfg.vgId, tmpFnameStr, strerror(ERRNO)); TAOS_CHECK_GOTO(terrno, &lino, _err); } if (pWal->cfg.level != TAOS_WAL_SKIP && taosFsyncFile(pMetaFile) < 0) { - wError("vgId:%d, failed to sync file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), tmpFnameStr); - + wError("vgId:%d, failed to sync file %s since %s", pWal->cfg.vgId, tmpFnameStr, strerror(ERRNO)); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(ERRNO), &lino, _err); } if (taosCloseFile(&pMetaFile) < 0) { - wError("vgId:%d, failed to close file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), tmpFnameStr); - + wError("vgId:%d, failed to close file %s since %s", pWal->cfg.vgId, tmpFnameStr, strerror(ERRNO)); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(ERRNO), &lino, _err); } - wInfo("vgId:%d, save meta file: %s, firstVer:%" PRId64 ", lastVer:%" PRId64, pWal->cfg.vgId, tmpFnameStr, + wInfo("vgId:%d, save meta file %s, first index:%" PRId64 ", last index:%" PRId64, pWal->cfg.vgId, tmpFnameStr, pWal->vers.firstVer, pWal->vers.lastVer); // rename it @@ -1020,8 +1008,7 @@ int32_t walSaveMeta(SWal* pWal) { } if (taosRenameFile(tmpFnameStr, fnameStr) < 0) { - wError("failed to rename file due to %s. dest:%s", strerror(ERRNO), fnameStr); - + wError("failed to rename file from %s to %s since %s", tmpFnameStr, fnameStr, strerror(ERRNO)); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(ERRNO), &lino, _err); } @@ -1033,9 +1020,9 @@ int32_t walSaveMeta(SWal* pWal) { } code = taosRemoveFile(fnameStr); if (code) { - wError("vgId:%d, failed to remove file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), fnameStr); + wError("vgId:%d, failed to remove file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); } else { - wInfo("vgId:%d, remove old meta file: %s", pWal->cfg.vgId, fnameStr); + wInfo("vgId:%d, remove old meta file %s", pWal->cfg.vgId, fnameStr); } } @@ -1071,11 +1058,11 @@ int32_t walLoadMeta(SWal* pWal) { if (fileSize == 0) { code = taosRemoveFile(fnameStr); if (code) { - wError("vgId:%d, failed to remove file due to %s. file:%s", pWal->cfg.vgId, strerror(ERRNO), fnameStr); + wError("vgId:%d, failed to remove file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); } else { - wInfo("vgId:%d, remove old meta file: %s", pWal->cfg.vgId, fnameStr); + wInfo("vgId:%d, remove old meta file %s", pWal->cfg.vgId, fnameStr); } - wDebug("vgId:%d, wal find empty meta ver %" PRIi64, pWal->cfg.vgId, metaVer); + wDebug("vgId:%d, wal find empty meta index:%" PRIi64, pWal->cfg.vgId, metaVer); TAOS_RETURN(TSDB_CODE_FAILED); } @@ -1095,17 +1082,18 @@ int32_t walLoadMeta(SWal* pWal) { // load into fileInfoSet code = walMetaDeserialize(pWal, buf); if (code < 0) { - wError("failed to deserialize wal meta. file:%s", fnameStr); + wError("vgId:%d, failed to deserialize wal meta, file:%s", pWal->cfg.vgId, fnameStr); code = TSDB_CODE_WAL_FILE_CORRUPTED; } - wInfo("vgId:%d, meta file loaded: %s, firstVer:%" PRId64 ", lastVer:%" PRId64 ", fileInfoSet size:%d", pWal->cfg.vgId, - fnameStr, pWal->vers.firstVer, pWal->vers.lastVer, (int32_t)taosArrayGetSize(pWal->fileInfoSet)); + wInfo("vgId:%d, meta file %s loaded, first index:%" PRId64 ", last index:%" PRId64 ", fileInfoSet size:%d", + pWal->cfg.vgId, fnameStr, pWal->vers.firstVer, pWal->vers.lastVer, + (int32_t)taosArrayGetSize(pWal->fileInfoSet)); printFileSet(pWal->cfg.vgId, pWal->fileInfoSet, "file in meta"); _exit: if (code != TSDB_CODE_SUCCESS) { - wError("vgId:%d, failed to load meta file due to %s, at line:%d", pWal->cfg.vgId, tstrerror(code), lino); + wError("vgId:%d, failed to load meta file since %s, at line:%d", pWal->cfg.vgId, tstrerror(code), lino); } taosMemoryFree(buf); diff --git a/source/libs/wal/src/walMgmt.c b/source/libs/wal/src/walMgmt.c index e25b00d8c9..0deeda0463 100644 --- a/source/libs/wal/src/walMgmt.c +++ b/source/libs/wal/src/walMgmt.c @@ -99,14 +99,14 @@ int32_t walInitWriteFileForSkip(SWal *pWal) { walBuildIdxName(pWal, fileFirstVer, fnameStr); pIdxTFile = taosOpenFile(fnameStr, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_APPEND); if (pIdxTFile == NULL) { - wError("vgId:%d, failed to open file since %s", pWal->cfg.vgId, tstrerror(terrno)); + wError("vgId:%d, failed to open file %s since %s", pWal->cfg.vgId, fnameStr, tstrerror(terrno)); code = terrno; goto _exit; } walBuildLogName(pWal, fileFirstVer, fnameStr); pLogTFile = taosOpenFile(fnameStr, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_APPEND); if (pLogTFile == NULL) { - wError("vgId:%d, failed to open file since %s", pWal->cfg.vgId, tstrerror(terrno)); + wError("vgId:%d, failed to open file %s since %s", pWal->cfg.vgId, fnameStr, tstrerror(terrno)); code = terrno; goto _exit; } @@ -166,7 +166,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { // init ref pWal->pRefHash = taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_ENTRY_LOCK); if (pWal->pRefHash == NULL) { - wError("failed to init hash since %s", tstrerror(terrno)); + wError("vgId:%d, failed to init hash since %s", pWal->cfg.vgId, tstrerror(terrno)); goto _err; } @@ -177,7 +177,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { pWal->writeCur = -1; pWal->fileInfoSet = taosArrayInit(8, sizeof(SWalFileInfo)); if (pWal->fileInfoSet == NULL) { - wError("vgId:%d, failed to init taosArray of fileInfoSet due to %s. path:%s", pWal->cfg.vgId, strerror(ERRNO), + wError("vgId:%d, failed to init taosArray of fileInfoSet since %s, path:%s", pWal->cfg.vgId, strerror(ERRNO), pWal->path); goto _err; } @@ -185,7 +185,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { // init gc pWal->toDeleteFiles = taosArrayInit(8, sizeof(SWalFileInfo)); if (pWal->toDeleteFiles == NULL) { - wError("vgId:%d, failed to init taosArray of toDeleteFiles due to %s. path:%s", pWal->cfg.vgId, strerror(ERRNO), + wError("vgId:%d, failed to init taosArray of toDeleteFiles since %s, path:%s", pWal->cfg.vgId, strerror(ERRNO), pWal->path); goto _err; } @@ -202,7 +202,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { // load meta code = walLoadMeta(pWal); if (code < 0) { - wWarn("vgId:%d, failed to load meta since %s", pWal->cfg.vgId, tstrerror(code)); + wWarn("vgId:%d, failed to load meta, code:0x%x", pWal->cfg.vgId, code); } if (pWal->cfg.level != TAOS_WAL_SKIP) { code = walCheckAndRepairMeta(pWal); diff --git a/source/libs/wal/src/walRead.c b/source/libs/wal/src/walRead.c index 4d47de98b4..e45856de33 100644 --- a/source/libs/wal/src/walRead.c +++ b/source/libs/wal/src/walRead.c @@ -76,7 +76,8 @@ int32_t walNextValidMsg(SWalReader *pReader) { int64_t committedVer = walGetCommittedVer(pReader->pWal); int64_t appliedVer = walGetAppliedVer(pReader->pWal); - wDebug("vgId:%d, wal start to fetch, index:%" PRId64 ", last:%" PRId64 " commit:%" PRId64 ", applied:%" PRId64, + wDebug("vgId:%d, wal start to fetch, index:%" PRId64 ", last index:%" PRId64 " commit index:%" PRId64 + ", applied index:%" PRId64, pReader->pWal->cfg.vgId, fetchVer, lastVer, committedVer, appliedVer); if (fetchVer > appliedVer) { TAOS_RETURN(TSDB_CODE_WAL_LOG_NOT_EXIST); @@ -149,12 +150,10 @@ static int32_t walReadSeekFilePos(SWalReader *pReader, int64_t fileFirstVer, int if ((ret = taosReadFile(pIdxTFile, &entry, sizeof(SWalIdxEntry))) != sizeof(SWalIdxEntry)) { if (ret < 0) { wError("vgId:%d, failed to read idx file, since %s", pReader->pWal->cfg.vgId, terrstr()); - TAOS_RETURN(terrno); } else { - wError("vgId:%d, read idx file incompletely, read bytes %" PRId64 ", bytes should be %ld", - pReader->pWal->cfg.vgId, ret, sizeof(SWalIdxEntry)); - + wError("vgId:%d, read idx file incompletely, read bytes %" PRId64 ", bytes should be %d", pReader->pWal->cfg.vgId, + ret, (int32_t)sizeof(SWalIdxEntry)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } } @@ -163,7 +162,6 @@ static int32_t walReadSeekFilePos(SWalReader *pReader, int64_t fileFirstVer, int if (ret < 0) { wError("vgId:%d, failed to seek log file, index:%" PRId64 ", pos:%" PRId64 ", since %s", pReader->pWal->cfg.vgId, ver, entry.offset, terrstr()); - TAOS_RETURN(terrno); } @@ -180,7 +178,6 @@ static int32_t walReadChangeFile(SWalReader *pReader, int64_t fileFirstVer) { TdFilePtr pLogFile = taosOpenFile(fnameStr, TD_FILE_READ); if (pLogFile == NULL) { wError("vgId:%d, cannot open file %s, since %s", pReader->pWal->cfg.vgId, fnameStr, terrstr()); - TAOS_RETURN(terrno); } @@ -190,7 +187,6 @@ static int32_t walReadChangeFile(SWalReader *pReader, int64_t fileFirstVer) { TdFilePtr pIdxFile = taosOpenFile(fnameStr, TD_FILE_READ); if (pIdxFile == NULL) { wError("vgId:%d, cannot open file %s, since %s", pReader->pWal->cfg.vgId, fnameStr, terrstr()); - TAOS_RETURN(terrno); } @@ -210,7 +206,7 @@ static int32_t walReadSeekVerImpl(SWalReader *pReader, int64_t ver) { TAOS_UNUSED(taosThreadRwlockRdlock(&pWal->mutex)); SWalFileInfo *globalRet = taosArraySearch(pWal->fileInfoSet, &tmpInfo, compareWalFileInfo, TD_LE); if (globalRet == NULL) { - wError("failed to find WAL log file with ver:%" PRId64, ver); + wError("vgId:%d, failed to find WAL log file with index:%" PRId64, pReader->pWal->cfg.vgId, ver); TAOS_UNUSED(taosThreadRwlockUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_WAL_INVALID_VER); } @@ -298,8 +294,8 @@ int32_t walFetchHead(SWalReader *pRead, int64_t ver) { } int32_t walSkipFetchBody(SWalReader *pRead) { - wDebug("vgId:%d, skip:%" PRId64 ", first:%" PRId64 ", commit:%" PRId64 ", last:%" PRId64 ", applied:%" PRId64 - ", 0x%" PRIx64, + wDebug("vgId:%d, skip:%" PRId64 ", first index:%" PRId64 ", commit index:%" PRId64 ", last index:%" PRId64 + ", applied index:%" PRId64 ", reader:0x%" PRIx64, pRead->pWal->cfg.vgId, pRead->pHead->head.version, pRead->pWal->vers.firstVer, pRead->pWal->vers.commitVer, pRead->pWal->vers.lastVer, pRead->pWal->vers.appliedVer, pRead->readerId); @@ -326,8 +322,8 @@ int32_t walFetchBody(SWalReader *pRead) { int64_t id = pRead->readerId; SWalVer *pVer = &pRead->pWal->vers; - wDebug("vgId:%d, fetch body:%" PRId64 ", first:%" PRId64 ", commit:%" PRId64 ", last:%" PRId64 ", applied:%" PRId64 - ", 0x%" PRIx64, + wDebug("vgId:%d, fetch body:%" PRId64 ", first index:%" PRId64 ", commit index:%" PRId64 ", last index:%" PRId64 + ", applied index:%" PRId64 ", reader:0x%" PRIx64, vgId, ver, pVer->firstVer, pVer->commitVer, pVer->lastVer, pVer->appliedVer, id); int32_t plainBodyLen = pReadHead->bodyLen; @@ -350,31 +346,28 @@ int32_t walFetchBody(SWalReader *pRead) { if (cryptedBodyLen != taosReadFile(pRead->pLogFile, pReadHead->body, cryptedBodyLen)) { if (plainBodyLen < 0) { - wError("vgId:%d, wal fetch body error:%" PRId64 ", read request index:%" PRId64 ", since %s, 0x%" PRIx64, vgId, - pReadHead->version, ver, tstrerror(terrno), id); - + wError("vgId:%d, wal fetch body error:%" PRId64 ", read request index:%" PRId64 ", since %s, reader:0x%" PRIx64, + vgId, pReadHead->version, ver, tstrerror(terrno), id); TAOS_RETURN(terrno); } else { wError("vgId:%d, wal fetch body error:%" PRId64 ", read request index:%" PRId64 - ", since file corrupted, 0x%" PRIx64, + ", since file corrupted, reader:0x%" PRIx64, vgId, pReadHead->version, ver, id); - TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } } if (pReadHead->version != ver) { - wError("vgId:%d, wal fetch body error, index:%" PRId64 ", read request index:%" PRId64 ", 0x%" PRIx64, vgId, + wError("vgId:%d, wal fetch body error, index:%" PRId64 ", read request index:%" PRId64 ", reader:0x%" PRIx64, vgId, pReadHead->version, ver, id); - TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } TAOS_CHECK_RETURN(decryptBody(&pRead->pWal->cfg, pRead->pHead, plainBodyLen, __FUNCTION__)); if (walValidBodyCksum(pRead->pHead) != 0) { - wError("vgId:%d, wal fetch body error, index:%" PRId64 ", since body checksum not passed, 0x%" PRIx64, vgId, ver, - id); + wError("vgId:%d, wal fetch body error, index:%" PRId64 ", since body checksum not passed, reader:0x%" PRIx64, vgId, + ver, id); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } diff --git a/source/libs/wal/src/walRef.c b/source/libs/wal/src/walRef.c index 6b8b063b2b..75339563f3 100644 --- a/source/libs/wal/src/walRef.c +++ b/source/libs/wal/src/walRef.c @@ -46,23 +46,22 @@ void walCloseRef(SWal *pWal, int64_t refId) { SWalRef *pRef = *ppRef; if (pRef) { - wDebug("vgId:%d, wal close ref %" PRId64 ", refId %" PRId64, pWal->cfg.vgId, pRef->refVer, pRef->refId); - + wDebug("vgId:%d, wal close ref:%" PRId64 ", refId:%" PRId64, pWal->cfg.vgId, pRef->refVer, pRef->refId); taosMemoryFree(pRef); } else { - wDebug("vgId:%d, wal close ref null, refId %" PRId64, pWal->cfg.vgId, refId); + wDebug("vgId:%d, wal close ref null, refId:%" PRId64, pWal->cfg.vgId, refId); } int32_t code = 0; code = taosHashRemove(pWal->pRefHash, &refId, sizeof(int64_t)); if (code) { - wError("vgId:%d, wal remove ref failed, refId %" PRId64 ", error:%s", pWal->cfg.vgId, refId, tstrerror(code)); + wError("vgId:%d, wal remove ref failed, refId:%" PRId64 ", error:%s", pWal->cfg.vgId, refId, tstrerror(code)); } } } int32_t walSetRefVer(SWalRef *pRef, int64_t ver) { SWal *pWal = pRef->pWal; - wDebug("vgId:%d, wal ref version %" PRId64 ", refId %" PRId64, pWal->cfg.vgId, ver, pRef->refId); + wDebug("vgId:%d, wal ref version:%" PRId64 ", refId:%" PRId64, pWal->cfg.vgId, ver, pRef->refId); if (pRef->refVer != ver) { TAOS_UNUSED(taosThreadRwlockWrlock(&pWal->mutex)); if (ver < pWal->vers.firstVer || ver > pWal->vers.lastVer) { @@ -84,7 +83,7 @@ void walRefFirstVer(SWal *pWal, SWalRef *pRef) { pRef->refVer = pWal->vers.firstVer; TAOS_UNUSED(taosThreadRwlockUnlock(&pWal->mutex)); - wDebug("vgId:%d, wal ref version %" PRId64 " for first", pWal->cfg.vgId, pRef->refVer); + wDebug("vgId:%d, wal ref version:%" PRId64 " for first", pWal->cfg.vgId, pRef->refVer); } void walRefLastVer(SWal *pWal, SWalRef *pRef) { @@ -93,5 +92,5 @@ void walRefLastVer(SWal *pWal, SWalRef *pRef) { pRef->refVer = pWal->vers.lastVer; TAOS_UNUSED(taosThreadRwlockUnlock(&pWal->mutex)); - wDebug("vgId:%d, wal ref version %" PRId64 " for last", pWal->cfg.vgId, pRef->refVer); + wDebug("vgId:%d, wal ref version:%" PRId64 " for last", pWal->cfg.vgId, pRef->refVer); } diff --git a/source/libs/wal/src/walWrite.c b/source/libs/wal/src/walWrite.c index 64d4c1a65f..c28be3d70f 100644 --- a/source/libs/wal/src/walWrite.c +++ b/source/libs/wal/src/walWrite.c @@ -25,7 +25,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { TAOS_UNUSED(taosThreadRwlockWrlock(&pWal->mutex)); - wInfo("vgId:%d, restore from snapshot, version %" PRId64, pWal->cfg.vgId, ver); + wInfo("vgId:%d, restore from snapshot, index:%" PRId64, pWal->cfg.vgId, ver); void *pIter = NULL; while (1) { @@ -156,7 +156,7 @@ int64_t walChangeWrite(SWal *pWal, int64_t ver) { int32_t walRollback(SWal *pWal, int64_t ver) { TAOS_UNUSED(taosThreadRwlockWrlock(&pWal->mutex)); - wInfo("vgId:%d, wal rollback for version %" PRId64, pWal->cfg.vgId, ver); + wInfo("vgId:%d, wal rollback for index:%" PRId64, pWal->cfg.vgId, ver); int32_t code = 0; int32_t lino = 0; int64_t ret; @@ -348,8 +348,8 @@ int32_t walBeginSnapshot(SWal *pWal, int64_t ver, int64_t logRetention) { pWal->vers.verInSnapshotting = ver; pWal->vers.logRetention = logRetention; - wDebug("vgId:%d, wal begin snapshot for version %" PRId64 ", log retention %" PRId64 " first ver %" PRId64 - ", last ver %" PRId64, + wDebug("vgId:%d, wal begin snapshot for index:%" PRId64 ", log retention:%" PRId64 " first index:%" PRId64 + ", last index:%" PRId64, pWal->cfg.vgId, ver, pWal->vers.logRetention, pWal->vers.firstVer, pWal->vers.lastVer); // check file rolling if (walGetLastFileSize(pWal) != 0 && (code = walRollImpl(pWal)) < 0) goto _exit; @@ -372,8 +372,8 @@ int32_t walEndSnapshot(SWal *pWal) { TAOS_UNUSED(taosThreadRwlockWrlock(&pWal->mutex)); int64_t ver = pWal->vers.verInSnapshotting; - wDebug("vgId:%d, wal end snapshot for version %" PRId64 ", log retention %" PRId64 " first ver %" PRId64 - ", last ver %" PRId64, + wDebug("vgId:%d, wal end snapshot for index:%" PRId64 ", log retention:%" PRId64 " first index:%" PRId64 + ", last index:%" PRId64, pWal->cfg.vgId, ver, pWal->vers.logRetention, pWal->vers.firstVer, pWal->vers.lastVer); if (ver == -1) { @@ -397,7 +397,7 @@ int32_t walEndSnapshot(SWal *pWal) { hasTopic = true; } if (pWal->cfg.retentionPeriod == 0 && hasTopic) { - wInfo("vgId:%d, wal found refVer:%" PRId64 " in compatible mode, ver:%" PRId64, pWal->cfg.vgId, refVer, ver); + wInfo("vgId:%d, wal found ref index:%" PRId64 " in compatible mode, index:%" PRId64, pWal->cfg.vgId, refVer, ver); ver = TMIN(ver, refVer); } @@ -409,8 +409,8 @@ int32_t walEndSnapshot(SWal *pWal) { SWalFileInfo *pInfo = taosArraySearch(pWal->fileInfoSet, &tmp, compareWalFileInfo, TD_LE); if (pInfo) { - wDebug("vgId:%d, wal search found file info. ver:%" PRId64 ", first:%" PRId64 " last:%" PRId64, pWal->cfg.vgId, ver, - pInfo->firstVer, pInfo->lastVer); + wDebug("vgId:%d, wal search found file info, index:%" PRId64 ", first index:%" PRId64 ", last index:%" PRId64, + pWal->cfg.vgId, ver, pInfo->firstVer, pInfo->lastVer); if (ver > pInfo->lastVer) { TAOS_CHECK_GOTO(TSDB_CODE_FAILED, &lino, _exit); } @@ -464,17 +464,17 @@ int32_t walEndSnapshot(SWal *pWal) { walBuildLogName(pWal, pInfo->firstVer, fnameStr); if (taosRemoveFile(fnameStr) < 0 && ERRNO != ENOENT) { - wError("vgId:%d, failed to remove log file %s due to %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); + wError("vgId:%d, failed to remove log file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); goto _exit; } walBuildIdxName(pWal, pInfo->firstVer, fnameStr); if (taosRemoveFile(fnameStr) < 0 && ERRNO != ENOENT) { - wError("vgId:%d, failed to remove idx file %s due to %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); + wError("vgId:%d, failed to remove idx file %s since %s", pWal->cfg.vgId, fnameStr, strerror(ERRNO)); goto _exit; } } if (pInfo != NULL) { - wInfo("vgId:%d, wal log files recycled. count:%d, until ver:%" PRId64 ", closeTs:%" PRId64, pWal->cfg.vgId, + wInfo("vgId:%d, wal log files recycled, count:%d, until index:%" PRId64 ", closeTs:%" PRId64, pWal->cfg.vgId, deleteCnt, pInfo->lastVer, pInfo->closeTs); } taosArrayClear(pWal->toDeleteFiles); @@ -496,19 +496,19 @@ static void walStopDnode(SWal *pWal) { } } -static int32_t walWriteIndex(SWal *pWal, int64_t ver, int64_t offset) { +static int32_t walWriteIndex(SWal *pWal, int64_t ver, int64_t offset, const STraceId *trace) { int32_t code = 0; SWalIdxEntry entry = {.ver = ver, .offset = offset}; SWalFileInfo *pFileInfo = walGetCurFileInfo(pWal); int64_t idxOffset = (entry.ver - pFileInfo->firstVer) * sizeof(SWalIdxEntry); - wDebug("vgId:%d, write index, index:%" PRId64 ", offset:%" PRId64 ", at %" PRId64, pWal->cfg.vgId, ver, offset, - idxOffset); + wGTrace(trace, "vgId:%d, index:%" PRId64 ", write log entry at %" PRId64 ", offset:%" PRId64, pWal->cfg.vgId, ver, + idxOffset, offset); int64_t size = taosWriteFile(pWal->pIdxFile, &entry, sizeof(SWalIdxEntry)); if (size != sizeof(SWalIdxEntry)) { - wError("vgId:%d, failed to write idx entry due to %s. ver:%" PRId64, pWal->cfg.vgId, strerror(ERRNO), ver); + wGError(trace, "vgId:%d, index:%" PRId64 ", failed to write entry since %s", pWal->cfg.vgId, ver, strerror(ERRNO)); walStopDnode(pWal); TAOS_RETURN(terrno); } @@ -516,8 +516,8 @@ static int32_t walWriteIndex(SWal *pWal, int64_t ver, int64_t offset) { // check alignment of idx entries int64_t endOffset = taosLSeekFile(pWal->pIdxFile, 0, SEEK_END); if (endOffset < 0) { - wFatal("vgId:%d, failed to seek end of WAL idxfile due to %s. ver:%" PRId64 ", endOffset:%" PRId64, pWal->cfg.vgId, - tstrerror(terrno), ver, endOffset); + wGFatal(trace, "vgId:%d, index:%" PRId64 ", failed to seek end of WAL idxfile since %s, endOffset:%" PRId64, + pWal->cfg.vgId, ver, tstrerror(terrno), endOffset); taosMsleep(100); exit(EXIT_FAILURE); } @@ -526,7 +526,7 @@ static int32_t walWriteIndex(SWal *pWal, int64_t ver, int64_t offset) { } static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgType, SWalSyncInfo syncMeta, - const void *body, int32_t bodyLen) { + const void *body, int32_t bodyLen, const STraceId *trace) { int32_t code = 0, lino = 0; int32_t plainBodyLen = bodyLen; @@ -543,18 +543,18 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy pWal->writeHead.cksumHead = walCalcHeadCksum(&pWal->writeHead); pWal->writeHead.cksumBody = walCalcBodyCksum(body, plainBodyLen); - wDebug("vgId:%d, wal write log %" PRId64 ", msgType: %s, cksum head %u cksum body %u", pWal->cfg.vgId, index, - TMSG_INFO(msgType), pWal->writeHead.cksumHead, pWal->writeHead.cksumBody); + wGDebug(trace, "vgId:%d, index:%" PRId64 ", write log, type:%s, cksum head:%u, cksum body:%u", pWal->cfg.vgId, index, + TMSG_INFO(msgType), pWal->writeHead.cksumHead, pWal->writeHead.cksumBody); if (pWal->cfg.level != TAOS_WAL_SKIP) { - TAOS_CHECK_GOTO(walWriteIndex(pWal, index, offset), &lino, _exit); + TAOS_CHECK_GOTO(walWriteIndex(pWal, index, offset, trace), &lino, _exit); } if (pWal->cfg.level != TAOS_WAL_SKIP && taosWriteFile(pWal->pLogFile, &pWal->writeHead, sizeof(SWalCkHead)) != sizeof(SWalCkHead)) { code = terrno; - wError("vgId:%d, file:%" PRId64 ".log, failed to write since %s", pWal->cfg.vgId, walGetLastFileFirstVer(pWal), - strerror(ERRNO)); + wGError(trace, "vgId:%d, file:%" PRId64 ".log, failed to write since %s", pWal->cfg.vgId, + walGetLastFileFirstVer(pWal), strerror(ERRNO)); walStopDnode(pWal); TAOS_CHECK_GOTO(code, &lino, _exit); } @@ -575,8 +575,8 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy newBodyEncrypted = taosMemoryMalloc(cyptedBodyLen); if (newBodyEncrypted == NULL) { - wError("vgId:%d, file:%" PRId64 ".log, failed to malloc since %s", pWal->cfg.vgId, walGetLastFileFirstVer(pWal), - strerror(ERRNO)); + wGError(trace, "vgId:%d, file:%" PRId64 ".log, failed to malloc since %s", pWal->cfg.vgId, + walGetLastFileFirstVer(pWal), strerror(ERRNO)); if (newBody != NULL) taosMemoryFreeClear(newBody); @@ -600,8 +600,8 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy if (pWal->cfg.level != TAOS_WAL_SKIP && taosWriteFile(pWal->pLogFile, (char *)buf, cyptedBodyLen) != cyptedBodyLen) { code = terrno; - wError("vgId:%d, file:%" PRId64 ".log, failed to write since %s", pWal->cfg.vgId, walGetLastFileFirstVer(pWal), - strerror(ERRNO)); + wGError(trace, "vgId:%d, file:%" PRId64 ".log, failed to write since %s", pWal->cfg.vgId, + walGetLastFileFirstVer(pWal), strerror(ERRNO)); if (pWal->cfg.encryptAlgorithm == DND_CA_SM4) { taosMemoryFreeClear(newBody); @@ -631,21 +631,21 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy _exit: if (code) { - wError("vgId:%d, %s failed at line %d since %s", pWal->cfg.vgId, __func__, lino, tstrerror(code)); + wGError(trace, "vgId:%d, %s failed at line %d since %s", pWal->cfg.vgId, __func__, lino, tstrerror(code)); } - + // recover in a reverse order if (taosFtruncateFile(pWal->pLogFile, offset) < 0) { - wFatal("vgId:%d, failed to recover WAL logfile from write error since %s, offset:%" PRId64, pWal->cfg.vgId, - terrstr(), offset); + wGFatal(trace, "vgId:%d, failed to recover WAL logfile from write error since %s, offset:%" PRId64, pWal->cfg.vgId, + terrstr(), offset); taosMsleep(100); exit(EXIT_FAILURE); } int64_t idxOffset = (index - pFileInfo->firstVer) * sizeof(SWalIdxEntry); if (taosFtruncateFile(pWal->pIdxFile, idxOffset) < 0) { - wFatal("vgId:%d, failed to recover WAL idxfile from write error since %s, offset:%" PRId64, pWal->cfg.vgId, - terrstr(), idxOffset); + wGFatal(trace, "vgId:%d, failed to recover WAL idxfile from write error since %s, offset:%" PRId64, pWal->cfg.vgId, + terrstr(), idxOffset); taosMsleep(100); exit(EXIT_FAILURE); } @@ -691,7 +691,7 @@ static int32_t walInitWriteFile(SWal *pWal) { } int32_t walAppendLog(SWal *pWal, int64_t index, tmsg_t msgType, SWalSyncInfo syncMeta, const void *body, - int32_t bodyLen) { + int32_t bodyLen, const STraceId *trace) { int32_t code = 0, lino = 0; TAOS_UNUSED(taosThreadRwlockWrlock(&pWal->mutex)); @@ -706,11 +706,11 @@ int32_t walAppendLog(SWal *pWal, int64_t index, tmsg_t msgType, SWalSyncInfo syn TAOS_CHECK_GOTO(walInitWriteFile(pWal), &lino, _exit); } - TAOS_CHECK_GOTO(walWriteImpl(pWal, index, msgType, syncMeta, body, bodyLen), &lino, _exit); + TAOS_CHECK_GOTO(walWriteImpl(pWal, index, msgType, syncMeta, body, bodyLen, trace), &lino, _exit); _exit: if (code) { - wError("%s failed at line %d since %s", __func__, lino, tstrerror(code)); + wError("vgId:%d, %s failed at line %d since %s", pWal->cfg.vgId, __func__, lino, tstrerror(code)); } TAOS_UNUSED(taosThreadRwlockUnlock(&pWal->mutex)); diff --git a/source/libs/wal/test/walMetaTest.cpp b/source/libs/wal/test/walMetaTest.cpp index 9e364717f4..f62f234092 100644 --- a/source/libs/wal/test/walMetaTest.cpp +++ b/source/libs/wal/test/walMetaTest.cpp @@ -279,10 +279,10 @@ TEST_F(WalKeepEnv, readOldMeta) { syncMeta.term = UINT64_MAX; for (int i = 0; i < 10; i++) { - code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); - code = walAppendLog(pWal, i + 2, i, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i + 2, i, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, TSDB_CODE_WAL_INVALID_VER); ASSERT_EQ(pWal->vers.lastVer, i); } @@ -312,10 +312,10 @@ TEST_F(WalKeepEnv, readOldMeta) { TEST_F(WalCleanEnv, write) { int code; for (int i = 0; i < 10; i++) { - code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); - code = walAppendLog(pWal, i + 2, i, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i + 2, i, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, TSDB_CODE_WAL_INVALID_VER); ASSERT_EQ(pWal->vers.lastVer, i); } @@ -326,7 +326,7 @@ TEST_F(WalCleanEnv, write) { TEST_F(WalCleanEnv, rollback) { int code; for (int i = 0; i < 10; i++) { - code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); } @@ -349,7 +349,7 @@ TEST_F(WalCleanEnv, rollback) { TEST_F(WalCleanEnv, rollbackMultiFile) { int code; for (int i = 0; i < 10; i++) { - code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); if (i == 5) { @@ -371,7 +371,7 @@ TEST_F(WalCleanEnv, rollbackMultiFile) { ASSERT_EQ(pWal->vers.lastVer, 5); - code = walAppendLog(pWal, 6, 6, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, 6, 6, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, 6); @@ -383,7 +383,7 @@ TEST_F(WalCleanDeleteEnv, roll) { int code; int i; for (i = 0; i < 100; i++) { - code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); code = walCommit(pWal, i); @@ -396,11 +396,11 @@ TEST_F(WalCleanDeleteEnv, roll) { ASSERT_EQ(pWal->vers.snapshotVer, i - 1); ASSERT_EQ(pWal->vers.verInSnapshotting, -1); - code = walAppendLog(pWal, 5, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, 5, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_NE(code, 0); for (; i < 200; i++) { - code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); code = walCommit(pWal, i); ASSERT_EQ(pWal->vers.commitVer, i); @@ -423,7 +423,7 @@ TEST_F(WalKeepEnv, readHandleRead) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } for (int i = 0; i < 1000; i++) { @@ -461,7 +461,7 @@ TEST_F(WalKeepEnv, walLogExist) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } walLogExist(pWal, 0); @@ -477,7 +477,7 @@ TEST_F(WalKeepEnv, walScanLogGetLastVerHeadMissMatch) { sprintf(newStr, "%s-%d", ranStr, 0); sprintf(newStr, "%s-%d", ranStr, 0); int len = strlen(newStr); - code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len, NULL); } while (0); int i = 0; @@ -512,7 +512,7 @@ TEST_F(WalKeepEnv, walScanLogGetLastVerBodyMissMatch) { sprintf(newStr, "%s-%d", ranStr, 0); sprintf(newStr, "%s-%d", ranStr, 0); int len = strlen(newStr); - code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len, NULL); } while (0); int i = 0; @@ -547,7 +547,7 @@ TEST_F(WalKeepEnv, walCheckAndRepairIdxFile) { sprintf(newStr, "%s-%d", ranStr, 0); sprintf(newStr, "%s-%d", ranStr, 0); int len = strlen(newStr); - code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, 0, 0, syncMeta, newStr, len, NULL); } while (0); SWalFileInfo* pFileInfo = walGetCurFileInfo(pWal); for (int i = 1; i < 100; i++) { @@ -579,7 +579,7 @@ TEST_F(WalKeepEnv, walRestoreFromSnapshot1) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } code = walRestoreFromSnapshot(pWal, 50); @@ -595,7 +595,7 @@ TEST_F(WalKeepEnv, walRestoreFromSnapshot2) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } SWalRef* ref = walOpenRef(pWal); @@ -613,7 +613,7 @@ TEST_F(WalKeepEnv, walRollback) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } code = walRollback(pWal, -1); @@ -636,7 +636,7 @@ TEST_F(WalKeepEnv, walChangeWrite) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -652,7 +652,7 @@ TEST_F(WalCleanEnv, walRepairLogFileTs2) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -663,7 +663,7 @@ TEST_F(WalCleanEnv, walRepairLogFileTs2) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -674,7 +674,7 @@ TEST_F(WalCleanEnv, walRepairLogFileTs2) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -698,7 +698,7 @@ TEST_F(WalRetentionEnv, repairMeta1) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -744,7 +744,7 @@ TEST_F(WalRetentionEnv, repairMeta1) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -781,7 +781,7 @@ TEST_F(WalSkipLevel, restart) { char newStr[100]; sprintf(newStr, "%s-%d", ranStr, i); int len = strlen(newStr); - code = walAppendLog(pWal, i, 0, syncMeta, newStr, len); + code = walAppendLog(pWal, i, 0, syncMeta, newStr, len, NULL); ASSERT_EQ(code, 0); } @@ -794,16 +794,16 @@ TEST_F(WalSkipLevel, roll) { int code; int i; for (i = 0; i < 100; i++) { - code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); code = walCommit(pWal, i); } walBeginSnapshot(pWal, i - 1, 0); walEndSnapshot(pWal); - code = walAppendLog(pWal, 5, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, 5, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_NE(code, 0); for (; i < 200; i++) { - code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, 0, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); code = walCommit(pWal, i); } @@ -816,7 +816,7 @@ TEST_F(WalSkipLevel, roll) { TEST_F(WalEncrypted, write) { int code; for (int i = 0; i < 100; i++) { - code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen); + code = walAppendLog(pWal, i, i + 1, syncMeta, (void*)ranStr, ranStrLen, NULL); ASSERT_EQ(code, 0); ASSERT_EQ(pWal->vers.lastVer, i); } diff --git a/source/util/src/tref.c b/source/util/src/tref.c index dd5e820182..c064ccb786 100644 --- a/source/util/src/tref.c +++ b/source/util/src/tref.c @@ -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("p:%p, failed to add, rsetId not valid, rsetId:%d", p, rsetId); 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("p:%p, failed to add, not active, rsetId:%d", p, rsetId); 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("p:%p, failed to add, out of memory, rsetId:%d", p, rsetId); return terrno; } @@ -176,8 +176,8 @@ 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:0x%" PRIx64 " is added, count:%d, remain count:%d", rsetId, p, rid, pSet->count, - pNode->count); + uTrace("p:%p, rid:0x%" PRIx64 " is added, count:%d, remain count:%d rsetId:%d", p, rid, pSet->count, pNode->count, + rsetId); taosUnlockList(pSet->lockedBy + hash); @@ -201,7 +201,7 @@ void *taosAcquireRef(int32_t rsetId, int64_t rid) { } if (rid <= 0) { - uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to acquire, rid not valid", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to acquire, rid not valid, rsetId:%d", rid, rsetId); 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:0x%" PRIx64 " failed to acquire, not active", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to acquire, not active, rsetId:%d", rid, rsetId); 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:0x%" PRIx64 " iter:%d", rsetId, rid, iter); + uWarn("rid:0x%" PRIx64 ", iter:%d, rsetId:%d", rid, iter, rsetId); } if (pNode) { if (pNode->removed == 0) { pNode->count++; p = pNode->p; - uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is acquired, remain count:%d", rsetId, pNode->p, rid, pNode->count); + uTrace("p:%p, rid:0x%" PRIx64 " is acquired, remain count:%d, rsetId:%d", pNode->p, rid, pNode->count, rsetId); } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d, p:%p rid:0x%" PRIx64 " is already removed, failed to acquire", rsetId, pNode->p, rid); + uTrace("p:%p, rid:0x%" PRIx64 " is already removed, failed to acquire, rsetId:%d", pNode->p, rid, rsetId); } } else { terrno = TSDB_CODE_REF_NOT_EXIST; - uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to acquire", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", is not there, failed to acquire, rsetId:%d", rid, rsetId); } 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:0x%" PRIx64 " failed to iterate, rsetId not valid", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to iterate, rsetId not valid, rsetId:%d", rid, rsetId); terrno = TSDB_CODE_REF_INVALID_ID; return NULL; } if (rid < 0) { - uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to iterate, rid not valid", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to iterate, rid not valid, rsetId:%d", rid, rsetId); 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:0x%" PRIx64 " failed to iterate, rset not active", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to iterate, rset not active, rsetId:%d", rid, rsetId); 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:0x%" PRIx64 " iter:%d", rsetId, rid, iter); + uWarn("rid:0x%" PRIx64 ", iter:%d, rsetId:%d", rid, iter, rsetId); } if (pNode == NULL) { - uError("rsetId:%d, rid:0x%" PRIx64 " not there, quit", rsetId, rid); + uError("rid:0x%" PRIx64 ", not there and quit, rsetId:%d", rid, rsetId); terrno = TSDB_CODE_REF_NOT_EXIST; taosUnlockList(pSet->lockedBy + hash); taosDecRsetCount(pSet); @@ -345,7 +345,7 @@ 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:0x%" PRIx64 " is returned", rsetId, newP, rid); + uTrace("p:%p, rid:0x%" PRIx64 " is returned, rsetId:%d", newP, rid, rsetId); } else { uTrace("rsetId:%d, the list is over", rsetId); } @@ -377,7 +377,7 @@ int32_t taosListRef() { pNode = pSet->nodeList[j]; while (pNode) { - uInfo("rsetId:%d, p:%p rid:0x%" PRIx64 "count:%d", i, pNode->p, pNode->rid, pNode->count); + uInfo("p:%p, rid:0x%" PRIx64 " count:%d, rsetId:%d", pNode->p, pNode->rid, pNode->count, i); 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:0x%" PRIx64 " failed to remove, rsetId not valid", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to remove, rsetId not valid, rsetId:%d", rid, rsetId); return terrno = TSDB_CODE_REF_INVALID_ID; } if (rid <= 0) { - uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, rid not valid", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to remove, rid not valid, rsetId:%d", rid, rsetId); return terrno = TSDB_CODE_REF_NOT_EXIST; } pSet = tsRefSetList + rsetId; if (pSet->state == TSDB_REF_STATE_EMPTY) { - uTrace("rsetId:%d, rid:0x%" PRIx64 " failed to remove, cleaned", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", failed to remove, cleaned, rsetId:%d", rid, rsetId); 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:0x%" PRIx64 " iter:%d", rsetId, rid, iter); + uWarn("rid:0x%" PRIx64 ", iter:%d, rsetId:%d", rid, iter, rsetId); } 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:0x%" PRIx64 " is released, remain count %d", rsetId, pNode->p, rid, pNode->count); + uTrace("p:%p, rid:0x%" PRIx64 " is released, remain count:%d, rsetId:%d", pNode->p, rid, pNode->count, rsetId); } } else { - uTrace("rsetId:%d, rid:0x%" PRIx64 " is not there, failed to release/remove", rsetId, rid); + uTrace("rid:0x%" PRIx64 ", is not there, failed to release/remove, rsetId:%d", rid, rsetId); terrno = TSDB_CODE_REF_NOT_EXIST; code = terrno; } @@ -455,8 +455,8 @@ 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:0x%" PRIx64 " is removed, count:%d, free mem: %p", rsetId, pNode->p, rid, pSet->count, - pNode); + uTrace("p:%p, rid:0x%" PRIx64 " is removed, count:%d, free mem:%p, rsetId:%d", pNode->p, rid, pSet->count, pNode, + rsetId); (*pSet->fp)(pNode->p); taosMemoryFree(pNode); diff --git a/tests/script/sh/deploy.sh b/tests/script/sh/deploy.sh index b69f1eba4f..e27f1f6fde 100755 --- a/tests/script/sh/deploy.sh +++ b/tests/script/sh/deploy.sh @@ -118,25 +118,28 @@ echo "statusInterval 1" >> $TAOS_CFG echo "dataDir $DATA_DIR" >> $TAOS_CFG echo "logDir $LOG_DIR" >> $TAOS_CFG echo "tmrDebugFlag 131" >> $TAOS_CFG -echo "uDebugFlag 131" >> $TAOS_CFG +echo "uDebugFlag 135" >> $TAOS_CFG echo "rpcDebugFlag 135" >> $TAOS_CFG -echo "jniDebugFlag 131" >> $TAOS_CFG +echo "jniDebugFlag 135" >> $TAOS_CFG echo "qDebugFlag 135" >> $TAOS_CFG echo "cDebugFlag 135" >> $TAOS_CFG -echo "dDebugFlag 131" >> $TAOS_CFG -echo "vDebugFlag 131" >> $TAOS_CFG +echo "dDebugFlag 135" >> $TAOS_CFG +echo "vDebugFlag 135" >> $TAOS_CFG echo "mDebugFlag 135" >> $TAOS_CFG -echo "wDebugFlag 131" >> $TAOS_CFG -echo "sDebugFlag 131" >> $TAOS_CFG +echo "wDebugFlag 135" >> $TAOS_CFG +echo "azDebugFlag 135" >> $TAOS_CFG +echo "sDebugFlag 135" >> $TAOS_CFG echo "tsdbDebugFlag 135" >> $TAOS_CFG -echo "tdbDebugFlag 135" >> $TAOS_CFG echo "tqDebugFlag 135" >> $TAOS_CFG +echo "tqClientDebugFlag 135" >> $TAOS_CFG echo "fsDebugFlag 135" >> $TAOS_CFG -echo "idxDebugFlag 135" >> $TAOS_CFG echo "udfDebugFlag 135" >> $TAOS_CFG echo "smaDebugFlag 135" >> $TAOS_CFG +echo "idxDebugFlag 135" >> $TAOS_CFG +echo "tdbDebugFlag 135" >> $TAOS_CFG echo "metaDebugFlag 135" >> $TAOS_CFG -echo "stDebugFlag 143" >> $TAOS_CFG +echo "stDebugFlag 135" >> $TAOS_CFG +echo "sndDebugFlag 135" >> $TAOS_CFG echo "numOfLogLines 20000000" >> $TAOS_CFG echo "asyncLog 0" >> $TAOS_CFG echo "locale en_US.UTF-8" >> $TAOS_CFG diff --git a/tests/script/test.sh b/tests/script/test.sh index 9433807eb0..080b1c5d1c 100755 --- a/tests/script/test.sh +++ b/tests/script/test.sh @@ -102,13 +102,14 @@ echo "dataDir $DATA_DIR" >> $TAOS_CFG echo "logDir $LOG_DIR" >> $TAOS_CFG echo "scriptDir ${CODE_DIR}" >> $TAOS_CFG echo "numOfLogLines 100000000" >> $TAOS_CFG -echo "debugFlag 135" >> $TAOS_CFG -echo "rpcDebugFlag 135" >> $TAOS_CFG -echo "tmrDebugFlag 131" >> $TAOS_CFG -echo "cDebugFlag 135" >> $TAOS_CFG -echo "udebugFlag 135" >> $TAOS_CFG -echo "qdebugFlag 135" >> $TAOS_CFG echo "simdebugFlag 135" >> $TAOS_CFG +echo "tmrDebugFlag 131" >> $TAOS_CFG +echo "udebugFlag 135" >> $TAOS_CFG +echo "rpcDebugFlag 135" >> $TAOS_CFG +echo "jnidebugFlag 135" >> $TAOS_CFG +echo "qdebugFlag 135" >> $TAOS_CFG +echo "cDebugFlag 135" >> $TAOS_CFG +echo "tqClientDebugFlag 135" >> $TAOS_CFG echo "wal 0" >> $TAOS_CFG echo "asyncLog 0" >> $TAOS_CFG echo "locale en_US.UTF-8" >> $TAOS_CFG diff --git a/tests/system-test/2-query/large_data.py b/tests/system-test/2-query/large_data.py index 2279c3ce70..70353fc2d6 100644 --- a/tests/system-test/2-query/large_data.py +++ b/tests/system-test/2-query/large_data.py @@ -43,10 +43,56 @@ class TDTestCase: tdSql.query("select d0.ts from test.d0 left join test.d1 on d0.ts=d1.ts limit 1000000;") tdSql.checkRows(num1) + + def ts6136(self): + start = 1500000000000 + tdSql.execute("drop database if exists test1;") + + tdCases.taosBenchmarkExec(f"-d test1 -t 3 -n 1000000 -s {start} -y") + + while True: + tdSql.query("select count(*) from test1.meters;") + tdSql.checkRowCol(0, 0) + if tdSql.queryResult[0][0] == 3000000: + tdLog.info(f"ts6136 data ready, sum: {tdSql.queryResult[0][0]}") + break + tdLog.info(f"waiting for data ready, sum: {tdSql.queryResult[0][0]}") + time.sleep(1) + + tdSql.query(f"insert into test1.d0 values({start + 962000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 961000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 960000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 602000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d1 values({start + 602000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 302000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 2000}, 1, 1, 1);") + tdSql.query(f"insert into test1.d0 values({start + 0}, 1, 1, 1);") + + # Query with limit 20 and store the results + tdSql.query("select tbname, ts, current from test1.meters where current = 1 and voltage = 1 and phase = 1 order by ts desc limit 8;") + tdSql.checkRows(8) + + tbname_list = [row[0] for row in tdSql.queryResult] + ts_list = [row[1] for row in tdSql.queryResult] + + # Test with different limits + for limit in range(1, 10): + row = min(8, limit) + tdSql.query(f"select tbname, ts, current from test1.meters where current = 1 and voltage = 1 and phase = 1 order by ts desc limit {limit};") + tdSql.checkRows(row) + result = tdSql.queryResult[:row] + + for i in range(min(10, len(result))): + tdSql.checkData(i, 0, tbname_list[i]) + tdSql.checkData(i, 1, ts_list[i]) + + tdLog.info("All tests passed for ts6136") + def run(self): self.prepare_data() self.ts5803() + self.ts6136() def stop(self): tdSql.close()