diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index df09b26c717f8f5549d9c889cbb602c0b8042cfa..f06230c16f1303f0a8bf022e3d65329ed43be0ac 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -284,6 +284,7 @@ int32_t tsdbCloseRepo(TsdbRepoT *repo) { pRepo->tsdbCache->curBlock = NULL; tsdbUnLockRepo(repo); + if (pRepo->appH.notifyStatus) pRepo->appH.notifyStatus(pRepo->appH.appH, TSDB_STATUS_COMMIT_START); tsdbCommitData((void *)repo); tsdbCloseFileH(pRepo->tsdbFileH); diff --git a/src/vnode/inc/vnodeInt.h b/src/vnode/inc/vnodeInt.h index b2dd69df37333b7df87ba4c6aa24af15ea682bdb..d41957d8f47da10555a74c115b30482e0e9b4058 100644 --- a/src/vnode/inc/vnodeInt.h +++ b/src/vnode/inc/vnodeInt.h @@ -38,6 +38,7 @@ typedef struct { int status; int8_t role; int64_t version; + int64_t savedVersion; void *wqueue; void *rqueue; void *wal; diff --git a/src/vnode/src/vnodeMain.c b/src/vnode/src/vnodeMain.c index ec5ac40d041e11404c4872eaec5880b147f26d4a..2e55b6f93aa0b7b10f002e2eedd68c0247a9600e 100644 --- a/src/vnode/src/vnodeMain.c +++ b/src/vnode/src/vnodeMain.c @@ -380,8 +380,10 @@ static void vnodeCleanUp(SVnodeObj *pVnode) { static int vnodeProcessTsdbStatus(void *arg, int status) { SVnodeObj *pVnode = arg; - if (status == TSDB_STATUS_COMMIT_START) + if (status == TSDB_STATUS_COMMIT_START) { + pVnode->savedVersion = pVnode->version; return walRenew(pVnode->wal); + } if (status == TSDB_STATUS_COMMIT_OVER) return vnodeSaveVersion(pVnode); @@ -690,14 +692,14 @@ static int32_t vnodeSaveVersion(SVnodeObj *pVnode) { char * content = calloc(1, maxLen + 1); len += snprintf(content + len, maxLen - len, "{\n"); - len += snprintf(content + len, maxLen - len, " \"version\": %" PRId64 "\n", pVnode->version); + len += snprintf(content + len, maxLen - len, " \"version\": %" PRId64 "\n", pVnode->savedVersion); len += snprintf(content + len, maxLen - len, "}\n"); fwrite(content, 1, len, fp); fclose(fp); free(content); - vPrint("vgId:%d, save vnode version:%" PRId64 " successed", pVnode->vgId, pVnode->version); + vPrint("vgId:%d, save vnode version:%" PRId64 " succeed", pVnode->vgId, pVnode->savedVersion); return 0; } @@ -739,7 +741,7 @@ static bool vnodeReadVersion(SVnodeObj *pVnode) { ret = true; - vPrint("vgId:%d, read vnode version successed, version:%%" PRId64, pVnode->vgId, pVnode->version); + vPrint("vgId:%d, read vnode version succeed, version:%" PRId64, pVnode->vgId, pVnode->version); PARSE_OVER: free(content);