From acd816a36425609b29a83e8abcf8489fc67f073f Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 13 Nov 2023 16:59:26 +0800 Subject: [PATCH] fix(tsdb/retention): move fset destruction out of for loop --- source/dnode/vnode/src/tsdb/tsdbRetention.c | 23 ++++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRetention.c b/source/dnode/vnode/src/tsdb/tsdbRetention.c index 194c2784f4..b61f17a52a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRetention.c +++ b/source/dnode/vnode/src/tsdb/tsdbRetention.c @@ -74,6 +74,8 @@ static int32_t tsdbDoCopyFile(SRTNer *rtner, const STFileObj *from, const STFile if (fdFrom == NULL) code = terrno; TSDB_CHECK_CODE(code, lino, _exit); + tsdbInfo("vgId: %d, open tofile: %s size: %" PRId64, TD_VID(rtner->tsdb->pVnode), fname, from->f->size); + fdTo = taosOpenFile(fname, TD_FILE_WRITE | TD_FILE_CREATE | TD_FILE_TRUNC); if (fdTo == NULL) code = terrno; TSDB_CHECK_CODE(code, lino, _exit); @@ -333,6 +335,7 @@ static int32_t tsdbDoRetentionOnFileSet(SRTNer *rtner, STFileSet *fset) { int32_t mtime = 0; taosStatFile(fobj->fname, NULL, &mtime, NULL); if (mtime < rtner->now - tsS3UploadDelaySec) { + tsdbInfo("file:%s size: %" PRId64 " do migrate s3", fobj->fname, fobj->f->size); code = tsdbMigrateDataFileS3(rtner, fobj, &did); TSDB_CHECK_CODE(code, lino, _exit); } @@ -356,6 +359,8 @@ static int32_t tsdbDoRetentionOnFileSet(SRTNer *rtner, STFileSet *fset) { s3EvictCache(fobj->fname, fsize * 2); } */ + tsdbInfo("file:%s size: %" PRId64 " do migrate", fobj->fname, fobj->f->size); + code = tsdbDoMigrateFileObj(rtner, fobj, &did); TSDB_CHECK_CODE(code, lino, _exit); //} @@ -375,14 +380,6 @@ static int32_t tsdbDoRetentionOnFileSet(SRTNer *rtner, STFileSet *fset) { _exit: if (code) { - if (TARRAY2_DATA(rtner->fopArr)) { - TARRAY2_DESTROY(rtner->fopArr, NULL); - } - TFileSetArray **fsetArr = &rtner->fsetArr; - if (fsetArr[0]) { - tsdbFSDestroyCopySnapshot(&rtner->fsetArr); - } - TSDB_ERROR_LOG(TD_VID(rtner->tsdb->pVnode), lino, code); } return code; @@ -437,13 +434,19 @@ static int32_t tsdbDoRetentionAsync(void *arg) { _exit: if (code) { + if (TARRAY2_DATA(rtner->fopArr)) { + TARRAY2_DESTROY(rtner->fopArr, NULL); + } + TFileSetArray **fsetArr = &rtner->fsetArr; + if (fsetArr[0]) { + tsdbFSDestroyCopySnapshot(&rtner->fsetArr); + } + TSDB_ERROR_LOG(TD_VID(rtner->tsdb->pVnode), lino, code); } return code; } - - int32_t tsdbRetention(STsdb *tsdb, int64_t now, int32_t sync) { int32_t code = 0;