Merge pull request #24279 from taosdata/FIX/TD-28106-3.0

fix: reuse cid with fs eid updated in tsdbFSetRAWWriteFileDataBegin
This commit is contained in:
Hongze Cheng 2023-12-29 14:13:21 +08:00 committed by GitHub
commit 35e55df202
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 2 deletions

View File

@ -805,6 +805,12 @@ int64_t tsdbFSAllocEid(STFileSystem *fs) {
return cid; return cid;
} }
void tsdbFSUpdateEid(STFileSystem *fs, int64_t cid) {
taosThreadMutexLock(&fs->tsdb->mutex);
fs->neid = TMAX(fs->neid, cid);
taosThreadMutexUnlock(&fs->tsdb->mutex);
}
int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT etype) { int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT etype) {
int32_t code = 0; int32_t code = 0;
int32_t lino; int32_t lino;

View File

@ -52,6 +52,7 @@ int32_t tsdbFSCreateRefRangedSnapshot(STFileSystem *fs, int64_t sver, int64_t ev
int32_t tsdbFSDestroyRefRangedSnapshot(TFileSetRangeArray **fsrArr); int32_t tsdbFSDestroyRefRangedSnapshot(TFileSetRangeArray **fsrArr);
// txn // txn
int64_t tsdbFSAllocEid(STFileSystem *fs); int64_t tsdbFSAllocEid(STFileSystem *fs);
void tsdbFSUpdateEid(STFileSystem *fs, int64_t cid);
int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT etype); int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT etype);
int32_t tsdbFSEditCommit(STFileSystem *fs); int32_t tsdbFSEditCommit(STFileSystem *fs);
int32_t tsdbFSEditAbort(STFileSystem *fs); int32_t tsdbFSEditAbort(STFileSystem *fs);

View File

@ -14,6 +14,7 @@
*/ */
#include "tsdbFSetRAW.h" #include "tsdbFSetRAW.h"
#include "tsdbFS2.h"
// SFSetRAWWriter ================================================== // SFSetRAWWriter ==================================================
typedef struct SFSetRAWWriter { typedef struct SFSetRAWWriter {
@ -76,7 +77,7 @@ static int32_t tsdbFSetRAWWriteFileDataBegin(SFSetRAWWriter *writer, STsdbDataRA
.szPage = writer->config->szPage, .szPage = writer->config->szPage,
.fid = bHdr->file.fid, .fid = bHdr->file.fid,
.did = writer->config->did, .did = writer->config->did,
.cid = writer->config->cid, .cid = bHdr->file.cid,
.level = writer->config->level, .level = writer->config->level,
.file = .file =
@ -84,7 +85,7 @@ static int32_t tsdbFSetRAWWriteFileDataBegin(SFSetRAWWriter *writer, STsdbDataRA
.type = bHdr->file.type, .type = bHdr->file.type,
.fid = bHdr->file.fid, .fid = bHdr->file.fid,
.did = writer->config->did, .did = writer->config->did,
.cid = writer->config->cid, .cid = bHdr->file.cid,
.size = bHdr->file.size, .size = bHdr->file.size,
.minVer = bHdr->file.minVer, .minVer = bHdr->file.minVer,
.maxVer = bHdr->file.maxVer, .maxVer = bHdr->file.maxVer,
@ -94,6 +95,7 @@ static int32_t tsdbFSetRAWWriteFileDataBegin(SFSetRAWWriter *writer, STsdbDataRA
}, },
}; };
tsdbFSUpdateEid(config.tsdb->pFS, config.cid);
writer->ctx->offset = 0; writer->ctx->offset = 0;
writer->ctx->file = config.file; writer->ctx->file = config.file;