提交 30f8c9c7 编写于 作者: K kailixu

chore: more check

上级 7c85f770
...@@ -244,7 +244,7 @@ const char* blockDecode(SSDataBlock* pBlock, const char* pData); ...@@ -244,7 +244,7 @@ const char* blockDecode(SSDataBlock* pBlock, const char* pData);
char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** dumpBuf); char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** dumpBuf);
int32_t buildSubmitReqFromDataBlock(SSubmitReq2** pReq, const SSDataBlock* pDataBlocks, const STSchema* pTSchema, int64_t uid, int32_t vgId, int32_t buildSubmitReqFromDataBlock(SSubmitReq2** pReq, const SSDataBlock* pDataBlocks, const STSchema* pTSchema, int64_t uid, int32_t vgId,
tb_uid_t suid, int64_t blkVer, const char* tag); tb_uid_t suid, int64_t blkVer, int8_t level, const char* tag);
char* buildCtbNameByGroupId(const char* stbName, uint64_t groupId); char* buildCtbNameByGroupId(const char* stbName, uint64_t groupId);
int32_t buildCtbNameByGroupIdImpl(const char* stbName, uint64_t groupId, char* pBuf); int32_t buildCtbNameByGroupIdImpl(const char* stbName, uint64_t groupId, char* pBuf);
......
...@@ -1876,27 +1876,28 @@ static SHashObj* dupCheck = NULL; ...@@ -1876,27 +1876,28 @@ static SHashObj* dupCheck = NULL;
static int8_t dupInit = 0; static int8_t dupInit = 0;
int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDataBlock, const STSchema* pTSchema, int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDataBlock, const STSchema* pTSchema,
int64_t uid, int32_t vgId, tb_uid_t suid, int64_t blkVer, const char* tag) { int64_t uid, int32_t vgId, tb_uid_t suid, int64_t blkVer, int8_t level,
const char* tag) {
SSubmitReq2* pReq = *ppReq; SSubmitReq2* pReq = *ppReq;
SArray* pVals = NULL; SArray* pVals = NULL;
int32_t numOfBlks = 0; int32_t numOfBlks = 0;
int32_t sz = 1; int32_t sz = 1;
if (!dupCheck) { // if (!dupCheck) {
if (0 == atomic_val_compare_exchange_8(&dupInit, 0, 1)) { // if (0 == atomic_val_compare_exchange_8(&dupInit, 0, 1)) {
dupCheck = taosHashInit(32, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_ENTRY_LOCK); // dupCheck = taosHashInit(32, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_ENTRY_LOCK);
if (!dupCheck) ASSERT(0); // if (!dupCheck) ASSERT(0);
} else { // } else {
int32_t cnt = 0; // int32_t cnt = 0;
while (!dupCheck) { // while (!dupCheck) {
++cnt; // ++cnt;
if (cnt > 1000) { // if (cnt > 1000) {
sched_yield(); // sched_yield();
cnt = 0; // cnt = 0;
} // }
} // }
} // }
} // }
terrno = TSDB_CODE_SUCCESS; terrno = TSDB_CODE_SUCCESS;
...@@ -1911,7 +1912,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat ...@@ -1911,7 +1912,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat
} }
} }
char dupKey[50]; char dupKey[70];
for (int32_t i = 0; i < sz; ++i) { for (int32_t i = 0; i < sz; ++i) {
int32_t colNum = taosArrayGetSize(pDataBlock->pDataBlock); int32_t colNum = taosArrayGetSize(pDataBlock->pDataBlock);
...@@ -1957,10 +1958,11 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat ...@@ -1957,10 +1958,11 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat
ASSERT(PRIMARYKEY_TIMESTAMP_COL_ID == pCol->colId); ASSERT(PRIMARYKEY_TIMESTAMP_COL_ID == pCol->colId);
SColVal cv = COL_VAL_VALUE(pCol->colId, pCol->type, (SValue){.val = *(TSKEY*)var}); SColVal cv = COL_VAL_VALUE(pCol->colId, pCol->type, (SValue){.val = *(TSKEY*)var});
taosArrayPush(pVals, &cv); taosArrayPush(pVals, &cv);
snprintf(dupKey, 50, "%d:%" PRIi64 ":%" PRIi64, vgId, *(TSKEY*)var, blkVer); snprintf(dupKey, 70, "%" PRIi8 ":%d:%" PRIi64 ":%" PRIi64 ":%" PRIi64, level, vgId, uid, *(TSKEY*)var,
blkVer);
uInfo("%s:%d key:ver: %s, tags: %s", __func__, __LINE__, dupKey, tag); uInfo("%s:%d key:ver: %s, tags: %s", __func__, __LINE__, dupKey, tag);
int32_t dupKeyLen = strlen(dupKey); int32_t dupKeyLen = strlen(dupKey);
assert(dupKeyLen < 50); assert(dupKeyLen < 70);
void* hashKey = NULL; void* hashKey = NULL;
if ((hashKey = taosHashGet(dupCheck, &dupKey, dupKeyLen + 1))) { if ((hashKey = taosHashGet(dupCheck, &dupKey, dupKeyLen + 1))) {
ASSERT(0); ASSERT(0);
......
...@@ -621,7 +621,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma ...@@ -621,7 +621,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma
// TODO: the schema update should be handled later(TD-17965) // TODO: the schema update should be handled later(TD-17965)
if (buildSubmitReqFromDataBlock(&pReq, output, pTSchema, output->info.id.groupId, SMA_VID(pSma), suid, if (buildSubmitReqFromDataBlock(&pReq, output, pTSchema, output->info.id.groupId, SMA_VID(pSma), suid,
output->info.version, tag) < 0) { output->info.version, pItem->level, tag) < 0) {
code = terrno ? terrno : TSDB_CODE_RSMA_RESULT; code = terrno ? terrno : TSDB_CODE_RSMA_RESULT;
TSDB_CHECK_CODE(code, lino, _exit); TSDB_CHECK_CODE(code, lino, _exit);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册