fix: invalid pointer
This commit is contained in:
parent
d537b2f8b6
commit
3d081041ba
|
@ -254,22 +254,26 @@ static int32_t tsdbRemoveOrMoveFileObject(SRTNer *rtner, int32_t expLevel, STFil
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
} else if (expLevel > fobj->f->did.level) {
|
} else if (expLevel > fobj->f->did.level) {
|
||||||
// Try to move the file to a new level
|
// Try to move the file to a new level
|
||||||
SDiskID diskId = {0};
|
for (; expLevel > fobj->f->did.level; expLevel--) {
|
||||||
|
SDiskID diskId = {0};
|
||||||
|
|
||||||
code = tsdbAllocateDiskAtLevel(rtner->tsdb, expLevel, tsdbFTypeLabel(fobj->f->type), &diskId);
|
code = tsdbAllocateDiskAtLevel(rtner->tsdb, expLevel, tsdbFTypeLabel(fobj->f->type), &diskId);
|
||||||
if (code) {
|
if (code) {
|
||||||
tsdbTrace("vgId:%d, cannot allocate disk for file %s, level:%d, reason:%s, skip!", TD_VID(rtner->tsdb->pVnode),
|
tsdbTrace("vgId:%d, cannot allocate disk for file %s, level:%d, reason:%s, skip!", TD_VID(rtner->tsdb->pVnode),
|
||||||
fobj->fname, expLevel, tstrerror(code));
|
fobj->fname, expLevel, tstrerror(code));
|
||||||
code = 0;
|
code = 0;
|
||||||
} else {
|
continue;
|
||||||
tsdbInfo("vgId:%d start to migrate file %s from level %d to %d, size:%" PRId64, TD_VID(rtner->tsdb->pVnode),
|
} else {
|
||||||
fobj->fname, fobj->f->did.level, diskId.level, fobj->f->size);
|
tsdbInfo("vgId:%d start to migrate file %s from level %d to %d, size:%" PRId64, TD_VID(rtner->tsdb->pVnode),
|
||||||
|
fobj->fname, fobj->f->did.level, diskId.level, fobj->f->size);
|
||||||
|
|
||||||
code = tsdbDoMigrateFileObj(rtner, fobj, &diskId);
|
code = tsdbDoMigrateFileObj(rtner, fobj, &diskId);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
tsdbInfo("vgId:%d end to migrate file %s from level %d to %d, size:%" PRId64, TD_VID(rtner->tsdb->pVnode),
|
tsdbInfo("vgId:%d end to migrate file %s from level %d to %d, size:%" PRId64, TD_VID(rtner->tsdb->pVnode),
|
||||||
fobj->fname, fobj->f->did.level, diskId.level, fobj->f->size);
|
fobj->fname, fobj->f->did.level, diskId.level, fobj->f->size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,7 +292,7 @@ static int32_t tsdbDoRetention(SRTNer *rtner) {
|
||||||
STFileSet *fset = rtner->fset;
|
STFileSet *fset = rtner->fset;
|
||||||
|
|
||||||
// handle data file sets
|
// handle data file sets
|
||||||
int32_t expLevel = tsdbFidLevel(fobj->f->fid, &rtner->tsdb->keepCfg, rtner->now);
|
int32_t expLevel = tsdbFidLevel(fset->fid, &rtner->tsdb->keepCfg, rtner->now);
|
||||||
for (int32_t ftype = 0; ftype < TSDB_FTYPE_MAX; ++ftype) {
|
for (int32_t ftype = 0; ftype < TSDB_FTYPE_MAX; ++ftype) {
|
||||||
code = tsdbRemoveOrMoveFileObject(rtner, expLevel, fset->farr[ftype]);
|
code = tsdbRemoveOrMoveFileObject(rtner, expLevel, fset->farr[ftype]);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
Loading…
Reference in New Issue