From f1ce02255615cc41e0cbd25b695342f078f341e3 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 19 Jun 2020 02:41:47 +0000 Subject: [PATCH] TD-353 --- src/tsdb/src/tsdbMain.c | 2 +- src/tsdb/src/tsdbRWHelper.c | 57 ++++++++++++++++++++----------------- src/util/src/tkvstore.c | 1 - 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index b37b565b42..aa4df032e8 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -337,7 +337,7 @@ char *tsdbGetMetaFileName(char *rootDir) { } void tsdbGetDataFileName(STsdbRepo *pRepo, int fid, int type, char *fname) { - snprintf(fname, TSDB_FILENAME_LEN, "%s/%s/v%df%d.%s", pRepo->rootDir, TSDB_DATA_DIR_NAME, REPO_ID(pRepo), fid, tsdbFileSuffix[type]); + snprintf(fname, TSDB_FILENAME_LEN, "%s/%s/v%df%d%s", pRepo->rootDir, TSDB_DATA_DIR_NAME, REPO_ID(pRepo), fid, tsdbFileSuffix[type]); } int tsdbLockRepo(STsdbRepo *pRepo) { diff --git a/src/tsdb/src/tsdbRWHelper.c b/src/tsdb/src/tsdbRWHelper.c index 9b87b94289..208eafe49d 100644 --- a/src/tsdb/src/tsdbRWHelper.c +++ b/src/tsdb/src/tsdbRWHelper.c @@ -148,44 +148,49 @@ _err: int tsdbCloseHelperFile(SRWHelper *pHelper, bool hasError) { if (pHelper->files.headF.fd > 0) { - fsync(pHelper->files.headF.fd); close(pHelper->files.headF.fd); pHelper->files.headF.fd = -1; } if (pHelper->files.dataF.fd > 0) { - if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.dataF), 0); - fsync(pHelper->files.dataF.fd); + if ((helperType(pHelper) == TSDB_WRITE_HELPER)) { + tsdbUpdateFileHeader(&(pHelper->files.dataF), 0); + fsync(pHelper->files.dataF.fd); + } close(pHelper->files.dataF.fd); pHelper->files.dataF.fd = -1; } if (pHelper->files.lastF.fd > 0) { - fsync(pHelper->files.lastF.fd); - close(pHelper->files.lastF.fd); + if ((helperType(pHelper) == TSDB_WRITE_HELPER)) { + fsync(pHelper->files.lastF.fd); + close(pHelper->files.lastF.fd); + } pHelper->files.lastF.fd = -1; } - if (pHelper->files.nHeadF.fd > 0) { - if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nHeadF), 0); - fsync(pHelper->files.nHeadF.fd); - close(pHelper->files.nHeadF.fd); - pHelper->files.nHeadF.fd = -1; - if (hasError) { - remove(pHelper->files.nHeadF.fname); - } else { - rename(pHelper->files.nHeadF.fname, pHelper->files.headF.fname); - pHelper->files.headF.info = pHelper->files.nHeadF.info; + if (helperType(pHelper) == TSDB_WRITE_HELPER) { + if (pHelper->files.nHeadF.fd > 0) { + if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nHeadF), 0); + fsync(pHelper->files.nHeadF.fd); + close(pHelper->files.nHeadF.fd); + pHelper->files.nHeadF.fd = -1; + if (hasError) { + remove(pHelper->files.nHeadF.fname); + } else { + rename(pHelper->files.nHeadF.fname, pHelper->files.headF.fname); + pHelper->files.headF.info = pHelper->files.nHeadF.info; + } } - } - if (pHelper->files.nLastF.fd > 0) { - if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nLastF), 0); - fsync(pHelper->files.nLastF.fd); - close(pHelper->files.nLastF.fd); - pHelper->files.nLastF.fd = -1; - if (hasError) { - remove(pHelper->files.nLastF.fname); - } else { - rename(pHelper->files.nLastF.fname, pHelper->files.lastF.fname); - pHelper->files.lastF.info = pHelper->files.nLastF.info; + if (pHelper->files.nLastF.fd > 0) { + if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nLastF), 0); + fsync(pHelper->files.nLastF.fd); + close(pHelper->files.nLastF.fd); + pHelper->files.nLastF.fd = -1; + if (hasError) { + remove(pHelper->files.nLastF.fname); + } else { + rename(pHelper->files.nLastF.fname, pHelper->files.lastF.fname); + pHelper->files.lastF.info = pHelper->files.nLastF.info; + } } } return 0; diff --git a/src/util/src/tkvstore.c b/src/util/src/tkvstore.c index 1f71fba3cb..ee34ca68fd 100644 --- a/src/util/src/tkvstore.c +++ b/src/util/src/tkvstore.c @@ -578,6 +578,5 @@ static int tdRestoreKVStore(SKVStore *pStore) { _err: taosHashDestroyIter(pIter); tfree(buf); - taosHashDestroyIter(pIter); return -1; } \ No newline at end of file