diff --git a/src/tsdb/src/tsdbBuffer.c b/src/tsdb/src/tsdbBuffer.c index 686fc4bbec512864e2249d741504af2e5f7596b0..16f06c82bbf310eb94ab389d6c8d028d8d4b160c 100644 --- a/src/tsdb/src/tsdbBuffer.c +++ b/src/tsdb/src/tsdbBuffer.c @@ -124,6 +124,7 @@ SListNode *tsdbAllocBufBlockFromPool(STsdbRepo *pRepo) { } SListNode * pNode = tdListPopHead(pBufPool->bufBlockList); + ASSERT(pNode != NULL); STsdbBufBlock *pBufBlock = NULL; tdListNodeGetData(pBufPool->bufBlockList, pNode, (void *)(&pBufBlock)); diff --git a/src/tsdb/src/tsdbFile.c b/src/tsdb/src/tsdbFile.c index ffac8da944009c14c887917a45bc1cb5f3f5bc7f..8ebb62f341e77b0449a21942a59894b2f2a924cf 100644 --- a/src/tsdb/src/tsdbFile.c +++ b/src/tsdb/src/tsdbFile.c @@ -358,7 +358,9 @@ void tsdbRemoveFileGroup(STsdbRepo *pRepo, SFileGroup *pFGroup) { ASSERT(pFileH->nFGroups >= 0); for (int type = TSDB_FILE_TYPE_HEAD; type < TSDB_FILE_TYPE_MAX; type++) { - remove(fileGroup.files[type].fname); + if (remove(fileGroup.files[type].fname) < 0) { + tsdbError("vgId:%d failed to remove file %s", REPO_ID(pRepo), fileGroup.files[type].fname); + } tsdbDestroyFile(&fileGroup.files[type]); } } diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index 80e5e8ea0d6419c631acb742d51a7217f7b83b3b..ac334e8ed1be576057ee11b8ae8bb65b5080759e 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -237,12 +237,13 @@ uint32_t tsdbGetFileInfo(TSDB_REPO_T *repo, char *name, uint32_t *index, uint32_ } SFile *pFile = &pFGroup->files[(*index) % 3]; - strcpy(fname, pFile->fname); + fname = strdup(pFile->fname); } } if (stat(fname, &fState) < 0) { tfree(sdup); + tfree(fname); return 0; } @@ -566,7 +567,7 @@ static int32_t tsdbSaveConfig(char *rootDir, STsdbCfg *pCfg) { _err: tfree(fname); - if (fd > 0) close(fd); + if (fd >= 0) close(fd); return -1; } @@ -609,7 +610,7 @@ static int tsdbLoadConfig(char *rootDir, STsdbCfg *pCfg) { _err: tfree(fname); - if (fd > 0) close(fd); + if (fd >= 0) close(fd); return -1; } diff --git a/src/tsdb/src/tsdbMemTable.c b/src/tsdb/src/tsdbMemTable.c index e928cdc385de1eb77f128e931340d5e2c14043f8..b1de90bc291cc909b51154b3f54e0d59a0278005 100644 --- a/src/tsdb/src/tsdbMemTable.c +++ b/src/tsdb/src/tsdbMemTable.c @@ -222,11 +222,12 @@ int tsdbAsyncCommit(STsdbRepo *pRepo) { terrno = TAOS_SYSTEM_ERROR(errno); return -1; } + pRepo->commit = 0; } ASSERT(pRepo->commit == 0); - if (pRepo->appH.notifyStatus) pRepo->appH.notifyStatus(pRepo->appH.appH, TSDB_STATUS_COMMIT_START); if (pRepo->mem != NULL) { + if (pRepo->appH.notifyStatus) pRepo->appH.notifyStatus(pRepo->appH.appH, TSDB_STATUS_COMMIT_START); if (tsdbLockRepo(pRepo) < 0) return -1; pRepo->imem = pRepo->mem; pRepo->mem = NULL; @@ -468,9 +469,6 @@ _err: static void tsdbEndCommit(STsdbRepo *pRepo) { ASSERT(pRepo->commit == 1); - tsdbLockRepo(pRepo); - pRepo->commit = 0; - tsdbUnlockRepo(pRepo); if (pRepo->appH.notifyStatus) pRepo->appH.notifyStatus(pRepo->appH.appH, TSDB_STATUS_COMMIT_OVER); } @@ -526,8 +524,6 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SCommitIter *iters, SRWHe goto _err; } - free(dataDir); - // Open files for write/read if (tsdbSetAndOpenHelperFile(pHelper, pGroup) < 0) { tsdbError("vgId:%d failed to set helper file since %s", REPO_ID(pRepo), tstrerror(terrno)); @@ -601,7 +597,7 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SCommitIter *iters, SRWHe return 0; _err: - // ASSERT(false); + tfree(dataDir); tsdbCloseHelperFile(pHelper, 1); return -1; } diff --git a/src/tsdb/src/tsdbMeta.c b/src/tsdb/src/tsdbMeta.c index beb8f33052d66c46727208e876ca75293acdc565..83392462abe7c39e2733d13fdd719df3372f0489 100644 --- a/src/tsdb/src/tsdbMeta.c +++ b/src/tsdb/src/tsdbMeta.c @@ -147,6 +147,7 @@ int tsdbDropTable(TSDB_REPO_T *repo, STableId tableId) { tsdbInsertTableAct(pRepo, TSDB_DROP_META, buf, tTable); tsdbRemoveTableFromMeta(pRepo, tTable, false, true); } + tSkipListDestroyIter(pIter); } tsdbRemoveTableFromMeta(pRepo, pTable, true, true); @@ -270,7 +271,6 @@ STableCfg *tsdbCreateTableCfgFromMsg(SMDCreateTableMsg *pMsg) { _err: tdDestroyTSchemaBuilder(&schemaBuilder); tsdbClearTableCfg(pCfg); - tfree(pCfg); return NULL; } @@ -309,6 +309,7 @@ int tsdbUpdateTagValue(TSDB_REPO_T *repo, SUpdateTableTagValMsg *pMsg) { int32_t code = tsdbUpdateTable(pRepo, super, pTableCfg); if (code != TSDB_CODE_SUCCESS) { + tsdbClearTableCfg(pTableCfg); return code; } tsdbClearTableCfg(pTableCfg);