Merge pull request #23881 from taosdata/FIX/TS-4316-3.0

enh: tolerate out-of-order of closeTs in walEndSnapshot
This commit is contained in:
wade zhang 2023-12-01 10:45:14 +08:00 committed by GitHub
commit 386af392ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 2 deletions

View File

@ -327,15 +327,19 @@ int32_t walEndSnapshot(SWal *pWal) {
// iterate files, until the searched result
// delete according to file size or close time
SWalFileInfo *pUntil = NULL;
for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter < pInfo; iter++) {
if ((pWal->cfg.retentionSize > 0 && newTotSize > pWal->cfg.retentionSize) ||
(pWal->cfg.retentionPeriod == 0 ||
pWal->cfg.retentionPeriod > 0 && iter->closeTs >= 0 && iter->closeTs + pWal->cfg.retentionPeriod < ts)) {
deleteCnt++;
newTotSize -= iter->fileSize;
taosArrayPush(pWal->toDeleteFiles, iter);
pUntil = iter;
}
}
for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter <= pUntil; iter++) {
deleteCnt++;
taosArrayPush(pWal->toDeleteFiles, iter);
}
// make new array, remove files
taosArrayPopFrontBatch(pWal->fileInfoSet, deleteCnt);