fix(data): check extent store whether closed before tiny extent recover. #1000182163

Signed-off-by: Victor1319 <zengxuewei@oppo.com>
This commit is contained in:
Victor1319 2025-06-17 16:34:31 +08:00 committed by zhumingze1108
parent d624108ddc
commit e4b0d9a4ea
2 changed files with 12 additions and 3 deletions

View File

@ -856,9 +856,10 @@ func (e *Extent) TinyExtentRecover(data []byte, offset, size int64, crc uint32,
watermark = watermark + (util.PageSize - watermark%util.PageSize)
}
e.dataSize = watermark
log.LogDebugf("after file (%v) getRealBlockNo (%v) isEmptyPacket(%v)"+
"offset(%v) size(%v) e.datasize(%v)", e.filePath, e.getRealBlockCnt(), isEmptyPacket, offset, size, e.dataSize)
if log.EnableDebug() {
log.LogDebugf("after file (%v) getRealBlockNo (%v) isEmptyPacket(%v)"+
"offset(%v) size(%v) e.datasize(%v)", e.filePath, e.getRealBlockCnt(), isEmptyPacket, offset, size, e.dataSize)
}
return
}

View File

@ -1635,6 +1635,14 @@ func (s *ExtentStore) TinyExtentRecover(extentID uint64, offset, size int64, dat
return fmt.Errorf("extent %v not tinyExtent", extentID)
}
s.stopMutex.RLock()
defer s.stopMutex.RUnlock()
if s.IsClosed() {
err = ErrStoreAlreadyClosed
log.LogErrorf("[TinyExtentRecover] store(%v) failed to tiny recover, extId %d, off %d, size %d, empyt %v", s.dataPath, extentID, offset, size, isEmptyPacket)
return
}
var (
e *Extent
ei *ExtentInfo