From 5324889c52abe2833f657063194c8c84f696ce8b Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 21 Aug 2022 11:26:20 +0800 Subject: [PATCH] fix: sma file corrupt --- source/dnode/vnode/src/tsdb/tsdbReaderWriter.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c index a8969b2d9c..c8f3862071 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c @@ -694,8 +694,18 @@ int32_t tsdbReadBlockSma(SDataFReader *pReader, SBlock *pBlock, SArray *aColumnD code = tRealloc(&pReader->aBuf[0], size); if (code) goto _err; + // seek + int64_t n = taosLSeekFile(pReader->pSmaFD, pSmaInfo->offset, SEEK_SET); + if (n < 0) { + code = TAOS_SYSTEM_ERROR(errno); + goto _err; + } else if (n < pSmaInfo->offset) { + code = TSDB_CODE_FILE_CORRUPTED; + goto _err; + } + // read - int64_t n = taosReadFile(pReader->pSmaFD, pReader->aBuf[0], size); + n = taosReadFile(pReader->pSmaFD, pReader->aBuf[0], size); if (n < 0) { code = TAOS_SYSTEM_ERROR(errno); goto _err;